Browse code

Add integration test for network connect with alias

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>

Yong Tang authored on 2018/01/21 08:06:14
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,86 @@
0
+package service
1
+
2
+import (
3
+	"context"
4
+	"testing"
5
+
6
+	"github.com/docker/docker/api/types"
7
+	"github.com/docker/docker/api/types/container"
8
+	"github.com/docker/docker/api/types/network"
9
+	"github.com/docker/docker/integration-cli/request"
10
+	"github.com/stretchr/testify/assert"
11
+	"github.com/stretchr/testify/require"
12
+)
13
+
14
+func TestDockerNetworkConnectAlias(t *testing.T) {
15
+	defer setupTest(t)()
16
+	d := newSwarm(t)
17
+	defer d.Stop(t)
18
+	client, err := request.NewClientForHost(d.Sock())
19
+	require.NoError(t, err)
20
+	ctx := context.Background()
21
+
22
+	name := "test-alias"
23
+	_, err = client.NetworkCreate(ctx, name, types.NetworkCreate{
24
+		Driver:     "overlay",
25
+		Attachable: true,
26
+	})
27
+	require.NoError(t, err)
28
+	_, err = client.ContainerCreate(ctx,
29
+		&container.Config{
30
+			Cmd:   []string{"top"},
31
+			Image: "busybox",
32
+		},
33
+		&container.HostConfig{},
34
+		&network.NetworkingConfig{
35
+			EndpointsConfig: map[string]*network.EndpointSettings{
36
+				name: {},
37
+			},
38
+		},
39
+		"ng1",
40
+	)
41
+	require.NoError(t, err)
42
+	err = client.NetworkConnect(ctx, name, "ng1", &network.EndpointSettings{
43
+		Aliases: []string{
44
+			"aaa",
45
+		},
46
+	})
47
+	require.NoError(t, err)
48
+
49
+	err = client.ContainerStart(ctx, "ng1", types.ContainerStartOptions{})
50
+	require.NoError(t, err)
51
+
52
+	ng1, err := client.ContainerInspect(ctx, "ng1")
53
+	require.NoError(t, err)
54
+	assert.Equal(t, len(ng1.NetworkSettings.Networks[name].Aliases), 2)
55
+	assert.Equal(t, ng1.NetworkSettings.Networks[name].Aliases[0], "aaa")
56
+
57
+	_, err = client.ContainerCreate(ctx,
58
+		&container.Config{
59
+			Cmd:   []string{"top"},
60
+			Image: "busybox",
61
+		},
62
+		&container.HostConfig{},
63
+		&network.NetworkingConfig{
64
+			EndpointsConfig: map[string]*network.EndpointSettings{
65
+				name: {},
66
+			},
67
+		},
68
+		"ng2",
69
+	)
70
+	require.NoError(t, err)
71
+	err = client.NetworkConnect(ctx, name, "ng2", &network.EndpointSettings{
72
+		Aliases: []string{
73
+			"bbb",
74
+		},
75
+	})
76
+	require.NoError(t, err)
77
+
78
+	err = client.ContainerStart(ctx, "ng2", types.ContainerStartOptions{})
79
+	require.NoError(t, err)
80
+
81
+	ng2, err := client.ContainerInspect(ctx, "ng2")
82
+	require.NoError(t, err)
83
+	assert.Equal(t, len(ng2.NetworkSettings.Networks[name].Aliases), 2)
84
+	assert.Equal(t, ng2.NetworkSettings.Networks[name].Aliases[0], "bbb")
85
+}