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  }