...

Source file src/github.com/chaos-mesh/chaos-mesh/pkg/label/label_test.go

Documentation: github.com/chaos-mesh/chaos-mesh/pkg/label

     1  // Copyright 2021 Chaos Mesh Authors.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  // http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  //
    15  
    16  package label
    17  
    18  import (
    19  	"reflect"
    20  	"strings"
    21  	"testing"
    22  
    23  	. "github.com/onsi/gomega"
    24  )
    25  
    26  func TestLabelString(t *testing.T) {
    27  	g := NewGomegaWithT(t)
    28  
    29  	la := Label(make(map[string]string))
    30  	la["test-label-1"] = "t1"
    31  	la["test-label-2"] = "t2"
    32  
    33  	g.Expect(strings.Contains(la.String(), "test-label-1=t1")).To(Equal(true))
    34  	g.Expect(strings.Contains(la.String(), "test-label-2=t2")).To(Equal(true))
    35  	g.Expect(strings.Contains(la.String(), ",")).To(Equal(true))
    36  
    37  	g.Expect(len(la.String())).To(Equal(len("test-label-1=t1,test-label-2=t2")))
    38  
    39  	la[""] = "t3"
    40  	g.Expect(len(la.String())).To(Equal(len("test-label-1=t1,test-label-2=t2")))
    41  	g.Expect(strings.Contains(la.String(), "t3")).To(Equal(false))
    42  }
    43  
    44  func TestParseLabel(t *testing.T) {
    45  	g := NewGomegaWithT(t)
    46  
    47  	label1 := "k1=v1"
    48  	labelMap1 := Label{"k1": "v1"}
    49  	result, err := ParseLabel(label1)
    50  
    51  	g.Expect(err).ToNot(HaveOccurred())
    52  	g.Expect(reflect.DeepEqual(labelMap1, result)).To(Equal(true))
    53  
    54  	label2 := "k1=v1,k2=v2"
    55  	labelMap2 := Label{"k1": "v1", "k2": "v2"}
    56  	result, err = ParseLabel(label2)
    57  
    58  	g.Expect(err).ToNot(HaveOccurred())
    59  	g.Expect(reflect.DeepEqual(labelMap2, result)).To(Equal(true))
    60  
    61  	label3 := ""
    62  	_, err = ParseLabel(label3)
    63  	g.Expect(err).ToNot(HaveOccurred())
    64  
    65  	label4 := "k1=v2,,"
    66  	_, err = ParseLabel(label4)
    67  	g.Expect(err).To(HaveOccurred())
    68  	g.Expect(strings.Contains(err.Error(), "invalid labels")).To(BeTrue())
    69  }
    70