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  }