1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2025-02-07 13:42:23 +02:00
sap-jenkins-library/cmd/contrastExecuteScan_test.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)
})
}