77 lines
2.2 KiB
Go
77 lines
2.2 KiB
Go
package handlers
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/golang/mock/gomock"
|
|
mockCtx "github.com/metrue/fx/context/mocks"
|
|
mockDeployer "github.com/metrue/fx/driver/mocks"
|
|
"github.com/metrue/fx/types"
|
|
)
|
|
|
|
func TestUp(t *testing.T) {
|
|
t.Run("normally up", func(t *testing.T) {
|
|
ctrl := gomock.NewController(t)
|
|
defer ctrl.Finish()
|
|
|
|
ctx := mockCtx.NewMockContexter(ctrl)
|
|
driver := mockDeployer.NewMockDriver(ctrl)
|
|
|
|
bindings := []types.PortBinding{}
|
|
name := "sample-name"
|
|
image := "sample-image"
|
|
data := "sample-data"
|
|
ctx.EXPECT().Get("name").Return(name)
|
|
ctx.EXPECT().Get("image").Return(image)
|
|
ctx.EXPECT().Get("docker_driver").Return(driver)
|
|
ctx.EXPECT().Get("k8s_driver").Return(driver)
|
|
ctx.EXPECT().Get("bindings").Return(bindings)
|
|
ctx.EXPECT().Get("data").Return(data)
|
|
ctx.EXPECT().Get("force").Return(false)
|
|
ctx.EXPECT().GetContext().Return(context.Background()).Times(4)
|
|
driver.EXPECT().Deploy(gomock.Any(), data, name, image, bindings).Return(nil).Times(2)
|
|
driver.EXPECT().GetStatus(gomock.Any(), name).Return(types.Service{
|
|
ID: "id-1",
|
|
Name: name,
|
|
Host: "127.0.0.1",
|
|
Port: 2100,
|
|
}, nil).Times(2)
|
|
if err := Up(ctx); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
})
|
|
|
|
t.Run("normally up forcely", func(t *testing.T) {
|
|
ctrl := gomock.NewController(t)
|
|
defer ctrl.Finish()
|
|
|
|
ctx := mockCtx.NewMockContexter(ctrl)
|
|
driver := mockDeployer.NewMockDriver(ctrl)
|
|
|
|
bindings := []types.PortBinding{}
|
|
name := "sample-name"
|
|
image := "sample-image"
|
|
data := "sample-data"
|
|
ctx.EXPECT().Get("name").Return(name)
|
|
ctx.EXPECT().Get("image").Return(image)
|
|
ctx.EXPECT().Get("docker_driver").Return(driver)
|
|
ctx.EXPECT().Get("k8s_driver").Return(driver)
|
|
ctx.EXPECT().Get("bindings").Return(bindings)
|
|
ctx.EXPECT().Get("data").Return(data)
|
|
ctx.EXPECT().Get("force").Return(true)
|
|
ctx.EXPECT().GetContext().Return(context.Background()).Times(6)
|
|
driver.EXPECT().Deploy(gomock.Any(), data, name, image, bindings).Return(nil).Times(2)
|
|
driver.EXPECT().Destroy(gomock.Any(), name).Return(nil).Times(2)
|
|
driver.EXPECT().GetStatus(gomock.Any(), name).Return(types.Service{
|
|
ID: "id-1",
|
|
Name: name,
|
|
Host: "127.0.0.1",
|
|
Port: 2100,
|
|
}, nil).Times(2)
|
|
if err := Up(ctx); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
})
|
|
}
|