MCPcopy
hub / github.com/docker/compose / TestDown

Function TestDown

pkg/compose/down_test.go:40–96  ·  pkg/compose/down_test.go::TestDown
(t *testing.T)

Source from the content-addressed store, hash-verified

38)
39
40func TestDown(t *testing.T) {
41 mockCtrl := gomock.NewController(t)
42 defer mockCtrl.Finish()
43
44 api, cli := prepareMocks(mockCtrl)
45 tested, err := NewComposeService(cli)
46 assert.NilError(t, err)
47
48 api.EXPECT().ContainerList(gomock.Any(), projectFilterListOpt(false)).Return(
49 client.ContainerListResult{Items: []container.Summary{
50 testContainer("service1", "123", false),
51 testContainer("service2", "456", false),
52 testContainer("service2", "789", false),
53 testContainer("service_orphan", "321", true),
54 }}, nil)
55 api.EXPECT().VolumeList(
56 gomock.Any(),
57 client.VolumeListOptions{
58 Filters: projectFilter(strings.ToLower(testProject)),
59 }).
60 Return(client.VolumeListResult{}, nil)
61
62 // network names are not guaranteed to be unique, ensure Compose handles
63 // cleanup properly if duplicates are inadvertently created
64 api.EXPECT().NetworkList(gomock.Any(), client.NetworkListOptions{Filters: projectFilter(strings.ToLower(testProject))}).
65 Return(client.NetworkListResult{Items: []network.Summary{
66 {Network: network.Network{ID: "abc123", Name: "myProject_default", Labels: map[string]string{compose.NetworkLabel: "default"}}},
67 {Network: network.Network{ID: "def456", Name: "myProject_default", Labels: map[string]string{compose.NetworkLabel: "default"}}},
68 }}, nil)
69
70 stopOptions := client.ContainerStopOptions{}
71 api.EXPECT().ContainerStop(gomock.Any(), "123", stopOptions).Return(client.ContainerStopResult{}, nil)
72 api.EXPECT().ContainerStop(gomock.Any(), "456", stopOptions).Return(client.ContainerStopResult{}, nil)
73 api.EXPECT().ContainerStop(gomock.Any(), "789", stopOptions).Return(client.ContainerStopResult{}, nil)
74
75 api.EXPECT().ContainerRemove(gomock.Any(), "123", client.ContainerRemoveOptions{Force: true}).Return(client.ContainerRemoveResult{}, nil)
76 api.EXPECT().ContainerRemove(gomock.Any(), "456", client.ContainerRemoveOptions{Force: true}).Return(client.ContainerRemoveResult{}, nil)
77 api.EXPECT().ContainerRemove(gomock.Any(), "789", client.ContainerRemoveOptions{Force: true}).Return(client.ContainerRemoveResult{}, nil)
78
79 api.EXPECT().NetworkList(gomock.Any(), client.NetworkListOptions{
80 Filters: projectFilter(strings.ToLower(testProject)).Add("label", networkFilter("default")),
81 }).Return(client.NetworkListResult{Items: []network.Summary{
82 {Network: network.Network{ID: "abc123", Name: "myProject_default"}},
83 {Network: network.Network{ID: "def456", Name: "myProject_default"}},
84 }}, nil)
85 api.EXPECT().NetworkInspect(gomock.Any(), "abc123", gomock.Any()).Return(client.NetworkInspectResult{
86 Network: network.Inspect{Network: network.Network{ID: "abc123"}},
87 }, nil)
88 api.EXPECT().NetworkInspect(gomock.Any(), "def456", gomock.Any()).Return(client.NetworkInspectResult{
89 Network: network.Inspect{Network: network.Network{ID: "def456"}},
90 }, nil)
91 api.EXPECT().NetworkRemove(gomock.Any(), "abc123", gomock.Any()).Return(client.NetworkRemoveResult{}, nil)
92 api.EXPECT().NetworkRemove(gomock.Any(), "def456", gomock.Any()).Return(client.NetworkRemoveResult{}, nil)
93
94 err = tested.Down(t.Context(), strings.ToLower(testProject), compose.DownOptions{})
95 assert.NilError(t, err)
96}
97

Callers

nothing calls this directly

Calls 15

prepareMocksFunction · 0.85
NewComposeServiceFunction · 0.85
projectFilterListOptFunction · 0.85
testContainerFunction · 0.85
projectFilterFunction · 0.85
networkFilterFunction · 0.85
DownMethod · 0.65
ContainerListMethod · 0.45
EXPECTMethod · 0.45
VolumeListMethod · 0.45
NetworkListMethod · 0.45
ContainerStopMethod · 0.45

Tested by

no test coverage detected