Skip to content

Commit 1918224

Browse files
committed
Added tests
1 parent c2434c7 commit 1918224

File tree

12 files changed

+295
-34
lines changed

12 files changed

+295
-34
lines changed

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: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package app
22

33
import (
4-
mockservice "github.com/jfrog/jfrog-cli-application/application/service/mocks"
54
"testing"
65

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+
79
"github.com/stretchr/testify/assert"
810
)
911

@@ -15,15 +17,15 @@ func TestNewAppContext(t *testing.T) {
1517
}
1618

1719
func TestGetVersionService(t *testing.T) {
18-
mockVersionService := &mockservice.MockVersionService{}
20+
mockVersionService := &mockversions.MockVersionService{}
1921
ctx := &context{
2022
versionService: mockVersionService,
2123
}
2224
assert.Equal(t, mockVersionService, ctx.GetVersionService())
2325
}
2426

2527
func TestGetSystemService(t *testing.T) {
26-
mockSystemService := &mockservice.MockSystemService{}
28+
mockSystemService := &mocksystems.MockSystemService{}
2729
ctx := &context{
2830
systemService: mockSystemService,
2931
}

application/commands/system/ping_cmd.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@ import (
66
"github.com/jfrog/jfrog-cli-application/application/commands/utils"
77
"github.com/jfrog/jfrog-cli-application/application/common"
88
"github.com/jfrog/jfrog-cli-application/application/service"
9+
"github.com/jfrog/jfrog-cli-application/application/service/systems"
910
commonCLiCommands "github.com/jfrog/jfrog-cli-core/v2/common/commands"
1011
"github.com/jfrog/jfrog-cli-core/v2/plugins/components"
1112
coreConfig "github.com/jfrog/jfrog-cli-core/v2/utils/config"
1213
)
1314

1415
type pingCommand struct {
15-
systemService service.SystemService
16+
systemService systems.SystemService
1617
serverDetails *coreConfig.ServerDetails
1718
}
1819

application/commands/version/create_app_version_cmd.go

Lines changed: 3 additions & 1 deletion
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
}

application/commands/version/promote_app_version_cmd.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/jfrog/jfrog-cli-application/application/common"
88
"github.com/jfrog/jfrog-cli-application/application/model"
99
"github.com/jfrog/jfrog-cli-application/application/service"
10+
"github.com/jfrog/jfrog-cli-application/application/service/versions"
1011
commonCLiCommands "github.com/jfrog/jfrog-cli-core/v2/common/commands"
1112
pluginsCommon "github.com/jfrog/jfrog-cli-core/v2/plugins/common"
1213
"github.com/jfrog/jfrog-cli-core/v2/plugins/components"
@@ -15,7 +16,7 @@ import (
1516
)
1617

1718
type promoteAppVersionCommand struct {
18-
versionService service.VersionService
19+
versionService versions.VersionService
1920
serverDetails *coreConfig.ServerDetails
2021
requestPayload *model.PromoteAppVersionRequest
2122
}

application/service/context.go

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

3+
//go:generate ${PROJECT_DIR}/scripts/mockgen.sh ${GOFILE}
4+
35
import (
46
"github.com/jfrog/jfrog-cli-application/application/http"
57
coreConfig "github.com/jfrog/jfrog-cli-core/v2/utils/config"
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package service
2+
3+
import (
4+
"testing"
5+
6+
"github.com/jfrog/jfrog-cli-application/application/http"
7+
coreConfig "github.com/jfrog/jfrog-cli-core/v2/utils/config"
8+
"github.com/stretchr/testify/assert"
9+
)
10+
11+
func TestGetServerDetails(t *testing.T) {
12+
serverDetails := coreConfig.ServerDetails{
13+
Url: "https://example.com",
14+
}
15+
ctx := &context{ServerDetails: serverDetails}
16+
17+
assert.Equal(t, serverDetails, ctx.GetServerDetails())
18+
}
19+
20+
func TestGetHttpClient(t *testing.T) {
21+
serverDetails := coreConfig.ServerDetails{
22+
Url: "https://example.com",
23+
}
24+
httpClient, err := http.NewAppHttpClient(&serverDetails)
25+
assert.NoError(t, err)
26+
27+
ctx := &context{ServerDetails: serverDetails, HttpClient: httpClient}
28+
29+
assert.Equal(t, httpClient, ctx.GetHttpClient())
30+
}
31+
32+
func TestNewContext(t *testing.T) {
33+
serverDetails := coreConfig.ServerDetails{
34+
Url: "https://example.com",
35+
}
36+
ctx, err := NewContext(serverDetails)
37+
assert.NoError(t, err)
38+
assert.NotNil(t, ctx)
39+
40+
assert.Equal(t, serverDetails, ctx.GetServerDetails())
41+
assert.NotNil(t, ctx.GetHttpClient())
42+
}

application/service/system_service.go renamed to application/service/systems/system_service.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
package service
1+
package systems
22

33
//go:generate ${PROJECT_DIR}/scripts/mockgen.sh ${GOFILE}
44

55
import (
66
"fmt"
7+
8+
"github.com/jfrog/jfrog-cli-application/application/service"
79
)
810

911
type SystemService interface {
10-
Ping(ctx Context) error
12+
Ping(ctx service.Context) error
1113
}
1214

1315
type systemService struct{}
@@ -16,14 +18,14 @@ func NewSystemService() SystemService {
1618
return &systemService{}
1719
}
1820

19-
func (ss *systemService) Ping(ctx Context) error {
21+
func (ss *systemService) Ping(ctx service.Context) error {
2022
response, body, err := ctx.GetHttpClient().Get("/v1/system/ping")
2123
if err != nil {
2224
return err
2325
}
2426

2527
if response.StatusCode != 200 {
26-
return fmt.Errorf("failed to create app version. Status code: %d", response.StatusCode)
28+
return fmt.Errorf("failed pinging application service. Status code: %d", response.StatusCode)
2729
}
2830

2931
fmt.Println(string(body))

application/service/system_service_test.go renamed to application/service/systems/system_service_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
package service
1+
package systems
22

33
import (
44
"errors"
5-
"github.com/jfrog/jfrog-cli-core/v2/utils/config"
6-
"go.uber.org/mock/gomock"
75
"net/http"
86
"testing"
97

10-
"github.com/jfrog/jfrog-cli-application/application/http/mocks"
8+
mockservice "github.com/jfrog/jfrog-cli-application/application/service/mocks"
9+
"go.uber.org/mock/gomock"
10+
11+
mockhttp "github.com/jfrog/jfrog-cli-application/application/http/mocks"
1112
"github.com/stretchr/testify/assert"
1213
)
1314

@@ -35,7 +36,7 @@ func TestSystemService_Ping(t *testing.T) {
3536
},
3637
mockBody: []byte(""),
3738
mockError: nil,
38-
expectedError: errors.New("failed to create app version. Status code: 500"),
39+
expectedError: errors.New("failed pinging application service. Status code: 500"),
3940
},
4041
{
4142
name: "Ping failed with error",
@@ -51,16 +52,15 @@ func TestSystemService_Ping(t *testing.T) {
5152
ctrl := gomock.NewController(t)
5253
defer ctrl.Finish()
5354

54-
mockHttpClient := mock_http.NewMockAppHttpClient(ctrl)
55+
mockHttpClient := mockhttp.NewMockAppHttpClient(ctrl)
5556
mockHttpClient.EXPECT().Get("/v1/system/ping").
5657
Return(tt.mockResponse, tt.mockBody, tt.mockError)
5758

58-
ctx := &Context{
59-
ServerDetails: &config.ServerDetails{},
60-
}
59+
mockCtx := mockservice.NewMockContext(ctrl)
60+
mockCtx.EXPECT().GetHttpClient().Return(mockHttpClient).Times(1)
6161

6262
ss := NewSystemService()
63-
err := ss.Ping(ctx)
63+
err := ss.Ping(mockCtx)
6464

6565
if tt.expectedError != nil {
6666
assert.EqualError(t, err, tt.expectedError.Error())

application/service/version_service.go renamed to application/service/versions/version_service.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
package service
1+
package versions
22

33
//go:generate ${PROJECT_DIR}/scripts/mockgen.sh ${GOFILE}
44

55
import (
66
"fmt"
77

8+
"github.com/jfrog/jfrog-cli-application/application/service"
9+
810
"github.com/jfrog/jfrog-cli-application/application/model"
911
)
1012

1113
type VersionService interface {
12-
CreateAppVersion(ctx Context, request *model.CreateAppVersionRequest) error
13-
PromoteAppVersion(ctx Context, payload *model.PromoteAppVersionRequest) error
14+
CreateAppVersion(ctx service.Context, request *model.CreateAppVersionRequest) error
15+
PromoteAppVersion(ctx service.Context, payload *model.PromoteAppVersionRequest) error
1416
}
1517

1618
type versionService struct{}
@@ -19,7 +21,7 @@ func NewVersionService() VersionService {
1921
return &versionService{}
2022
}
2123

22-
func (vs *versionService) CreateAppVersion(ctx Context, request *model.CreateAppVersionRequest) error {
24+
func (vs *versionService) CreateAppVersion(ctx service.Context, request *model.CreateAppVersionRequest) error {
2325
response, responseBody, err := ctx.GetHttpClient().Post("/v1/version", request)
2426
if err != nil {
2527
return err
@@ -33,7 +35,7 @@ func (vs *versionService) CreateAppVersion(ctx Context, request *model.CreateApp
3335
return nil
3436
}
3537

36-
func (vs *versionService) PromoteAppVersion(ctx Context, payload *model.PromoteAppVersionRequest) error {
38+
func (vs *versionService) PromoteAppVersion(ctx service.Context, payload *model.PromoteAppVersionRequest) error {
3739
response, responseBody, err := ctx.GetHttpClient().Post("/v1/version/promote", payload)
3840
if err != nil {
3941
return err

0 commit comments

Comments
 (0)