github.com/xgoffin/jenkins-library@v1.154.0/cmd/abapAddonAssemblyKitCreateTargetVector_test.go (about)

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