mirror of
https://github.com/SAP/jenkins-library.git
synced 2025-02-07 13:42:23 +02:00
132 lines
3.0 KiB
Go
132 lines
3.0 KiB
Go
package cmd
|
|
|
|
import (
|
|
"encoding/base64"
|
|
"testing"
|
|
|
|
"github.com/SAP/jenkins-library/pkg/mock"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
type contrastExecuteScanMockUtils struct {
|
|
*mock.ExecMockRunner
|
|
*mock.FilesMock
|
|
}
|
|
|
|
func newContrastExecuteScanTestsUtils() contrastExecuteScanMockUtils {
|
|
utils := contrastExecuteScanMockUtils{
|
|
ExecMockRunner: &mock.ExecMockRunner{},
|
|
FilesMock: &mock.FilesMock{},
|
|
}
|
|
return utils
|
|
}
|
|
|
|
func TestGetAuth(t *testing.T) {
|
|
t.Run("Success", func(t *testing.T) {
|
|
config := &contrastExecuteScanOptions{
|
|
UserAPIKey: "user-api-key",
|
|
Username: "username",
|
|
ServiceKey: "service-key",
|
|
}
|
|
authString := getAuth(config)
|
|
assert.NotEmpty(t, authString)
|
|
data, err := base64.StdEncoding.DecodeString(authString)
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, "username:service-key", string(data))
|
|
})
|
|
}
|
|
|
|
func TestGetApplicationUrls(t *testing.T) {
|
|
t.Run("Success", func(t *testing.T) {
|
|
config := &contrastExecuteScanOptions{
|
|
Server: "https://server.com",
|
|
OrganizationID: "orgId",
|
|
ApplicationID: "appId",
|
|
}
|
|
appUrl, guiUrl := getApplicationUrls(config)
|
|
assert.Equal(t, "https://server.com/api/v4/organizations/orgId/applications/appId", appUrl)
|
|
assert.Equal(t, "https://server.com/Contrast/static/ng/index.html#/orgId/applications/appId", guiUrl)
|
|
})
|
|
}
|
|
|
|
func TestValidateConfigs(t *testing.T) {
|
|
t.Parallel()
|
|
validConfig := contrastExecuteScanOptions{
|
|
UserAPIKey: "user-api-key",
|
|
ServiceKey: "service-key",
|
|
Username: "username",
|
|
Server: "https://server.com",
|
|
OrganizationID: "orgId",
|
|
ApplicationID: "appId",
|
|
}
|
|
|
|
t.Run("Valid config", func(t *testing.T) {
|
|
config := validConfig
|
|
err := validateConfigs(&config)
|
|
assert.NoError(t, err)
|
|
})
|
|
|
|
t.Run("Valid config, server url without https://", func(t *testing.T) {
|
|
config := validConfig
|
|
config.Server = "server.com"
|
|
err := validateConfigs(&config)
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, config.Server, "https://server.com")
|
|
})
|
|
|
|
t.Run("Empty config", func(t *testing.T) {
|
|
config := contrastExecuteScanOptions{}
|
|
|
|
err := validateConfigs(&config)
|
|
assert.Error(t, err)
|
|
})
|
|
|
|
t.Run("Empty userAPIKey", func(t *testing.T) {
|
|
config := validConfig
|
|
config.UserAPIKey = ""
|
|
|
|
err := validateConfigs(&config)
|
|
assert.Error(t, err)
|
|
})
|
|
|
|
t.Run("Empty username", func(t *testing.T) {
|
|
config := validConfig
|
|
config.Username = ""
|
|
|
|
err := validateConfigs(&config)
|
|
assert.Error(t, err)
|
|
})
|
|
|
|
t.Run("Empty serviceKey", func(t *testing.T) {
|
|
config := validConfig
|
|
config.ServiceKey = ""
|
|
|
|
err := validateConfigs(&config)
|
|
assert.Error(t, err)
|
|
})
|
|
|
|
t.Run("Empty server", func(t *testing.T) {
|
|
config := validConfig
|
|
config.Server = ""
|
|
|
|
err := validateConfigs(&config)
|
|
assert.Error(t, err)
|
|
})
|
|
|
|
t.Run("Empty organizationId", func(t *testing.T) {
|
|
config := validConfig
|
|
config.OrganizationID = ""
|
|
|
|
err := validateConfigs(&config)
|
|
assert.Error(t, err)
|
|
})
|
|
|
|
t.Run("Empty applicationID", func(t *testing.T) {
|
|
config := validConfig
|
|
config.ApplicationID = ""
|
|
|
|
err := validateConfigs(&config)
|
|
assert.Error(t, err)
|
|
})
|
|
}
|