Map support added for CSV exporter

This commit is contained in:
Musab Gültekin 2019-06-27 22:39:06 +03:00
parent 8fe194bd10
commit 679fd8ab7a
3 changed files with 10 additions and 7 deletions

View File

@ -7,6 +7,7 @@ import (
"log" "log"
"os" "os"
"reflect" "reflect"
"sort"
) )
// CSVExporter exports response data as CSV streaming file // CSVExporter exports response data as CSV streaming file
@ -42,11 +43,12 @@ func (e *CSVExporter) Export(exports chan interface{}) {
for i := 0; i < val.Len(); i++ { for i := 0; i < val.Len(); i++ {
values = append(values, fmt.Sprint(val.Index(i))) values = append(values, fmt.Sprint(val.Index(i)))
} }
//case reflect.Map: case reflect.Map:
// iter := val.MapRange() iter := val.MapRange()
// for iter.Next() { for iter.Next() {
// values = append(values, fmt.Sprint(iter.Value())) values = append(values, fmt.Sprint(iter.Value()))
// } }
sort.Strings(values)
} }
if err := writer.Write(values); err != nil { if err := writer.Write(values); err != nil {
log.Printf("CSV writing error on exporter: %v\n", err) log.Printf("CSV writing error on exporter: %v\n", err)

View File

@ -7,10 +7,11 @@ func TestCSVExporter_Export(t *testing.T) {
defer close(ch) defer close(ch)
exporter := &CSVExporter{ exporter := &CSVExporter{
FileName: "test.out", FileName: "out.csv",
Comma: ';', Comma: ';',
} }
go exporter.Export(ch) go exporter.Export(ch)
ch <- []string{"1", "2"} ch <- []string{"1", "2"}
ch <- map[string]string{"key1": "value1", "key2": "value2"}
} }

View File

@ -7,7 +7,7 @@ func TestJSONExporter_Export(t *testing.T) {
defer close(ch) defer close(ch)
exporter := &JSONExporter{ exporter := &JSONExporter{
FileName: "test.json", FileName: "out.json",
Indent: " ", Indent: " ",
} }
go exporter.Export(ch) go exporter.Export(ch)