| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- package wrapper
- import (
- "testing"
- "github.com/grafana/grafana/pkg/log"
- "github.com/grafana/grafana/pkg/tsdb"
- "github.com/grafana/grafana_plugin_model/go/datasource"
- )
- func TestMapTables(t *testing.T) {
- dpw := NewDatasourcePluginWrapper(log.New("test-logger"), nil)
- var qr = &datasource.QueryResult{}
- qr.Tables = append(qr.Tables, &datasource.Table{
- Columns: []*datasource.TableColumn{},
- Rows: nil,
- })
- want := []*tsdb.Table{{}}
- have, err := dpw.mapTables(qr)
- if err != nil {
- t.Errorf("failed to map tables. error: %v", err)
- }
- if len(want) != len(have) {
- t.Errorf("could not map all tables")
- }
- }
- func TestMapTable(t *testing.T) {
- dpw := NewDatasourcePluginWrapper(log.New("test-logger"), nil)
- source := &datasource.Table{
- Columns: []*datasource.TableColumn{{Name: "column1"}, {Name: "column2"}},
- Rows: []*datasource.TableRow{{
- Values: []*datasource.RowValue{
- {
- Kind: datasource.RowValue_TYPE_BOOL,
- BoolValue: true,
- },
- {
- Kind: datasource.RowValue_TYPE_INT64,
- Int64Value: 42,
- },
- },
- }},
- }
- want := &tsdb.Table{
- Columns: []tsdb.TableColumn{{Text: "column1"}, {Text: "column2"}},
- }
- have, err := dpw.mapTable(source)
- if err != nil {
- t.Fatalf("failed to map table. error: %v", err)
- }
- for i := range have.Columns {
- if want.Columns[i] != have.Columns[i] {
- t.Fatalf("have column: %s, want %s", have, want)
- }
- }
- if len(have.Rows) != 1 {
- t.Fatalf("Expects one row but got %d", len(have.Rows))
- }
- rowValuesCount := len(have.Rows[0])
- if rowValuesCount != 2 {
- t.Fatalf("Expects two row values, got %d", rowValuesCount)
- }
- }
- func TestMappingRowValue(t *testing.T) {
- dpw := NewDatasourcePluginWrapper(log.New("test-logger"), nil)
- boolRowValue, _ := dpw.mapRowValue(&datasource.RowValue{Kind: datasource.RowValue_TYPE_BOOL, BoolValue: true})
- haveBool, ok := boolRowValue.(bool)
- if !ok || haveBool != true {
- t.Fatalf("Expected true, was %v", haveBool)
- }
- intRowValue, _ := dpw.mapRowValue(&datasource.RowValue{Kind: datasource.RowValue_TYPE_INT64, Int64Value: 42})
- haveInt, ok := intRowValue.(int64)
- if !ok || haveInt != 42 {
- t.Fatalf("Expected %d, was %d", 42, haveInt)
- }
- stringRowValue, _ := dpw.mapRowValue(&datasource.RowValue{Kind: datasource.RowValue_TYPE_STRING, StringValue: "grafana"})
- haveString, ok := stringRowValue.(string)
- if !ok || haveString != "grafana" {
- t.Fatalf("Expected %s, was %s", "grafana", haveString)
- }
- doubleRowValue, _ := dpw.mapRowValue(&datasource.RowValue{Kind: datasource.RowValue_TYPE_DOUBLE, DoubleValue: 1.5})
- haveDouble, ok := doubleRowValue.(float64)
- if !ok || haveDouble != 1.5 {
- t.Fatalf("Expected %v, was %v", 1.5, haveDouble)
- }
- bytesRowValue, _ := dpw.mapRowValue(&datasource.RowValue{Kind: datasource.RowValue_TYPE_BYTES, BytesValue: []byte{66}})
- haveBytes, ok := bytesRowValue.([]byte)
- if !ok || len(haveBytes) != 1 || haveBytes[0] != 66 {
- t.Fatalf("Expected %v, was %v", []byte{66}, haveBytes)
- }
- haveNil, _ := dpw.mapRowValue(&datasource.RowValue{Kind: datasource.RowValue_TYPE_NULL})
- if haveNil != nil {
- t.Fatalf("Expected %v, was %v", nil, haveNil)
- }
- }
|