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 }