(t *testing.T)
| 96 | } |
| 97 | |
| 98 | func 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 | |
| 147 | func TestDownWithSpecifiedServiceButTheServicesAreNotRunning(t *testing.T) { |
| 148 | mockCtrl := gomock.NewController(t) |
nothing calls this directly
no test coverage detected