github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/pkg/abap/aakaas/targetVector_test.go (about)

     1  //go:build unit
     2  // +build unit
     3  
     4  package aakaas
     5  
     6  import (
     7  	"testing"
     8  	"time"
     9  
    10  	abapbuild "github.com/SAP/jenkins-library/pkg/abap/build"
    11  	"github.com/SAP/jenkins-library/pkg/abaputils"
    12  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func TestTargetVectorInitExisting(t *testing.T) {
    16  	t.Run("ID is set", func(t *testing.T) {
    17  		//arrange
    18  		id := "dummyID"
    19  		targetVector := new(TargetVector)
    20  		//act
    21  		targetVector.InitExisting(id)
    22  		//assert
    23  		assert.Equal(t, id, targetVector.ID)
    24  	})
    25  }
    26  
    27  func TestTargetVectorInitNew(t *testing.T) {
    28  	t.Run("Ensure values not initial", func(t *testing.T) {
    29  		//arrange
    30  		addonDescriptor := abaputils.AddonDescriptor{
    31  			AddonProduct:    "dummy",
    32  			AddonVersion:    "dummy",
    33  			AddonSpsLevel:   "dummy",
    34  			AddonPatchLevel: "dummy",
    35  			TargetVectorID:  "dummy",
    36  			Repositories: []abaputils.Repository{
    37  				{
    38  					Name:        "dummy",
    39  					Version:     "dummy",
    40  					SpLevel:     "dummy",
    41  					PatchLevel:  "dummy",
    42  					PackageName: "dummy",
    43  				},
    44  			},
    45  		}
    46  		targetVector := new(TargetVector)
    47  		//act
    48  		err := targetVector.InitNew(&addonDescriptor)
    49  		//assert
    50  		assert.NoError(t, err)
    51  		assert.Equal(t, "dummy", targetVector.ProductVersion)
    52  	})
    53  	t.Run("Fail if values initial", func(t *testing.T) {
    54  		//arrange
    55  		addonDescriptor := abaputils.AddonDescriptor{}
    56  		targetVector := new(TargetVector)
    57  		//act
    58  		err := targetVector.InitNew(&addonDescriptor)
    59  		//assert
    60  		assert.Error(t, err)
    61  	})
    62  }
    63  
    64  func TestTargetVectorGet(t *testing.T) {
    65  	//arrange global
    66  	targetVector := new(TargetVector)
    67  	conn := new(abapbuild.Connector)
    68  
    69  	t.Run("Ensure error if ID is initial", func(t *testing.T) {
    70  		//arrange
    71  		targetVector.ID = ""
    72  		//act
    73  		err := targetVector.GetTargetVector(conn)
    74  		//assert
    75  		assert.Error(t, err)
    76  	})
    77  	t.Run("Normal Get Test Success", func(t *testing.T) {
    78  		//arrange
    79  		targetVector.ID = "W7Q00207512600000353"
    80  		mc := abapbuild.NewMockClient()
    81  		mc.AddData(AAKaaSGetTVPublishTestSuccess)
    82  		conn.Client = &mc
    83  		//act
    84  		err := targetVector.GetTargetVector(conn)
    85  		//assert
    86  		assert.NoError(t, err)
    87  		assert.Equal(t, TargetVectorPublishStatusSuccess, TargetVectorStatus(targetVector.PublishStatus))
    88  		assert.Equal(t, TargetVectorStatusTest, TargetVectorStatus(targetVector.Status))
    89  	})
    90  	t.Run("Error Get", func(t *testing.T) {
    91  		//arrange
    92  		targetVector.ID = "W7Q00207512600000353"
    93  		mc := abapbuild.NewMockClient()
    94  		conn.Client = &mc
    95  		//act
    96  		err := targetVector.GetTargetVector(conn)
    97  		//assert
    98  		assert.Error(t, err)
    99  	})
   100  }
   101  
   102  func TestTargetVectorPollForStatus(t *testing.T) {
   103  	//arrange global
   104  	targetVector := new(TargetVector)
   105  	conn := new(abapbuild.Connector)
   106  	conn.MaxRuntime = time.Duration(1 * time.Second)
   107  	conn.PollingInterval = time.Duration(1 * time.Microsecond)
   108  
   109  	t.Run("Normal Poll", func(t *testing.T) {
   110  		//arrange
   111  		targetVector.ID = "W7Q00207512600000353"
   112  		mc := abapbuild.NewMockClient()
   113  		mc.AddData(AAKaaSGetTVPublishRunning)
   114  		mc.AddData(AAKaaSGetTVPublishTestSuccess)
   115  		conn.Client = &mc
   116  		//act
   117  		err := targetVector.PollForStatus(conn, TargetVectorStatusTest)
   118  		//assert
   119  		assert.NoError(t, err)
   120  	})
   121  }
   122  
   123  func TestTargetVectorCreate(t *testing.T) {
   124  	//arrange global
   125  	targetVector := new(TargetVector)
   126  	conn := new(abapbuild.Connector)
   127  
   128  	addonDescriptor := abaputils.AddonDescriptor{
   129  		AddonProduct:    "dummy",
   130  		AddonVersion:    "dummy",
   131  		AddonSpsLevel:   "dummy",
   132  		AddonPatchLevel: "dummy",
   133  		TargetVectorID:  "dummy",
   134  		Repositories: []abaputils.Repository{
   135  			{
   136  				Name:        "dummy",
   137  				Version:     "dummy",
   138  				SpLevel:     "dummy",
   139  				PatchLevel:  "dummy",
   140  				PackageName: "dummy",
   141  			},
   142  		},
   143  	}
   144  
   145  	t.Run("Create Success", func(t *testing.T) {
   146  		//arrange
   147  		mc := abapbuild.NewMockClient()
   148  		mc.AddData(AAKaaSHead)
   149  		mc.AddData(AAKaaSTVCreatePost)
   150  		errInitConn := conn.InitAAKaaS("", "dummyUser", "dummyPassword", &mc)
   151  		assert.NoError(t, errInitConn)
   152  
   153  		errInitTV := targetVector.InitNew(&addonDescriptor)
   154  		assert.NoError(t, errInitTV)
   155  		//act
   156  		err := targetVector.CreateTargetVector(conn)
   157  		//assert
   158  		assert.NoError(t, err)
   159  		assert.Equal(t, "W7Q00207512600000262", targetVector.ID)
   160  	})
   161  }
   162  
   163  func TestTargetVectorPublish(t *testing.T) {
   164  	//arrange global
   165  	targetVector := new(TargetVector)
   166  	conn := new(abapbuild.Connector)
   167  
   168  	t.Run("Publish Test", func(t *testing.T) {
   169  		//arrange
   170  		targetVector.ID = "W7Q00207512600000353"
   171  		mc := abapbuild.NewMockClient()
   172  		mc.AddData(AAKaaSHead)
   173  		mc.AddData(AAKaaSTVPublishTestPost)
   174  		errInitConn := conn.InitAAKaaS("", "dummyUser", "dummyPassword", &mc)
   175  		assert.NoError(t, errInitConn)
   176  
   177  		//act
   178  		err := targetVector.PublishTargetVector(conn, TargetVectorStatusTest)
   179  		//assert
   180  		assert.NoError(t, err)
   181  		assert.Equal(t, string(TargetVectorPublishStatusRunning), targetVector.PublishStatus)
   182  	})
   183  }