github.com/xgoffin/jenkins-library@v1.154.0/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  }`