Skip to content

Commit b3ecc17

Browse files
committed
Added tests
1 parent a5a2b92 commit b3ecc17

21 files changed

+690
-127
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ build-install:: build
6363
.PHONY: clean-mock
6464
clean-mock:
6565
@echo Cleaning generated mock files
66-
find . -path "*/mocks/*.go" -delete
66+
@find . -name "*_mock.go" -delete
6767

6868
.PHONY: generate-mock
6969
generate-mock: clean-mock

application/app/auth/app_details.go

Lines changed: 0 additions & 15 deletions
This file was deleted.

application/app/context.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,33 @@
11
package app
22

33
import (
4-
"github.com/jfrog/jfrog-cli-application/application/service"
4+
"github.com/jfrog/jfrog-cli-application/application/service/systems"
5+
"github.com/jfrog/jfrog-cli-application/application/service/versions"
56
)
67

78
type Context interface {
8-
GetVersionService() service.VersionService
9-
GetSystemService() service.SystemService
9+
GetVersionService() versions.VersionService
10+
GetSystemService() systems.SystemService
1011
GetConfig() interface{}
1112
}
1213

1314
type context struct {
14-
versionService service.VersionService
15-
systemService service.SystemService
15+
versionService versions.VersionService
16+
systemService systems.SystemService
1617
}
1718

1819
func NewAppContext() Context {
1920
return &context{
20-
versionService: service.NewVersionService(),
21-
systemService: service.NewSystemService(),
21+
versionService: versions.NewVersionService(),
22+
systemService: systems.NewSystemService(),
2223
}
2324
}
2425

25-
func (c *context) GetVersionService() service.VersionService {
26+
func (c *context) GetVersionService() versions.VersionService {
2627
return c.versionService
2728
}
2829

29-
func (c *context) GetSystemService() service.SystemService {
30+
func (c *context) GetSystemService() systems.SystemService {
3031
return c.systemService
3132
}
3233

application/app/context_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package app
2+
3+
import (
4+
"testing"
5+
6+
mocksystems "github.com/jfrog/jfrog-cli-application/application/service/systems/mocks"
7+
mockversions "github.com/jfrog/jfrog-cli-application/application/service/versions/mocks"
8+
9+
"github.com/stretchr/testify/assert"
10+
)
11+
12+
func TestNewAppContext(t *testing.T) {
13+
ctx := NewAppContext()
14+
assert.NotNil(t, ctx)
15+
assert.NotNil(t, ctx.GetVersionService())
16+
assert.NotNil(t, ctx.GetSystemService())
17+
}
18+
19+
func TestGetVersionService(t *testing.T) {
20+
mockVersionService := &mockversions.MockVersionService{}
21+
ctx := &context{
22+
versionService: mockVersionService,
23+
}
24+
assert.Equal(t, mockVersionService, ctx.GetVersionService())
25+
}
26+
27+
func TestGetSystemService(t *testing.T) {
28+
mockSystemService := &mocksystems.MockSystemService{}
29+
ctx := &context{
30+
systemService: mockSystemService,
31+
}
32+
assert.Equal(t, mockSystemService, ctx.GetSystemService())
33+
}
34+
35+
func TestGetConfig(t *testing.T) {
36+
ctx := &context{}
37+
assert.Nil(t, ctx.GetConfig())
38+
}

application/commands/system/ping_cmd.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,30 @@
11
package system
22

3+
//go:generate ${PROJECT_DIR}/scripts/mockgen.sh ${GOFILE}
4+
35
import (
46
"github.com/jfrog/jfrog-cli-application/application/app"
57
"github.com/jfrog/jfrog-cli-application/application/commands"
68
"github.com/jfrog/jfrog-cli-application/application/commands/utils"
79
"github.com/jfrog/jfrog-cli-application/application/common"
810
"github.com/jfrog/jfrog-cli-application/application/service"
11+
"github.com/jfrog/jfrog-cli-application/application/service/systems"
912
commonCLiCommands "github.com/jfrog/jfrog-cli-core/v2/common/commands"
1013
"github.com/jfrog/jfrog-cli-core/v2/plugins/components"
1114
coreConfig "github.com/jfrog/jfrog-cli-core/v2/utils/config"
1215
)
1316

1417
type pingCommand struct {
15-
systemService service.SystemService
18+
systemService systems.SystemService
1619
serverDetails *coreConfig.ServerDetails
1720
}
1821

1922
func (pc *pingCommand) Run() error {
20-
ctx := &service.Context{ServerDetails: pc.serverDetails}
23+
ctx, err := service.NewContext(*pc.serverDetails)
24+
if err != nil {
25+
return err
26+
}
27+
2128
return pc.systemService.Ping(ctx)
2229
}
2330

application/commands/version/create_app_version_cmd.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package version
33
import (
44
"encoding/json"
55

6+
"github.com/jfrog/jfrog-cli-application/application/service/versions"
7+
68
"github.com/jfrog/jfrog-cli-application/application/app"
79
"github.com/jfrog/jfrog-cli-application/application/commands"
810
"github.com/jfrog/jfrog-cli-application/application/commands/utils"
@@ -19,7 +21,7 @@ import (
1921
)
2022

2123
type createAppVersionCommand struct {
22-
versionService service.VersionService
24+
versionService versions.VersionService
2325
serverDetails *coreConfig.ServerDetails
2426
requestPayload *model.CreateAppVersionRequest
2527
}
@@ -29,7 +31,11 @@ type createVersionSpec struct {
2931
}
3032

3133
func (cv *createAppVersionCommand) Run() error {
32-
ctx := &service.Context{ServerDetails: cv.serverDetails}
34+
ctx, err := service.NewContext(*cv.serverDetails)
35+
if err != nil {
36+
return err
37+
}
38+
3339
return cv.versionService.CreateAppVersion(ctx, cv.requestPayload)
3440
}
3541

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package version
2+
3+
import (
4+
"errors"
5+
"testing"
6+
7+
mockversions "github.com/jfrog/jfrog-cli-application/application/service/versions/mocks"
8+
"go.uber.org/mock/gomock"
9+
10+
"github.com/jfrog/jfrog-cli-application/application/model"
11+
"github.com/jfrog/jfrog-cli-core/v2/utils/config"
12+
"github.com/stretchr/testify/assert"
13+
)
14+
15+
func TestCreateAppVersionCommand_Run(t *testing.T) {
16+
ctrl := gomock.NewController(t)
17+
defer ctrl.Finish()
18+
19+
serverDetails := &config.ServerDetails{Url: "https://example.com"}
20+
requestPayload := &model.CreateAppVersionRequest{
21+
ApplicationKey: "app-key",
22+
Version: "1.0.0",
23+
Packages: []model.CreateVersionPackage{
24+
{
25+
Type: "type",
26+
Name: "name",
27+
Version: "1.0.0",
28+
Repository: "repo",
29+
},
30+
},
31+
}
32+
33+
mockVersionService := mockversions.NewMockVersionService(ctrl)
34+
mockVersionService.EXPECT().CreateAppVersion(gomock.Any(), requestPayload).
35+
Return(nil).Times(1)
36+
37+
cmd := &createAppVersionCommand{
38+
versionService: mockVersionService,
39+
serverDetails: serverDetails,
40+
requestPayload: requestPayload,
41+
}
42+
43+
err := cmd.Run()
44+
assert.NoError(t, err)
45+
}
46+
47+
func TestCreateAppVersionCommand_Run_ContextError(t *testing.T) {
48+
ctrl := gomock.NewController(t)
49+
defer ctrl.Finish()
50+
51+
serverDetails := &config.ServerDetails{Url: "https://example.com"}
52+
requestPayload := &model.CreateAppVersionRequest{
53+
ApplicationKey: "app-key",
54+
Version: "1.0.0",
55+
Packages: []model.CreateVersionPackage{
56+
{
57+
Type: "type",
58+
Name: "name",
59+
Version: "1.0.0",
60+
Repository: "repo",
61+
},
62+
},
63+
}
64+
65+
mockVersionService := mockversions.NewMockVersionService(ctrl)
66+
mockVersionService.EXPECT().CreateAppVersion(gomock.Any(), requestPayload).
67+
Return(errors.New("context error")).Times(1)
68+
69+
cmd := &createAppVersionCommand{
70+
versionService: mockVersionService,
71+
serverDetails: serverDetails,
72+
requestPayload: requestPayload,
73+
}
74+
75+
err := cmd.Run()
76+
assert.Error(t, err)
77+
assert.Equal(t, "context error", err.Error())
78+
}

application/commands/version/promote_app_version_cmd.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package version
22

3+
//go:generate ${PROJECT_DIR}/scripts/mockgen.sh ${GOFILE}
4+
35
import (
46
"github.com/jfrog/jfrog-cli-application/application/app"
57
"github.com/jfrog/jfrog-cli-application/application/commands"
68
"github.com/jfrog/jfrog-cli-application/application/commands/utils"
79
"github.com/jfrog/jfrog-cli-application/application/common"
810
"github.com/jfrog/jfrog-cli-application/application/model"
911
"github.com/jfrog/jfrog-cli-application/application/service"
12+
"github.com/jfrog/jfrog-cli-application/application/service/versions"
1013
commonCLiCommands "github.com/jfrog/jfrog-cli-core/v2/common/commands"
1114
pluginsCommon "github.com/jfrog/jfrog-cli-core/v2/plugins/common"
1215
"github.com/jfrog/jfrog-cli-core/v2/plugins/components"
@@ -15,13 +18,17 @@ import (
1518
)
1619

1720
type promoteAppVersionCommand struct {
18-
versionService service.VersionService
21+
versionService versions.VersionService
1922
serverDetails *coreConfig.ServerDetails
2023
requestPayload *model.PromoteAppVersionRequest
2124
}
2225

2326
func (pv *promoteAppVersionCommand) Run() error {
24-
ctx := &service.Context{ServerDetails: pv.serverDetails}
27+
ctx, err := service.NewContext(*pv.serverDetails)
28+
if err != nil {
29+
return err
30+
}
31+
2532
return pv.versionService.PromoteAppVersion(ctx, pv.requestPayload)
2633
}
2734

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package version
2+
3+
import (
4+
"testing"
5+
6+
"github.com/jfrog/jfrog-cli-application/application/commands"
7+
mockversions "github.com/jfrog/jfrog-cli-application/application/service/versions/mocks"
8+
"go.uber.org/mock/gomock"
9+
10+
"github.com/jfrog/jfrog-cli-application/application/model"
11+
coreconfig "github.com/jfrog/jfrog-cli-core/v2/utils/config"
12+
"github.com/stretchr/testify/assert"
13+
)
14+
15+
func TestRun(t *testing.T) {
16+
ctrl := gomock.NewController(t)
17+
defer ctrl.Finish()
18+
19+
serverDetails := &coreconfig.ServerDetails{}
20+
requestPayload := &model.PromoteAppVersionRequest{
21+
ApplicationKey: "app",
22+
Version: "1.0.0",
23+
Environment: "env",
24+
}
25+
26+
mockVersionService := mockversions.NewMockVersionService(ctrl)
27+
mockVersionService.EXPECT().PromoteAppVersion(gomock.Any(), requestPayload).
28+
Return(nil).Times(1)
29+
30+
cmd := &promoteAppVersionCommand{
31+
versionService: mockVersionService,
32+
serverDetails: serverDetails,
33+
requestPayload: requestPayload,
34+
}
35+
36+
err := cmd.Run()
37+
assert.NoError(t, err)
38+
}
39+
40+
func TestServerDetails(t *testing.T) {
41+
ctrl := gomock.NewController(t)
42+
defer ctrl.Finish()
43+
44+
serverDetails := &coreconfig.ServerDetails{}
45+
cmd := &promoteAppVersionCommand{
46+
serverDetails: serverDetails,
47+
}
48+
49+
details, err := cmd.ServerDetails()
50+
assert.NoError(t, err)
51+
assert.Equal(t, serverDetails, details)
52+
}
53+
54+
func TestCommandName(t *testing.T) {
55+
ctrl := gomock.NewController(t)
56+
defer ctrl.Finish()
57+
58+
cmd := &promoteAppVersionCommand{}
59+
assert.Equal(t, commands.PromoteAppVersion, cmd.CommandName())
60+
}

application/http/http_client.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package http
22

3+
//go:generate ${PROJECT_DIR}/scripts/mockgen.sh ${GOFILE}
4+
35
import (
46
"encoding/json"
57
"fmt"

0 commit comments

Comments
 (0)