From bb0dcf69f80ea01aa5e6eafe2ee56c92c6a9068e Mon Sep 17 00:00:00 2001 From: Yong Tang Date: Sat, 20 Jan 2018 23:06:14 +0000 Subject: [PATCH] Add integration test for network connect with alias Signed-off-by: Yong Tang Upstream-commit: 50af4968911483b5a4e09c45a22f8e9153d81696 Component: engine --- .../integration/service/network_test.go | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 components/engine/integration/service/network_test.go diff --git a/components/engine/integration/service/network_test.go b/components/engine/integration/service/network_test.go new file mode 100644 index 0000000000..016bd2ce4b --- /dev/null +++ b/components/engine/integration/service/network_test.go @@ -0,0 +1,86 @@ +package service + +import ( + "context" + "testing" + + "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/network" + "github.com/docker/docker/integration-cli/request" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestDockerNetworkConnectAlias(t *testing.T) { + defer setupTest(t)() + d := newSwarm(t) + defer d.Stop(t) + client, err := request.NewClientForHost(d.Sock()) + require.NoError(t, err) + ctx := context.Background() + + name := "test-alias" + _, err = client.NetworkCreate(ctx, name, types.NetworkCreate{ + Driver: "overlay", + Attachable: true, + }) + require.NoError(t, err) + _, err = client.ContainerCreate(ctx, + &container.Config{ + Cmd: []string{"top"}, + Image: "busybox", + }, + &container.HostConfig{}, + &network.NetworkingConfig{ + EndpointsConfig: map[string]*network.EndpointSettings{ + name: {}, + }, + }, + "ng1", + ) + require.NoError(t, err) + err = client.NetworkConnect(ctx, name, "ng1", &network.EndpointSettings{ + Aliases: []string{ + "aaa", + }, + }) + require.NoError(t, err) + + err = client.ContainerStart(ctx, "ng1", types.ContainerStartOptions{}) + require.NoError(t, err) + + ng1, err := client.ContainerInspect(ctx, "ng1") + require.NoError(t, err) + assert.Equal(t, len(ng1.NetworkSettings.Networks[name].Aliases), 2) + assert.Equal(t, ng1.NetworkSettings.Networks[name].Aliases[0], "aaa") + + _, err = client.ContainerCreate(ctx, + &container.Config{ + Cmd: []string{"top"}, + Image: "busybox", + }, + &container.HostConfig{}, + &network.NetworkingConfig{ + EndpointsConfig: map[string]*network.EndpointSettings{ + name: {}, + }, + }, + "ng2", + ) + require.NoError(t, err) + err = client.NetworkConnect(ctx, name, "ng2", &network.EndpointSettings{ + Aliases: []string{ + "bbb", + }, + }) + require.NoError(t, err) + + err = client.ContainerStart(ctx, "ng2", types.ContainerStartOptions{}) + require.NoError(t, err) + + ng2, err := client.ContainerInspect(ctx, "ng2") + require.NoError(t, err) + assert.Equal(t, len(ng2.NetworkSettings.Networks[name].Aliases), 2) + assert.Equal(t, ng2.NetworkSettings.Networks[name].Aliases[0], "bbb") +}