github.com/influxdata/influxdb/v2@v2.7.6/tag_test.go (about) 1 package influxdb_test 2 3 import ( 4 "testing" 5 6 "github.com/influxdata/influxdb/v2" 7 "github.com/influxdata/influxdb/v2/kit/platform/errors" 8 influxTesting "github.com/influxdata/influxdb/v2/testing" 9 ) 10 11 func TestTagValid(t *testing.T) { 12 cases := []struct { 13 name string 14 src influxdb.TagRule 15 err error 16 }{ 17 { 18 name: "regular status rule", 19 src: influxdb.TagRule{ 20 Tag: influxdb.Tag{Key: "k1", Value: "v1"}, 21 Operator: influxdb.Equal, 22 }, 23 }, 24 { 25 name: "empty", 26 src: influxdb.TagRule{}, 27 err: &errors.Error{ 28 Code: errors.EInvalid, 29 Msg: "tag must contain a key and a value", 30 }, 31 }, 32 { 33 name: "empty key", 34 src: influxdb.TagRule{ 35 Tag: influxdb.Tag{Value: "v1"}, 36 }, 37 err: &errors.Error{ 38 Code: errors.EInvalid, 39 Msg: "tag must contain a key and a value", 40 }, 41 }, 42 { 43 name: "empty value", 44 src: influxdb.TagRule{ 45 Tag: influxdb.Tag{Key: "k1"}, 46 }, 47 err: &errors.Error{ 48 Code: errors.EInvalid, 49 Msg: "tag must contain a key and a value", 50 }, 51 }, 52 { 53 name: "invalid operator", 54 src: influxdb.TagRule{ 55 Tag: influxdb.Tag{Key: "k1", Value: "v1"}, 56 Operator: influxdb.Operator(-1), 57 }, 58 err: &errors.Error{ 59 Code: errors.EInvalid, 60 Msg: "Operator is invalid", 61 }, 62 }, 63 } 64 for _, c := range cases { 65 err := c.src.Valid() 66 influxTesting.ErrorsEqual(t, err, c.err) 67 } 68 }