github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/swarmkit/manager/state/store/combinator_test.go (about) 1 package store 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestOrCombinator(t *testing.T) { 10 s := NewMemoryStore(nil) 11 assert.NotNil(t, s) 12 13 setupTestStore(t, s) 14 15 s.View(func(readTx ReadTx) { 16 foundNodes, err := FindNodes(readTx, Or()) 17 assert.NoError(t, err) 18 assert.Len(t, foundNodes, 0) 19 20 foundNodes, err = FindNodes(readTx, Or(ByName("name1"))) 21 assert.NoError(t, err) 22 assert.Len(t, foundNodes, 1) 23 24 foundNodes, err = FindNodes(readTx, Or(ByName("name1"), ByName("name1"))) 25 assert.NoError(t, err) 26 assert.Len(t, foundNodes, 1) 27 28 foundNodes, err = FindNodes(readTx, Or(ByName("name1"), ByName("name2"))) 29 assert.NoError(t, err) 30 assert.Len(t, foundNodes, 3) 31 32 foundNodes, err = FindNodes(readTx, Or(ByName("name1"), ByIDPrefix("id1"))) 33 assert.NoError(t, err) 34 assert.Len(t, foundNodes, 1) 35 36 foundNodes, err = FindNodes(readTx, Or(ByName("name1"), ByIDPrefix("id5295"))) 37 assert.NoError(t, err) 38 assert.Len(t, foundNodes, 1) 39 40 foundNodes, err = FindNodes(readTx, Or(ByIDPrefix("id1"), ByIDPrefix("id2"))) 41 assert.NoError(t, err) 42 assert.Len(t, foundNodes, 2) 43 44 foundNodes, err = FindNodes(readTx, Or(ByIDPrefix("id1"), ByIDPrefix("id2"), ByIDPrefix("id3"))) 45 assert.NoError(t, err) 46 assert.Len(t, foundNodes, 3) 47 }) 48 }