github.com/kaisenlinux/docker@v0.0.0-20230510090727-ea55db55fac7/swarmkit/api/genericresource/parse_test.go (about) 1 package genericresource 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestParseDiscrete(t *testing.T) { 10 res, err := ParseCmd("apple=3") 11 assert.NoError(t, err) 12 assert.Equal(t, len(res), 1) 13 14 apples := GetResource("apple", res) 15 assert.Equal(t, len(apples), 1) 16 assert.Equal(t, apples[0].GetDiscreteResourceSpec().Value, int64(3)) 17 18 _, err = ParseCmd("apple=3\napple=4") 19 assert.Error(t, err) 20 21 _, err = ParseCmd("apple=3,apple=4") 22 assert.Error(t, err) 23 24 _, err = ParseCmd("apple=-3") 25 assert.Error(t, err) 26 } 27 28 func TestParseStr(t *testing.T) { 29 res, err := ParseCmd("orange=red,orange=green,orange=blue") 30 assert.NoError(t, err) 31 assert.Equal(t, len(res), 3) 32 33 oranges := GetResource("orange", res) 34 assert.Equal(t, len(oranges), 3) 35 for _, k := range []string{"red", "green", "blue"} { 36 assert.True(t, HasResource(NewString("orange", k), oranges)) 37 } 38 } 39 40 func TestParseDiscreteAndStr(t *testing.T) { 41 res, err := ParseCmd("orange=red,orange=green,orange=blue,apple=3") 42 assert.NoError(t, err) 43 assert.Equal(t, len(res), 4) 44 45 oranges := GetResource("orange", res) 46 assert.Equal(t, len(oranges), 3) 47 for _, k := range []string{"red", "green", "blue"} { 48 assert.True(t, HasResource(NewString("orange", k), oranges)) 49 } 50 51 apples := GetResource("apple", res) 52 assert.Equal(t, len(apples), 1) 53 assert.Equal(t, apples[0].GetDiscreteResourceSpec().Value, int64(3)) 54 }