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

Function TestDownWithGivenServices

pkg/compose/down_test.go:98–145  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

96}
97
98func TestDownWithGivenServices(t *testing.T) {
99 mockCtrl := gomock.NewController(t)
100 defer mockCtrl.Finish()
101
102 api, cli := prepareMocks(mockCtrl)
103 tested, err := NewComposeService(cli)
104 assert.NilError(t, err)
105
106 api.EXPECT().ContainerList(gomock.Any(), projectFilterListOpt(false)).Return(client.ContainerListResult{
107 Items: []container.Summary{
108 testContainer("service1", "123", false),
109 testContainer("service2", "456", false),
110 testContainer("service2", "789", false),
111 testContainer("service_orphan", "321", true),
112 },
113 }, nil)
114 api.EXPECT().VolumeList(
115 gomock.Any(),
116 client.VolumeListOptions{
117 Filters: projectFilter(strings.ToLower(testProject)),
118 }).
119 Return(client.VolumeListResult{}, nil)
120
121 // network names are not guaranteed to be unique, ensure Compose handles
122 // cleanup properly if duplicates are inadvertently created
123 api.EXPECT().NetworkList(gomock.Any(), client.NetworkListOptions{Filters: projectFilter(strings.ToLower(testProject))}).
124 Return(client.NetworkListResult{Items: []network.Summary{
125 {Network: network.Network{ID: "abc123", Name: "myProject_default", Labels: map[string]string{compose.NetworkLabel: "default"}}},
126 {Network: network.Network{ID: "def456", Name: "myProject_default", Labels: map[string]string{compose.NetworkLabel: "default"}}},
127 }}, nil)
128
129 api.EXPECT().ContainerStop(gomock.Any(), "123", client.ContainerStopOptions{}).Return(client.ContainerStopResult{}, nil)
130
131 api.EXPECT().ContainerRemove(gomock.Any(), "123", client.ContainerRemoveOptions{Force: true}).Return(client.ContainerRemoveResult{}, nil)
132
133 api.EXPECT().NetworkList(gomock.Any(), client.NetworkListOptions{
134 Filters: projectFilter(strings.ToLower(testProject)).Add("label", networkFilter("default")),
135 }).Return(client.NetworkListResult{Items: []network.Summary{
136 {Network: network.Network{ID: "abc123", Name: "myProject_default"}},
137 }}, nil)
138 api.EXPECT().NetworkInspect(gomock.Any(), "abc123", gomock.Any()).Return(client.NetworkInspectResult{Network: network.Inspect{Network: network.Network{ID: "abc123"}}}, nil)
139 api.EXPECT().NetworkRemove(gomock.Any(), "abc123", gomock.Any()).Return(client.NetworkRemoveResult{}, nil)
140
141 err = tested.Down(t.Context(), strings.ToLower(testProject), compose.DownOptions{
142 Services: []string{"service1", "not-running-service"},
143 })
144 assert.NilError(t, err)
145}
146
147func TestDownWithSpecifiedServiceButTheServicesAreNotRunning(t *testing.T) {
148 mockCtrl := gomock.NewController(t)

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