|
|
@@ -19,10 +19,12 @@ package compose
|
|
|
import (
|
|
|
"context"
|
|
|
"fmt"
|
|
|
+ "os"
|
|
|
"strings"
|
|
|
"testing"
|
|
|
|
|
|
"github.com/compose-spec/compose-go/types"
|
|
|
+ "github.com/docker/cli/cli/streams"
|
|
|
moby "github.com/docker/docker/api/types"
|
|
|
containerType "github.com/docker/docker/api/types/container"
|
|
|
"github.com/docker/docker/api/types/filters"
|
|
|
@@ -39,12 +41,10 @@ func TestDown(t *testing.T) {
|
|
|
mockCtrl := gomock.NewController(t)
|
|
|
defer mockCtrl.Finish()
|
|
|
|
|
|
- api := mocks.NewMockAPIClient(mockCtrl)
|
|
|
- cli := mocks.NewMockCli(mockCtrl)
|
|
|
+ api, cli := prepareMocks(mockCtrl)
|
|
|
tested := composeService{
|
|
|
dockerCli: cli,
|
|
|
}
|
|
|
- cli.EXPECT().Client().Return(api).AnyTimes()
|
|
|
|
|
|
api.EXPECT().ContainerList(gomock.Any(), projectFilterListOpt(false)).Return(
|
|
|
[]moby.Container{
|
|
|
@@ -90,12 +90,10 @@ func TestDownRemoveOrphans(t *testing.T) {
|
|
|
mockCtrl := gomock.NewController(t)
|
|
|
defer mockCtrl.Finish()
|
|
|
|
|
|
- api := mocks.NewMockAPIClient(mockCtrl)
|
|
|
- cli := mocks.NewMockCli(mockCtrl)
|
|
|
+ api, cli := prepareMocks(mockCtrl)
|
|
|
tested := composeService{
|
|
|
dockerCli: cli,
|
|
|
}
|
|
|
- cli.EXPECT().Client().Return(api).AnyTimes()
|
|
|
|
|
|
api.EXPECT().ContainerList(gomock.Any(), projectFilterListOpt(true)).Return(
|
|
|
[]moby.Container{
|
|
|
@@ -130,12 +128,10 @@ func TestDownRemoveVolumes(t *testing.T) {
|
|
|
mockCtrl := gomock.NewController(t)
|
|
|
defer mockCtrl.Finish()
|
|
|
|
|
|
- api := mocks.NewMockAPIClient(mockCtrl)
|
|
|
- cli := mocks.NewMockCli(mockCtrl)
|
|
|
+ api, cli := prepareMocks(mockCtrl)
|
|
|
tested := composeService{
|
|
|
dockerCli: cli,
|
|
|
}
|
|
|
- cli.EXPECT().Client().Return(api).AnyTimes()
|
|
|
|
|
|
api.EXPECT().ContainerList(gomock.Any(), projectFilterListOpt(false)).Return(
|
|
|
[]moby.Container{testContainer("service1", "123", false)}, nil)
|
|
|
@@ -173,12 +169,10 @@ func TestDownRemoveImages(t *testing.T) {
|
|
|
},
|
|
|
}
|
|
|
|
|
|
- api := mocks.NewMockAPIClient(mockCtrl)
|
|
|
- cli := mocks.NewMockCli(mockCtrl)
|
|
|
+ api, cli := prepareMocks(mockCtrl)
|
|
|
tested := composeService{
|
|
|
dockerCli: cli,
|
|
|
}
|
|
|
- cli.EXPECT().Client().Return(api).AnyTimes()
|
|
|
|
|
|
api.EXPECT().ContainerList(gomock.Any(), projectFilterListOpt(false)).
|
|
|
Return([]moby.Container{
|
|
|
@@ -264,12 +258,10 @@ func TestDownRemoveImages_NoLabel(t *testing.T) {
|
|
|
mockCtrl := gomock.NewController(t)
|
|
|
defer mockCtrl.Finish()
|
|
|
|
|
|
- api := mocks.NewMockAPIClient(mockCtrl)
|
|
|
- cli := mocks.NewMockCli(mockCtrl)
|
|
|
+ api, cli := prepareMocks(mockCtrl)
|
|
|
tested := composeService{
|
|
|
dockerCli: cli,
|
|
|
}
|
|
|
- cli.EXPECT().Client().Return(api).AnyTimes()
|
|
|
|
|
|
container := testContainer("service1", "123", false)
|
|
|
|
|
|
@@ -303,3 +295,12 @@ func TestDownRemoveImages_NoLabel(t *testing.T) {
|
|
|
err := tested.Down(context.Background(), strings.ToLower(testProject), compose.DownOptions{Images: "local"})
|
|
|
assert.NilError(t, err)
|
|
|
}
|
|
|
+
|
|
|
+func prepareMocks(mockCtrl *gomock.Controller) (*mocks.MockAPIClient, *mocks.MockCli) {
|
|
|
+ api := mocks.NewMockAPIClient(mockCtrl)
|
|
|
+ cli := mocks.NewMockCli(mockCtrl)
|
|
|
+ cli.EXPECT().Client().Return(api).AnyTimes()
|
|
|
+ cli.EXPECT().Err().Return(os.Stderr).AnyTimes()
|
|
|
+ cli.EXPECT().Out().Return(streams.NewOut(os.Stdout)).AnyTimes()
|
|
|
+ return api, cli
|
|
|
+}
|