github.com/xgoffin/jenkins-library@v1.154.0/cmd/abapAddonAssemblyKitCheckPV_test.go (about) 1 package cmd 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/SAP/jenkins-library/pkg/abap/aakaas" 8 abapbuild "github.com/SAP/jenkins-library/pkg/abap/build" 9 "github.com/SAP/jenkins-library/pkg/abaputils" 10 "github.com/pkg/errors" 11 "github.com/stretchr/testify/assert" 12 ) 13 14 func TestCheckPVStep(t *testing.T) { 15 var config abapAddonAssemblyKitCheckPVOptions 16 var cpe abapAddonAssemblyKitCheckPVCommonPipelineEnvironment 17 bundle := aakaas.NewAakBundleMock() 18 bundle.SetBody(responseCheckPV) 19 utils := bundle.GetUtils() 20 config.Username = "dummyUser" 21 config.Password = "dummyPassword" 22 t.Run("step success", func(t *testing.T) { 23 config.AddonDescriptorFileName = "success" 24 err := runAbapAddonAssemblyKitCheckPV(&config, nil, &utils, &cpe) 25 assert.NoError(t, err, "Did not expect error") 26 var addonDescriptorFinal abaputils.AddonDescriptor 27 json.Unmarshal([]byte(cpe.abap.addonDescriptor), &addonDescriptorFinal) 28 assert.Equal(t, "0003", addonDescriptorFinal.AddonVersion) 29 assert.Equal(t, "0002", addonDescriptorFinal.AddonSpsLevel) 30 assert.Equal(t, "0001", addonDescriptorFinal.AddonPatchLevel) 31 }) 32 t.Run("step error - in ReadAddonDescriptor", func(t *testing.T) { 33 config.AddonDescriptorFileName = "failing" 34 err := runAbapAddonAssemblyKitCheckPV(&config, nil, &utils, &cpe) 35 assert.Error(t, err, "Did expect error") 36 assert.Equal(t, err.Error(), "error in ReadAddonDescriptor") 37 }) 38 t.Run("step error - in validate", func(t *testing.T) { 39 config.AddonDescriptorFileName = "success" 40 bundle.SetBody("ErrorBody") 41 bundle.SetError("error during validation") 42 err := runAbapAddonAssemblyKitCheckPV(&config, nil, &utils, &cpe) 43 assert.Error(t, err, "Did expect error") 44 }) 45 } 46 47 func TestInitPV(t *testing.T) { 48 t.Run("test init", func(t *testing.T) { 49 conn := new(abapbuild.Connector) 50 conn.Client = &abaputils.ClientMock{} 51 prodvers := abaputils.AddonDescriptor{ 52 AddonProduct: "/DRNMSPC/PRD01", 53 AddonVersionYAML: "3.2.1", 54 } 55 56 var pv productVersion 57 pv.init(prodvers, *conn) 58 assert.Equal(t, "/DRNMSPC/PRD01", pv.Name) 59 assert.Equal(t, "3.2.1", pv.VersionYAML) 60 }) 61 } 62 63 func TestValidatePV(t *testing.T) { 64 conn := new(abapbuild.Connector) 65 t.Run("test validate - success", func(t *testing.T) { 66 conn.Client = &abaputils.ClientMock{ 67 Body: responseCheckPV, 68 } 69 pv := productVersion{ 70 Connector: *conn, 71 Name: "/DRNMSPC/PRD01", 72 VersionYAML: "3.2.1", 73 } 74 err := pv.validateAndResolveVersionFields() 75 assert.NoError(t, err) 76 assert.Equal(t, "0003", pv.Version) 77 assert.Equal(t, "0002", pv.SpsLevel) 78 assert.Equal(t, "0001", pv.PatchLevel) 79 }) 80 t.Run("test validate - with error", func(t *testing.T) { 81 conn.Client = &abaputils.ClientMock{ 82 Body: "ErrorBody", 83 Error: errors.New("Validation failed"), 84 } 85 pv := productVersion{ 86 Connector: *conn, 87 Name: "/DRNMSPC/PRD01", 88 VersionYAML: "3.2.1", 89 } 90 err := pv.validateAndResolveVersionFields() 91 assert.Error(t, err) 92 assert.Equal(t, "", pv.Version) 93 assert.Equal(t, "", pv.SpsLevel) 94 assert.Equal(t, "", pv.PatchLevel) 95 }) 96 } 97 98 func TestCopyFieldsPV(t *testing.T) { 99 t.Run("test copyFieldsToRepo", func(t *testing.T) { 100 prodVers := abaputils.AddonDescriptor{ 101 AddonProduct: "/DRNMSPC/PRD01", 102 AddonVersionYAML: "1.2.3", 103 } 104 var pv productVersion 105 pv.Version = "0003" 106 pv.SpsLevel = "0002" 107 pv.PatchLevel = "0001" 108 pv.transferVersionFields(&prodVers) 109 assert.Equal(t, "0003", prodVers.AddonVersion) 110 assert.Equal(t, "0002", prodVers.AddonSpsLevel) 111 assert.Equal(t, "0001", prodVers.AddonPatchLevel) 112 }) 113 } 114 115 var responseCheckPV = `{ 116 "d": { 117 "__metadata": { 118 "id": "https://W7Q.DMZWDF.SAP.CORP:443/odata/aas_ocs_package/ProductVersionSet(Name='%2FDRNMSPC%2FPRD01',Version='0001')", 119 "uri": "https://W7Q.DMZWDF.SAP.CORP:443/odata/aas_ocs_package/ProductVersionSet(Name='%2FDRNMSPC%2FPRD01',Version='0001')", 120 "type": "SSDA.AAS_ODATA_PACKAGE_SRV.ProductVersion" 121 }, 122 "Name": "/DRNMSPC/PRD01", 123 "Version": "0003", 124 "SpsLevel": "0002", 125 "PatchLevel": "0001", 126 "Vendor": "", 127 "VendorType": "" 128 } 129 }`