mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-12 10:55:20 +02:00
7e55556d7e
CTS Upload Go - add cpe - adjust yaml docker, cpe, text
151 lines
4.4 KiB
Go
151 lines
4.4 KiB
Go
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/SAP/jenkins-library/pkg/command"
|
|
"github.com/SAP/jenkins-library/pkg/mock"
|
|
transportrequest "github.com/SAP/jenkins-library/pkg/transportrequest/cts"
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
type UploadActionMock struct {
|
|
Connection transportrequest.Connection
|
|
Application transportrequest.Application
|
|
Node transportrequest.Node
|
|
TransportRequestID string
|
|
ConfigFile string
|
|
DeployUser string
|
|
thrown error
|
|
}
|
|
|
|
// WithConnection ...
|
|
func (action *UploadActionMock) WithConnection(connection transportrequest.Connection) {
|
|
action.Connection = connection
|
|
}
|
|
|
|
// WithApplication ...
|
|
func (action *UploadActionMock) WithApplication(app transportrequest.Application) {
|
|
action.Application = app
|
|
}
|
|
|
|
// WithNodeProperties ...
|
|
func (action *UploadActionMock) WithNodeProperties(node transportrequest.Node) {
|
|
action.Node = node
|
|
}
|
|
|
|
// WithTransportRequestID ...
|
|
func (action *UploadActionMock) WithTransportRequestID(id string) {
|
|
action.TransportRequestID = id
|
|
}
|
|
|
|
// WithConfigFile ...
|
|
func (action *UploadActionMock) WithConfigFile(configFile string) {
|
|
action.ConfigFile = configFile
|
|
}
|
|
|
|
// WithDeployUser ...
|
|
func (action *UploadActionMock) WithDeployUser(deployUser string) {
|
|
action.DeployUser = deployUser
|
|
}
|
|
|
|
func (action *UploadActionMock) Perform(cmd command.ShellRunner) error {
|
|
return action.thrown
|
|
}
|
|
|
|
type transportRequestUploadMockUtils struct {
|
|
*mock.ShellMockRunner
|
|
}
|
|
|
|
func newTransportRequestUploadCTSTestsUtils() transportRequestUploadMockUtils {
|
|
utils := transportRequestUploadMockUtils{
|
|
ShellMockRunner: &mock.ShellMockRunner{},
|
|
}
|
|
return utils
|
|
}
|
|
|
|
func TestRunTransportRequestUploadCTS(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
t.Run("happy path", func(t *testing.T) {
|
|
// init
|
|
config := transportRequestUploadCTSOptions{
|
|
Endpoint: "https://example.org:8000",
|
|
Client: "001",
|
|
Username: "me",
|
|
Password: "********",
|
|
ApplicationName: "myApp",
|
|
AbapPackage: "myPackage",
|
|
Description: "lorem ipsum",
|
|
TransportRequestID: "XXXK123456",
|
|
OsDeployUser: "node", // default provided in config
|
|
DeployConfigFile: "ui5-deploy.yaml", // default provided in config
|
|
DeployToolDependencies: []string{"@ui5/cli", "@sap/ux-ui5-tooling"},
|
|
NpmInstallOpts: []string{"--verbose", "--registry", "https://registry.example.org/"},
|
|
}
|
|
|
|
actionMock := &UploadActionMock{thrown: nil}
|
|
cpe := &transportRequestUploadCTSCommonPipelineEnvironment{}
|
|
// test
|
|
err := runTransportRequestUploadCTS(&config, actionMock, nil, newTransportRequestUploadCTSTestsUtils(), cpe)
|
|
|
|
// assert
|
|
if assert.NoError(t, err) {
|
|
assert.Equal(t, &UploadActionMock{
|
|
Connection: transportrequest.Connection{
|
|
Endpoint: "https://example.org:8000",
|
|
Client: "001",
|
|
User: "me",
|
|
Password: "********",
|
|
},
|
|
Application: transportrequest.Application{
|
|
Name: "myApp",
|
|
Pack: "myPackage",
|
|
Desc: "lorem ipsum",
|
|
},
|
|
Node: transportrequest.Node{
|
|
DeployDependencies: []string{
|
|
"@ui5/cli",
|
|
"@sap/ux-ui5-tooling",
|
|
},
|
|
InstallOpts: []string{
|
|
"--verbose",
|
|
"--registry",
|
|
"https://registry.example.org/",
|
|
},
|
|
},
|
|
TransportRequestID: "XXXK123456",
|
|
ConfigFile: "ui5-deploy.yaml",
|
|
DeployUser: "node",
|
|
}, actionMock)
|
|
}
|
|
})
|
|
|
|
t.Run("error case", func(t *testing.T) {
|
|
|
|
config := transportRequestUploadCTSOptions{
|
|
Endpoint: "https://example.org:8000",
|
|
Client: "001",
|
|
Username: "me",
|
|
Password: "********",
|
|
ApplicationName: "myApp",
|
|
AbapPackage: "myPackage",
|
|
Description: "lorem ipsum",
|
|
TransportRequestID: "XXXK123456",
|
|
OsDeployUser: "node", // default provided in config
|
|
DeployConfigFile: "ui5-deploy.yaml", // default provided in config
|
|
DeployToolDependencies: []string{"@ui5/cli", "@sap/ux-ui5-tooling"},
|
|
NpmInstallOpts: []string{"--verbose", "--registry", "https://registry.example.org/"},
|
|
}
|
|
cpe := &transportRequestUploadCTSCommonPipelineEnvironment{}
|
|
|
|
err := runTransportRequestUploadCTS(
|
|
&config,
|
|
&UploadActionMock{thrown: fmt.Errorf("something went wrong")},
|
|
nil,
|
|
newTransportRequestUploadCTSTestsUtils(),
|
|
cpe)
|
|
assert.EqualError(t, err, "something went wrong")
|
|
})
|
|
}
|