github.com/jaylevin/jenkins-library@v1.230.4/cmd/abapAddonAssemblyKitReleasePackages_test.go (about) 1 package cmd 2 3 import ( 4 "encoding/json" 5 "testing" 6 "time" 7 8 "github.com/SAP/jenkins-library/pkg/abap/aakaas" 9 "github.com/SAP/jenkins-library/pkg/abaputils" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestReleasePackagesStep(t *testing.T) { 14 var config abapAddonAssemblyKitReleasePackagesOptions 15 var cpe abapAddonAssemblyKitReleasePackagesCommonPipelineEnvironment 16 bundle := aakaas.NewAakBundleMock() 17 bundle.SetBody(responseRelease) 18 utils := bundle.GetUtils() 19 20 config.Username = "dummyUser" 21 config.Password = "dummyPassword" 22 t.Run("step success", func(t *testing.T) { 23 //arrange 24 addonDescriptor := abaputils.AddonDescriptor{ 25 Repositories: []abaputils.Repository{ 26 { 27 PackageName: "SAPK-002AAINDRNMSPC", 28 Status: "L", 29 }, 30 { 31 PackageName: "SAPK-001AAINDRNMSPC", 32 Status: "R", 33 }, 34 }, 35 } 36 adoDesc, _ := json.Marshal(addonDescriptor) 37 config.AddonDescriptor = string(adoDesc) 38 //act 39 err := runAbapAddonAssemblyKitReleasePackages(&config, nil, &utils, &cpe) 40 //assert 41 assert.NoError(t, err, "Did not expect error") 42 var addonDescriptorFinal abaputils.AddonDescriptor 43 json.Unmarshal([]byte(cpe.abap.addonDescriptor), &addonDescriptorFinal) 44 assert.Equal(t, "R", addonDescriptorFinal.Repositories[0].Status) 45 }) 46 47 t.Run("step error - invalid input", func(t *testing.T) { 48 //arrange 49 addonDescriptor := abaputils.AddonDescriptor{ 50 Repositories: []abaputils.Repository{ 51 { 52 Status: "L", 53 }, 54 }, 55 } 56 adoDesc, _ := json.Marshal(addonDescriptor) 57 config.AddonDescriptor = string(adoDesc) 58 //act 59 err := runAbapAddonAssemblyKitReleasePackages(&config, nil, &utils, &cpe) 60 //assert 61 assert.Error(t, err, "Did expect error") 62 assert.Equal(t, err.Error(), "Parameter missing. Please provide the name of the package which should be released") 63 }) 64 65 t.Run("step error - timeout", func(t *testing.T) { 66 //arrange 67 bundle.SetError("Release not finished") 68 bundle.SetMaxRuntime(1 * time.Microsecond) 69 addonDescriptor := abaputils.AddonDescriptor{ 70 Repositories: []abaputils.Repository{ 71 { 72 PackageName: "SAPK-001AAINDRNMSPC", 73 Status: "L", 74 }, 75 }, 76 } 77 adoDesc, _ := json.Marshal(addonDescriptor) 78 config.AddonDescriptor = string(adoDesc) 79 //act 80 err := runAbapAddonAssemblyKitReleasePackages(&config, nil, &utils, &cpe) 81 //assert 82 assert.Error(t, err, "Did expect error") 83 assert.Equal(t, err.Error(), "Timed out") 84 }) 85 } 86 87 var responseRelease = `{ 88 "d": { 89 "__metadata": { 90 "id": "https://W7Q.DMZWDF.SAP.CORP:443/odata/aas_ocs_package/OcsPackageSet('SAPK-001AAINDRNMSPC')", 91 "uri": "https://W7Q.DMZWDF.SAP.CORP:443/odata/aas_ocs_package/OcsPackageSet('SAPK-001AAINDRNMSPC')", 92 "type": "SSDA.AAS_ODATA_PACKAGE_SRV.OcsPackage" 93 }, 94 "Name": "SAPK-001AAINDRNMSPC", 95 "Type": "AOI", 96 "Component": "/DRNMSPC/COMP01", 97 "Release": "0001", 98 "Level": "0000", 99 "Status": "R", 100 "Operation": "", 101 "Namespace": "/DRNMSPC/", 102 "Vendorid": "0000203069" 103 } 104 }`