mirror of
https://github.com/moby/moby.git
synced 2026-01-11 10:41:43 +00:00
52 lines
1.6 KiB
Go
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)
|
|
}
|