mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-12 10:55:20 +02:00
427f78b3ed
* adding my steps * messy step * Update abapEnvironmentAssembly.go * clean up * change yaml * corrections * Update cloudFoundryDeploy.go * update * delete simulation step * remove simulate * Update PiperGoUtils.groovy * Update PiperGoUtils.groovy * Update CommonStepsTest.groovy * add docu * Update abapEnvironmentAssembly.md * changes due to PR * Update .gitignore * b * CV list * Update abapEnvironmentAssembly.go * testing with simulation * Update abapEnvironmentAssembly.go * remove simulation * renaming * Update mkdocs.yml * moving service key to yaml and fixing code climate * Update abapEnvironmentAssemblePackages.go * Update abapEnvironmentAssemblePackages.go * Update abapEnvironmentAssemblePackages.go * Update abapEnvironmentAssemblePackages.go * change input * Update abapEnvironmentAssemblePackages.go * change json tag * fixed error handling * documentation * Update abapEnvironmentAssemblePackages.md * Update abapEnvironmentAssemblePackages.md * fixing code climate issues * fixing code climate issues * Update abapEnvironmentAssemblePackages.yaml * fixing code climate issues * Update abapEnvironmentAssemblePackages.yaml * adding unittests * adding unittests and improved logging * yaml -> json * change scope of cfServiceKeyName * correct indentation * Update CommonStepsTest.groovy * maintain correct step order * AAKaaS CheckPV step * AAKaaS CheckPV step #2 * AAKaaS CheckPV step #3 * AAKaaS CheckPV step #4 * AAKaaS CheckPV step #5 * Update resources/metadata/abapAddonAssemblyKitCheckCVs.yaml Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com> * Update resources/metadata/abapAddonAssemblyKitCheckPV.yaml Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com> * Update resources/metadata/abapAddonAssemblyKitCheckPV.yaml Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com> * Update resources/metadata/abapAddonAssemblyKitCheckCVs.yaml Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com> * AAKaaS CheckPV step #6 Co-authored-by: rosemarieB <45030247+rosemarieB@users.noreply.github.com> Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com> Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
184 lines
5.6 KiB
Go
184 lines
5.6 KiB
Go
package cmd
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
abapbuild "github.com/SAP/jenkins-library/pkg/abap/build"
|
|
"github.com/SAP/jenkins-library/pkg/abaputils"
|
|
"github.com/pkg/errors"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func mockReadAddonDescriptor(FileName string) (abaputils.AddonDescriptor, error) {
|
|
var addonDescriptor abaputils.AddonDescriptor
|
|
var err error
|
|
switch FileName {
|
|
case "success":
|
|
{
|
|
addonDescriptor = abaputils.AddonDescriptor{
|
|
AddonProduct: "/DRNMSPC/PRD01",
|
|
AddonVersionYAML: "3.2.1",
|
|
Repositories: []abaputils.Repository{
|
|
{
|
|
Name: "/DRNMSPC/COMP01",
|
|
VersionYAML: "1.2.3",
|
|
},
|
|
},
|
|
}
|
|
}
|
|
case "failing":
|
|
{
|
|
err = errors.New("error in ReadAddonDescriptor")
|
|
}
|
|
}
|
|
return addonDescriptor, err
|
|
}
|
|
|
|
func TestCheckCVsStep(t *testing.T) {
|
|
var config abapAddonAssemblyKitCheckCVsOptions
|
|
var cpe abapAddonAssemblyKitCheckCVsCommonPipelineEnvironment
|
|
client := &abaputils.ClientMock{
|
|
Body: responseCheckCVs,
|
|
}
|
|
t.Run("step success", func(t *testing.T) {
|
|
config.AddonDescriptorFileName = "success"
|
|
err := runAbapAddonAssemblyKitCheckCVs(&config, nil, client, &cpe, mockReadAddonDescriptor)
|
|
assert.NoError(t, err, "Did not expect error")
|
|
var addonDescriptorFinal abaputils.AddonDescriptor
|
|
json.Unmarshal([]byte(cpe.abap.addonDescriptor), &addonDescriptorFinal)
|
|
assert.Equal(t, "0001", addonDescriptorFinal.Repositories[0].Version)
|
|
assert.Equal(t, "0002", addonDescriptorFinal.Repositories[0].SpLevel)
|
|
assert.Equal(t, "0003", addonDescriptorFinal.Repositories[0].PatchLevel)
|
|
})
|
|
t.Run("step error - in ReadAddonDescriptor", func(t *testing.T) {
|
|
config.AddonDescriptorFileName = "failing"
|
|
err := runAbapAddonAssemblyKitCheckCVs(&config, nil, client, &cpe, mockReadAddonDescriptor)
|
|
assert.Error(t, err, "Must end with error")
|
|
assert.Equal(t, "error in ReadAddonDescriptor", err.Error())
|
|
})
|
|
t.Run("step error - in validate", func(t *testing.T) {
|
|
config.AddonDescriptorFileName = "success"
|
|
client := &abaputils.ClientMock{
|
|
Body: "ErrorBody",
|
|
Error: errors.New("error during validation"),
|
|
}
|
|
err := runAbapAddonAssemblyKitCheckCVs(&config, nil, client, &cpe, mockReadAddonDescriptor)
|
|
assert.Error(t, err, "Must end with error")
|
|
})
|
|
}
|
|
|
|
func TestInitCV(t *testing.T) {
|
|
t.Run("test init", func(t *testing.T) {
|
|
conn := new(abapbuild.Connector)
|
|
conn.Client = &abaputils.ClientMock{}
|
|
repo := abaputils.Repository{
|
|
Name: "/DRNMSPC/COMP01",
|
|
VersionYAML: "1.2.3",
|
|
}
|
|
var c componentVersion
|
|
c.initCV(repo, *conn)
|
|
assert.Equal(t, "/DRNMSPC/COMP01", c.Name)
|
|
assert.Equal(t, "1.2.3", c.VersionYAML)
|
|
})
|
|
}
|
|
|
|
func TestValidateCV(t *testing.T) {
|
|
conn := new(abapbuild.Connector)
|
|
t.Run("test validate - success", func(t *testing.T) {
|
|
conn.Client = &abaputils.ClientMock{
|
|
Body: responseCheckCVs,
|
|
}
|
|
c := componentVersion{
|
|
Connector: *conn,
|
|
Name: "/DRNMSPC/COMP01",
|
|
VersionYAML: "1.2.3",
|
|
}
|
|
conn.Client = &abaputils.ClientMock{
|
|
Body: responseCheckCVs,
|
|
}
|
|
err := c.validate()
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, "0001", c.Version)
|
|
assert.Equal(t, "0002", c.SpLevel)
|
|
assert.Equal(t, "0003", c.PatchLevel)
|
|
})
|
|
t.Run("test validate - with error", func(t *testing.T) {
|
|
conn.Client = &abaputils.ClientMock{
|
|
Body: "ErrorBody",
|
|
Error: errors.New("Validation failed"),
|
|
}
|
|
c := componentVersion{
|
|
Connector: *conn,
|
|
Name: "/DRNMSPC/COMP01",
|
|
VersionYAML: "1.2.3",
|
|
}
|
|
err := c.validate()
|
|
assert.Error(t, err)
|
|
assert.Equal(t, "", c.Version)
|
|
assert.Equal(t, "", c.SpLevel)
|
|
assert.Equal(t, "", c.PatchLevel)
|
|
})
|
|
}
|
|
|
|
func TestCopyFieldsCV(t *testing.T) {
|
|
t.Run("test copyFieldsToRepo", func(t *testing.T) {
|
|
repo := abaputils.Repository{
|
|
Name: "/DRNMSPC/COMP01",
|
|
VersionYAML: "1.2.3",
|
|
}
|
|
var c componentVersion
|
|
c.Version = "0001"
|
|
c.SpLevel = "0002"
|
|
c.PatchLevel = "0003"
|
|
c.copyFieldsToRepo(&repo)
|
|
assert.Equal(t, "0001", repo.Version)
|
|
assert.Equal(t, "0002", repo.SpLevel)
|
|
assert.Equal(t, "0003", repo.PatchLevel)
|
|
})
|
|
}
|
|
|
|
func TestCombineYAMLRepositoriesWithCPEProduct(t *testing.T) {
|
|
t.Run("test combineYAMLRepositoriesWithCPEProduct", func(t *testing.T) {
|
|
addonDescriptor := abaputils.AddonDescriptor{
|
|
Repositories: []abaputils.Repository{
|
|
{
|
|
Name: "/DRNMSPC/COMP01",
|
|
VersionYAML: "1.2.3",
|
|
},
|
|
{
|
|
Name: "/DRNMSPC/COMP02",
|
|
VersionYAML: "3.2.1",
|
|
},
|
|
},
|
|
}
|
|
addonDescriptorFromCPE := abaputils.AddonDescriptor{
|
|
AddonProduct: "/DRNMSP/PROD",
|
|
AddonVersionYAML: "1.2.3",
|
|
}
|
|
finalAddonDescriptor := combineYAMLRepositoriesWithCPEProduct(addonDescriptor, addonDescriptorFromCPE)
|
|
assert.Equal(t, "/DRNMSP/PROD", finalAddonDescriptor.AddonProduct)
|
|
assert.Equal(t, "1.2.3", finalAddonDescriptor.AddonVersionYAML)
|
|
assert.Equal(t, "/DRNMSPC/COMP01", finalAddonDescriptor.Repositories[0].Name)
|
|
assert.Equal(t, "/DRNMSPC/COMP02", finalAddonDescriptor.Repositories[1].Name)
|
|
assert.Equal(t, "1.2.3", finalAddonDescriptor.Repositories[0].VersionYAML)
|
|
assert.Equal(t, "3.2.1", finalAddonDescriptor.Repositories[1].VersionYAML)
|
|
})
|
|
}
|
|
|
|
var responseCheckCVs = `{
|
|
"d": {
|
|
"__metadata": {
|
|
"id": "https://W7Q.DMZWDF.SAP.CORP:443/odata/aas_ocs_package/SoftwareComponentVersionSet(Name='%2FDRNMSPC%2FCOMP01',Version='0001')",
|
|
"uri": "https://W7Q.DMZWDF.SAP.CORP:443/odata/aas_ocs_package/SoftwareComponentVersionSet(Name='%2FDRNMSPC%2FCOMP01',Version='0001')",
|
|
"type": "SSDA.AAS_ODATA_PACKAGE_SRV.SoftwareComponentVersion"
|
|
},
|
|
"Name": "/DRNMSPC/COMP01",
|
|
"Version": "0001",
|
|
"SpLevel": "0002",
|
|
"PatchLevel": "0003",
|
|
"Vendor": "",
|
|
"VendorType": ""
|
|
}
|
|
}`
|