From da783d97efc1ee289d773d2d2f31a38398bd3f5f Mon Sep 17 00:00:00 2001 From: reesporte Date: Tue, 16 Nov 2021 09:14:15 -0600 Subject: [PATCH] add test for pgWriteDistinctTimestamp --- server/pg_internal_test.go | 53 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 server/pg_internal_test.go diff --git a/server/pg_internal_test.go b/server/pg_internal_test.go new file mode 100644 index 000000000..3b83d032e --- /dev/null +++ b/server/pg_internal_test.go @@ -0,0 +1,53 @@ +package server + +import ( + "testing" + + pilosa "github.com/molecula/featurebase/v2" + "github.com/molecula/featurebase/v2/pg" +) + +// pg_internal_test.go tests unexported methods from server/pg.go + +// TestQueryResultWriter implements the QueryResultWriter interface for testing +type TestQueryResultWriter struct { + Header []pg.ColumnInfo + RowText []string + TagTag string +} + +func (t *TestQueryResultWriter) WriteHeader(headers ...pg.ColumnInfo) error { + for _, header := range headers { + t.Header = append(t.Header, header) + } + return nil +} + +func (t *TestQueryResultWriter) WriteRowText(rowTexts ...string) error { + for _, rowText := range rowTexts { + t.RowText = append(t.RowText, rowText) + } + return nil +} + +func (t *TestQueryResultWriter) Tag(tag string) { + t.TagTag = tag +} + +func TestPgWriteDistinctTimestamp(t *testing.T) { + w := TestQueryResultWriter{} + expected := pilosa.DistinctTimestamp{Name: "test", Values: []string{"date1", "date2", "date3"}} + pgWriteDistinctTimestamp(&w, expected) + if w.Header[0].Name != expected.Name { + t.Fatalf("Header Name is wrong. got %v, want %v", w.Header[0], expected.Name) + } + if w.Header[0].Type != pg.TypeCharoid { + t.Fatalf("Header Type is wrong. got %v, want %v", w.Header[0].Type, pg.TypeCharoid) + } + for i, value := range w.RowText { + if value != expected.Values[i] { + t.Fatalf("Value not written properly. got %v, want %v", value, expected.Values[i]) + } + } + +}