github.com/SAP/jenkins-library@v1.362.0/cmd/abapAddonAssemblyKitCreateTargetVector_test.go (about)

     1  //go:build unit
     2  // +build unit
     3  
     4  package cmd
     5  
     6  import (
     7  	"encoding/json"
     8  	"testing"
     9  
    10  	"github.com/SAP/jenkins-library/pkg/abaputils"
    11  	"github.com/pkg/errors"
    12  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func TestCreateTargetVectorStep(t *testing.T) {
    16  	//setup
    17  	config := abapAddonAssemblyKitCreateTargetVectorOptions{
    18  		Username: "dummy",
    19  		Password: "dummy",
    20  	}
    21  	addonDescriptor := abaputils.AddonDescriptor{
    22  		AddonProduct:    "dummy",
    23  		AddonVersion:    "dummy",
    24  		AddonSpsLevel:   "dummy",
    25  		AddonPatchLevel: "dummy",
    26  		TargetVectorID:  "dummy",
    27  		Repositories: []abaputils.Repository{
    28  			{
    29  				Name:        "dummy",
    30  				Version:     "dummy",
    31  				SpLevel:     "dummy",
    32  				PatchLevel:  "dummy",
    33  				PackageName: "dummy",
    34  			},
    35  		},
    36  	}
    37  	adoDesc, _ := json.Marshal(addonDescriptor)
    38  	config.AddonDescriptor = string(adoDesc)
    39  
    40  	client := &abaputils.ClientMock{
    41  		Body: responseCreateTargetVector,
    42  	}
    43  
    44  	cpe := abapAddonAssemblyKitCreateTargetVectorCommonPipelineEnvironment{}
    45  
    46  	t.Run("step success test", func(t *testing.T) {
    47  		//act
    48  		err := runAbapAddonAssemblyKitCreateTargetVector(&config, nil, client, &cpe)
    49  		//assert
    50  		assert.NoError(t, err, "Did not expect error")
    51  
    52  		resultAddonDescriptor := abaputils.AddonDescriptor{}
    53  		err = json.Unmarshal([]byte(cpe.abap.addonDescriptor), &resultAddonDescriptor)
    54  		assert.NoError(t, err)
    55  		assert.Equal(t, "W7Q00207512600000262", resultAddonDescriptor.TargetVectorID)
    56  	})
    57  
    58  	t.Run("step success test", func(t *testing.T) {
    59  		//arrange
    60  		client := &abaputils.ClientMock{
    61  			Body:  responseCreateTargetVector,
    62  			Error: errors.New("dummy"),
    63  		}
    64  		//act
    65  		err := runAbapAddonAssemblyKitCreateTargetVector(&config, nil, client, &cpe)
    66  		//assert
    67  		assert.Error(t, err, "Must end with error")
    68  	})
    69  
    70  	t.Run("step error init product", func(t *testing.T) {
    71  		//arrange
    72  		addonDescriptor := abaputils.AddonDescriptor{
    73  			Repositories: []abaputils.Repository{
    74  				{},
    75  			},
    76  		}
    77  		adoDesc, _ := json.Marshal(addonDescriptor)
    78  		config.AddonDescriptor = string(adoDesc)
    79  		//act
    80  		err := runAbapAddonAssemblyKitCreateTargetVector(&config, nil, client, &cpe)
    81  		//assert
    82  		assert.Error(t, err, "Must end with error")
    83  	})
    84  
    85  	t.Run("step error init component", func(t *testing.T) {
    86  		//arrange
    87  		addonDescriptor := abaputils.AddonDescriptor{
    88  			AddonProduct:    "dummy",
    89  			AddonVersion:    "dummy",
    90  			AddonSpsLevel:   "dummy",
    91  			AddonPatchLevel: "dummy",
    92  			TargetVectorID:  "dummy",
    93  			Repositories: []abaputils.Repository{
    94  				{
    95  					Name:        "dummy",
    96  					Version:     "dummy",
    97  					SpLevel:     "dummy",
    98  					PatchLevel:  "dummy",
    99  					PackageName: "dummy",
   100  				},
   101  				{},
   102  			},
   103  		}
   104  		adoDesc, _ := json.Marshal(addonDescriptor)
   105  		config.AddonDescriptor = string(adoDesc)
   106  		//act
   107  		err := runAbapAddonAssemblyKitCreateTargetVector(&config, nil, client, &cpe)
   108  		//assert
   109  		assert.Error(t, err, "Must end with error")
   110  	})
   111  
   112  }
   113  
   114  var responseCreateTargetVector = `{
   115      "d": {
   116          "__metadata": {
   117              "id": "https://W7Q.DMZWDF.SAP.CORP:443/odata/aas_ocs_package/TargetVectorSet('W7Q00207512600000262')",
   118              "uri": "https://W7Q.DMZWDF.SAP.CORP:443/odata/aas_ocs_package/TargetVectorSet('W7Q00207512600000262')",
   119              "type": "SSDA.AAS_ODATA_PACKAGE_SRV.TargetVector"
   120          },
   121          "Id": "W7Q00207512600000262",
   122          "Vendor": "0000203069",
   123          "ProductName": "/DRNMSPC/PRD01",
   124          "ProductVersion": "0001",
   125          "SpsLevel": "0000",
   126          "PatchLevel": "0000",
   127          "Status": "G",
   128          "Content": {
   129              "results": [
   130                  {
   131                      "__metadata": {
   132                          "id": "https://W7Q.DMZWDF.SAP.CORP:443/odata/aas_ocs_package/TargetVectorContentSet(Id='W7Q00207512600000262',ScName='%2FDRNMSPC%2FCOMP01')",
   133                          "uri": "https://W7Q.DMZWDF.SAP.CORP:443/odata/aas_ocs_package/TargetVectorContentSet(Id='W7Q00207512600000262',ScName='%2FDRNMSPC%2FCOMP01')",
   134                          "type": "SSDA.AAS_ODATA_PACKAGE_SRV.TargetVectorContent"
   135                      },
   136                      "Id": "W7Q00207512600000262",
   137                      "ScName": "/DRNMSPC/COMP01",
   138                      "ScVersion": "0001",
   139                      "DeliveryPackage": "SAPK-001AAINDRNMSPC",
   140                      "SpLevel": "0000",
   141                      "PatchLevel": "0000",
   142                      "Header": {
   143                          "__deferred": {
   144                              "uri": "https://W7Q.DMZWDF.SAP.CORP:443/odata/aas_ocs_package/TargetVectorContentSet(Id='W7Q00207512600000262',ScName='%2FDRNMSPC%2FCOMP01')/Header"
   145                          }
   146                      }
   147                  }
   148              ]
   149          }
   150      }
   151  }`