Files
moby/daemon/libnetwork/endpoint_store_test.go
Derek McGowan f74e5d48b3 Create github.com/moby/moby/v2 module
Signed-off-by: Derek McGowan <derek@mcg.dev>
2025-07-31 10:13:29 -07:00

52 lines
1.6 KiB
Go

package libnetwork
import (
"context"
"slices"
"strings"
"testing"
"github.com/moby/moby/v2/daemon/libnetwork/config"
"gotest.tools/v3/assert"
is "gotest.tools/v3/assert/cmp"
)
func TestEndpointStore(t *testing.T) {
configOption := config.OptionDataDir(t.TempDir())
c, err := New(context.Background(), configOption)
assert.NilError(t, err)
defer c.Stop()
// Insert a first endpoint
nw := &Network{id: "testNetwork"}
ep1 := &Endpoint{network: nw, id: "testEndpoint1"}
err = c.storeEndpoint(context.Background(), ep1)
assert.NilError(t, err)
// Then a second endpoint
ep2 := &Endpoint{network: nw, id: "testEndpoint2"}
err = c.storeEndpoint(context.Background(), ep2)
assert.NilError(t, err)
// Check that we can find both endpoints, and that the returned values are
// not copies of the original ones.
found := c.findEndpoints(filterEndpointByNetworkId("testNetwork"))
slices.SortFunc(found, func(a, b *Endpoint) int { return strings.Compare(a.id, b.id) })
assert.Equal(t, len(found), 2)
assert.Check(t, is.Equal(found[0], ep1), "got: %s; expected: %s", found[0].id, ep1.id)
assert.Check(t, is.Equal(found[1], ep2), "got: %s; expected: %s", found[1].id, ep1.id)
// Delete the first endpoint
err = c.deleteStoredEndpoint(ep1)
assert.NilError(t, err)
// Check that we can only find the second endpoint
found = c.findEndpoints(filterEndpointByNetworkId("testNetwork"))
assert.Equal(t, len(found), 1)
assert.Check(t, is.Equal(found[0], ep2), "got: %s; expected: %s", found[0].id, ep2.id)
// Store the second endpoint again
err = c.storeEndpoint(context.Background(), ep2)
assert.NilError(t, err)
}