From 679fd8ab7a6770969829cbd6c0904c2b39cfe0a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Musab=20G=C3=BCltekin?= Date: Thu, 27 Jun 2019 22:39:06 +0300 Subject: [PATCH] Map support added for CSV exporter --- exporter/csv.go | 12 +++++++----- exporter/csv_test.go | 3 ++- exporter/json_test.go | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/exporter/csv.go b/exporter/csv.go index cd2cac4..c619a88 100644 --- a/exporter/csv.go +++ b/exporter/csv.go @@ -7,6 +7,7 @@ import ( "log" "os" "reflect" + "sort" ) // 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++ { values = append(values, fmt.Sprint(val.Index(i))) } - //case reflect.Map: - // iter := val.MapRange() - // for iter.Next() { - // values = append(values, fmt.Sprint(iter.Value())) - // } + case reflect.Map: + iter := val.MapRange() + for iter.Next() { + values = append(values, fmt.Sprint(iter.Value())) + } + sort.Strings(values) } if err := writer.Write(values); err != nil { log.Printf("CSV writing error on exporter: %v\n", err) diff --git a/exporter/csv_test.go b/exporter/csv_test.go index 77ae40d..f8749c3 100644 --- a/exporter/csv_test.go +++ b/exporter/csv_test.go @@ -7,10 +7,11 @@ func TestCSVExporter_Export(t *testing.T) { defer close(ch) exporter := &CSVExporter{ - FileName: "test.out", + FileName: "out.csv", Comma: ';', } go exporter.Export(ch) ch <- []string{"1", "2"} + ch <- map[string]string{"key1": "value1", "key2": "value2"} } diff --git a/exporter/json_test.go b/exporter/json_test.go index 71784a7..de7ec17 100644 --- a/exporter/json_test.go +++ b/exporter/json_test.go @@ -7,7 +7,7 @@ func TestJSONExporter_Export(t *testing.T) { defer close(ch) exporter := &JSONExporter{ - FileName: "test.json", + FileName: "out.json", Indent: " ", } go exporter.Export(ch)