2018-01-17 04:37:37 -06:00
|
|
|
package wrapper
|
2018-01-11 10:29:25 -06:00
|
|
|
|
|
|
|
import (
|
2018-01-17 04:37:37 -06:00
|
|
|
"testing"
|
|
|
|
|
2018-05-24 08:26:27 -05:00
|
|
|
"github.com/grafana/grafana-plugin-model/go/datasource"
|
2018-01-11 10:29:25 -06:00
|
|
|
"github.com/grafana/grafana/pkg/log"
|
|
|
|
"github.com/grafana/grafana/pkg/tsdb"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestMapTables(t *testing.T) {
|
|
|
|
dpw := NewDatasourcePluginWrapper(log.New("test-logger"), nil)
|
2018-01-17 04:37:37 -06:00
|
|
|
var qr = &datasource.QueryResult{}
|
|
|
|
qr.Tables = append(qr.Tables, &datasource.Table{
|
|
|
|
Columns: []*datasource.TableColumn{},
|
2018-01-11 10:29:25 -06:00
|
|
|
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)
|
|
|
|
|
2018-01-17 04:37:37 -06:00
|
|
|
source := &datasource.Table{
|
|
|
|
Columns: []*datasource.TableColumn{{Name: "column1"}, {Name: "column2"}},
|
|
|
|
Rows: []*datasource.TableRow{{
|
|
|
|
Values: []*datasource.RowValue{
|
2018-01-11 10:29:25 -06:00
|
|
|
{
|
2018-01-17 04:37:37 -06:00
|
|
|
Kind: datasource.RowValue_TYPE_BOOL,
|
2018-01-11 10:29:25 -06:00
|
|
|
BoolValue: true,
|
|
|
|
},
|
|
|
|
{
|
2018-01-17 04:37:37 -06:00
|
|
|
Kind: datasource.RowValue_TYPE_INT64,
|
2018-01-11 10:29:25 -06:00
|
|
|
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)
|
|
|
|
|
2018-01-17 04:37:37 -06:00
|
|
|
boolRowValue, _ := dpw.mapRowValue(&datasource.RowValue{Kind: datasource.RowValue_TYPE_BOOL, BoolValue: true})
|
2018-01-11 10:29:25 -06:00
|
|
|
haveBool, ok := boolRowValue.(bool)
|
Simplify comparison to bool constant (gosimple)
This fixes:
build.go:553:6: should omit comparison to bool constant, can be simplified to !strings.Contains(path, ".sha256") (S1002)
pkg/cmd/grafana-cli/commands/ls_command.go:27:5: should omit comparison to bool constant, can be simplified to !pluginDirInfo.IsDir() (S1002)
pkg/components/dynmap/dynmap_test.go:24:5: should omit comparison to bool constant, can be simplified to !value (S1002)
pkg/components/dynmap/dynmap_test.go:122:14: should omit comparison to bool constant, can be simplified to b (S1002)
pkg/components/dynmap/dynmap_test.go:125:14: should omit comparison to bool constant, can be simplified to !b (S1002)
pkg/components/dynmap/dynmap_test.go:128:14: should omit comparison to bool constant, can be simplified to !b (S1002)
pkg/models/org_user.go:51:5: should omit comparison to bool constant, can be simplified to !(*r).IsValid() (S1002)
pkg/plugins/datasource/wrapper/datasource_plugin_wrapper_test.go:77:12: should omit comparison to bool constant, can be simplified to !haveBool (S1002)
pkg/services/alerting/conditions/evaluator.go:23:9: should omit comparison to bool constant, can be simplified to !reducedValue.Valid (S1002)
pkg/services/alerting/conditions/evaluator.go:48:5: should omit comparison to bool constant, can be simplified to !reducedValue.Valid (S1002)
pkg/services/alerting/conditions/evaluator.go:91:5: should omit comparison to bool constant, can be simplified to !reducedValue.Valid (S1002)
pkg/services/alerting/conditions/query.go:56:6: should omit comparison to bool constant, can be simplified to !reducedValue.Valid (S1002)
pkg/services/alerting/extractor.go:107:20: should omit comparison to bool constant, can be simplified to !enabled.MustBool() (S1002)
pkg/services/alerting/notifiers/telegram.go:222:41: should omit comparison to bool constant, can be simplified to this.UploadImage (S1002)
pkg/services/sqlstore/apikey.go:58:12: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/apikey.go:72:12: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/dashboard.go:66:33: should omit comparison to bool constant, can be simplified to !cmd.Overwrite (S1002)
pkg/services/sqlstore/dashboard.go:175:12: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/dashboard.go:311:13: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/dashboard.go:444:12: should omit comparison to bool constant, can be simplified to !exists (S1002)
pkg/services/sqlstore/dashboard.go:472:12: should omit comparison to bool constant, can be simplified to !exists (S1002)
pkg/services/sqlstore/dashboard.go:554:32: should omit comparison to bool constant, can be simplified to !cmd.Overwrite (S1002)
pkg/services/sqlstore/dashboard_snapshot.go:83:12: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/plugin_setting.go:39:12: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/quota.go:34:12: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/quota.go:111:6: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/quota.go:136:12: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/quota.go:213:6: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/temp_user.go:129:12: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/user.go:157:12: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/user.go:182:5: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/user.go:191:12: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/user.go:212:12: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/services/sqlstore/user.go:307:12: should omit comparison to bool constant, can be simplified to !has (S1002)
pkg/social/generic_oauth.go:185:5: should omit comparison to bool constant, can be simplified to !s.extractToken(&data, token) (S1002)
pkg/tsdb/mssql/mssql.go:148:39: should omit comparison to bool constant, can be simplified to ok (S1002)
pkg/tsdb/mssql/mssql.go:212:6: should omit comparison to bool constant, can be simplified to !query.Model.Get("fillNull").MustBool(false) (S1002)
pkg/tsdb/mssql/mssql.go:247:56: should omit comparison to bool constant, can be simplified to ok (S1002)
pkg/tsdb/mssql/mssql.go:274:7: should omit comparison to bool constant, can be simplified to !exist (S1002)
pkg/tsdb/mssql/mssql.go:282:8: should omit comparison to bool constant, can be simplified to !exist (S1002)
pkg/tsdb/mysql/mysql.go:221:6: should omit comparison to bool constant, can be simplified to !query.Model.Get("fillNull").MustBool(false) (S1002)
pkg/tsdb/mysql/mysql.go:256:56: should omit comparison to bool constant, can be simplified to ok (S1002)
pkg/tsdb/mysql/mysql.go:283:7: should omit comparison to bool constant, can be simplified to !exist (S1002)
pkg/tsdb/mysql/mysql.go:291:8: should omit comparison to bool constant, can be simplified to !exist (S1002)
pkg/tsdb/postgres/postgres.go:134:39: should omit comparison to bool constant, can be simplified to ok (S1002)
pkg/tsdb/postgres/postgres.go:201:6: should omit comparison to bool constant, can be simplified to !query.Model.Get("fillNull").MustBool(false) (S1002)
pkg/tsdb/postgres/postgres.go:236:56: should omit comparison to bool constant, can be simplified to ok (S1002)
pkg/tsdb/postgres/postgres.go:263:7: should omit comparison to bool constant, can be simplified to !exist (S1002)
pkg/tsdb/postgres/postgres.go:271:8: should omit comparison to bool constant, can be simplified to !exist (S1002)
2018-04-16 13:12:59 -05:00
|
|
|
if !ok || !haveBool {
|
2018-01-30 09:00:16 -06:00
|
|
|
t.Fatalf("Expected true, was %v", haveBool)
|
2018-01-11 10:29:25 -06:00
|
|
|
}
|
|
|
|
|
2018-01-17 04:37:37 -06:00
|
|
|
intRowValue, _ := dpw.mapRowValue(&datasource.RowValue{Kind: datasource.RowValue_TYPE_INT64, Int64Value: 42})
|
2018-01-11 10:29:25 -06:00
|
|
|
haveInt, ok := intRowValue.(int64)
|
|
|
|
if !ok || haveInt != 42 {
|
|
|
|
t.Fatalf("Expected %d, was %d", 42, haveInt)
|
|
|
|
}
|
|
|
|
|
2018-01-17 04:37:37 -06:00
|
|
|
stringRowValue, _ := dpw.mapRowValue(&datasource.RowValue{Kind: datasource.RowValue_TYPE_STRING, StringValue: "grafana"})
|
2018-01-11 10:29:25 -06:00
|
|
|
haveString, ok := stringRowValue.(string)
|
|
|
|
if !ok || haveString != "grafana" {
|
|
|
|
t.Fatalf("Expected %s, was %s", "grafana", haveString)
|
|
|
|
}
|
|
|
|
|
2018-01-17 04:37:37 -06:00
|
|
|
doubleRowValue, _ := dpw.mapRowValue(&datasource.RowValue{Kind: datasource.RowValue_TYPE_DOUBLE, DoubleValue: 1.5})
|
2018-01-11 10:29:25 -06:00
|
|
|
haveDouble, ok := doubleRowValue.(float64)
|
|
|
|
if !ok || haveDouble != 1.5 {
|
|
|
|
t.Fatalf("Expected %v, was %v", 1.5, haveDouble)
|
|
|
|
}
|
|
|
|
|
2018-01-17 04:37:37 -06:00
|
|
|
bytesRowValue, _ := dpw.mapRowValue(&datasource.RowValue{Kind: datasource.RowValue_TYPE_BYTES, BytesValue: []byte{66}})
|
2018-01-11 10:29:25 -06:00
|
|
|
haveBytes, ok := bytesRowValue.([]byte)
|
|
|
|
if !ok || len(haveBytes) != 1 || haveBytes[0] != 66 {
|
|
|
|
t.Fatalf("Expected %v, was %v", []byte{66}, haveBytes)
|
|
|
|
}
|
|
|
|
|
2018-01-17 04:37:37 -06:00
|
|
|
haveNil, _ := dpw.mapRowValue(&datasource.RowValue{Kind: datasource.RowValue_TYPE_NULL})
|
2018-01-11 10:29:25 -06:00
|
|
|
if haveNil != nil {
|
|
|
|
t.Fatalf("Expected %v, was %v", nil, haveNil)
|
|
|
|
}
|
|
|
|
}
|