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  }