You've already forked sap-jenkins-library
mirror of
https://github.com/SAP/jenkins-library.git
synced 2025-09-16 09:26:22 +02:00
Fix Wildcard Maxx (#5417)
This commit is contained in:
@@ -59,6 +59,10 @@ func (v *versionable) resolveWildCards(statusFilter string) error {
|
|||||||
if err := v.resolveMax(statusFilter); err != nil {
|
if err := v.resolveMax(statusFilter); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
var err error
|
||||||
|
if v.Version, err = v.getDottedVersionString(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,9 +85,6 @@ func (v *versionable) resolveNext(statusFilter string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if v.Version, err = v.getDottedVersionString(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
return errors.New("The dotted-version-string must contain only one wildcard " + wildCardNext)
|
return errors.New("The dotted-version-string must contain only one wildcard " + wildCardNext)
|
||||||
}
|
}
|
||||||
@@ -107,6 +108,7 @@ func (v *versionable) resolveMax(statusFilter string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -45,7 +45,7 @@ func TestCvResolve(t *testing.T) {
|
|||||||
mc.AddData(testDataAakaasCVGetReleaseExisting)
|
mc.AddData(testDataAakaasCVGetReleaseExisting)
|
||||||
err := vers.constructVersionable("DummyComp", wildCardNext+".0.0", *conn, cvQueryURL)
|
err := vers.constructVersionable("DummyComp", wildCardNext+".0.0", *conn, cvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveNext(statusFilterCV)
|
err = vers.resolveWildCards(statusFilterCV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "2", vers.TechRelease)
|
assert.Equal(t, "2", vers.TechRelease)
|
||||||
assert.Equal(t, "0000", vers.TechSpLevel)
|
assert.Equal(t, "0000", vers.TechSpLevel)
|
||||||
@@ -56,7 +56,7 @@ func TestCvResolve(t *testing.T) {
|
|||||||
mc.AddData(testDataAakaasCVGetReleaseNonExisting)
|
mc.AddData(testDataAakaasCVGetReleaseNonExisting)
|
||||||
err := vers.constructVersionable("DummyComp", wildCardNext+".0.0", *conn, cvQueryURL)
|
err := vers.constructVersionable("DummyComp", wildCardNext+".0.0", *conn, cvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveNext(statusFilterCV)
|
err = vers.resolveWildCards(statusFilterCV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "1", vers.TechRelease)
|
assert.Equal(t, "1", vers.TechRelease)
|
||||||
assert.Equal(t, "0000", vers.TechSpLevel)
|
assert.Equal(t, "0000", vers.TechSpLevel)
|
||||||
@@ -67,7 +67,7 @@ func TestCvResolve(t *testing.T) {
|
|||||||
mc.AddData(testDataAakaasCVGetSpLevelExisting)
|
mc.AddData(testDataAakaasCVGetSpLevelExisting)
|
||||||
err := vers.constructVersionable("DummyComp", "1."+wildCardNext+".0", *conn, cvQueryURL)
|
err := vers.constructVersionable("DummyComp", "1."+wildCardNext+".0", *conn, cvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveNext(statusFilterCV)
|
err = vers.resolveWildCards(statusFilterCV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "1", vers.TechRelease)
|
assert.Equal(t, "1", vers.TechRelease)
|
||||||
assert.Equal(t, "0008", vers.TechSpLevel)
|
assert.Equal(t, "0008", vers.TechSpLevel)
|
||||||
@@ -79,7 +79,7 @@ func TestCvResolve(t *testing.T) {
|
|||||||
mc.AddData(testDataAakaasCVGetSpLevelNonExisting)
|
mc.AddData(testDataAakaasCVGetSpLevelNonExisting)
|
||||||
err := vers.constructVersionable("DummyComp", "1."+wildCardNext+".0", *conn, cvQueryURL)
|
err := vers.constructVersionable("DummyComp", "1."+wildCardNext+".0", *conn, cvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveNext(statusFilterCV)
|
err = vers.resolveWildCards(statusFilterCV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "1", vers.TechRelease)
|
assert.Equal(t, "1", vers.TechRelease)
|
||||||
assert.Equal(t, "0001", vers.TechSpLevel)
|
assert.Equal(t, "0001", vers.TechSpLevel)
|
||||||
@@ -90,7 +90,7 @@ func TestCvResolve(t *testing.T) {
|
|||||||
mc.AddData(testDataAakaasCVGetPatchLevelExisting)
|
mc.AddData(testDataAakaasCVGetPatchLevelExisting)
|
||||||
err := vers.constructVersionable("DummyComp", "1.3."+wildCardNext, *conn, cvQueryURL)
|
err := vers.constructVersionable("DummyComp", "1.3."+wildCardNext, *conn, cvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveNext(statusFilterCV)
|
err = vers.resolveWildCards(statusFilterCV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "1", vers.TechRelease)
|
assert.Equal(t, "1", vers.TechRelease)
|
||||||
assert.Equal(t, "0003", vers.TechSpLevel)
|
assert.Equal(t, "0003", vers.TechSpLevel)
|
||||||
@@ -102,7 +102,7 @@ func TestCvResolve(t *testing.T) {
|
|||||||
mc.AddData(testDataAakaasCVGetPatchLevelNonExisting)
|
mc.AddData(testDataAakaasCVGetPatchLevelNonExisting)
|
||||||
err := vers.constructVersionable("DummyComp", "1.3."+wildCardNext, *conn, cvQueryURL)
|
err := vers.constructVersionable("DummyComp", "1.3."+wildCardNext, *conn, cvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveNext(statusFilterCV)
|
err = vers.resolveWildCards(statusFilterCV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "1", vers.TechRelease)
|
assert.Equal(t, "1", vers.TechRelease)
|
||||||
assert.Equal(t, "0003", vers.TechSpLevel)
|
assert.Equal(t, "0003", vers.TechSpLevel)
|
||||||
@@ -114,7 +114,7 @@ func TestCvResolve(t *testing.T) {
|
|||||||
mc.AddData(testDataAakaasPVGetReleaseExisting)
|
mc.AddData(testDataAakaasPVGetReleaseExisting)
|
||||||
err := vers.constructVersionable("DummyProd", wildCardNext+".0.0", *conn, pvQueryURL)
|
err := vers.constructVersionable("DummyProd", wildCardNext+".0.0", *conn, pvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveNext(statusFilterPV)
|
err = vers.resolveWildCards(statusFilterPV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "2", vers.TechRelease)
|
assert.Equal(t, "2", vers.TechRelease)
|
||||||
assert.Equal(t, "0000", vers.TechSpLevel)
|
assert.Equal(t, "0000", vers.TechSpLevel)
|
||||||
@@ -126,7 +126,7 @@ func TestCvResolve(t *testing.T) {
|
|||||||
mc.AddData(testDataAakaasPVGetReleaseNonExisting)
|
mc.AddData(testDataAakaasPVGetReleaseNonExisting)
|
||||||
err := vers.constructVersionable("DummyProd", wildCardNext+".0.0", *conn, pvQueryURL)
|
err := vers.constructVersionable("DummyProd", wildCardNext+".0.0", *conn, pvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveNext(statusFilterPV)
|
err = vers.resolveWildCards(statusFilterPV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "1", vers.TechRelease)
|
assert.Equal(t, "1", vers.TechRelease)
|
||||||
assert.Equal(t, "0000", vers.TechSpLevel)
|
assert.Equal(t, "0000", vers.TechSpLevel)
|
||||||
@@ -138,87 +138,95 @@ func TestCvResolve(t *testing.T) {
|
|||||||
mc.AddData(testDataAakaasCVGetReleaseExisting)
|
mc.AddData(testDataAakaasCVGetReleaseExisting)
|
||||||
err := vers.constructVersionable("DummyComp", wildCardMax+".0.0", *conn, cvQueryURL)
|
err := vers.constructVersionable("DummyComp", wildCardMax+".0.0", *conn, cvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveMax(statusFilterCV)
|
err = vers.resolveWildCards(statusFilterCV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "1", vers.TechRelease)
|
assert.Equal(t, "1", vers.TechRelease)
|
||||||
assert.Equal(t, "0000", vers.TechSpLevel)
|
assert.Equal(t, "0000", vers.TechSpLevel)
|
||||||
assert.Equal(t, "0000", vers.TechPatchLevel)
|
assert.Equal(t, "0000", vers.TechPatchLevel)
|
||||||
|
assert.Equal(t, "1.0.0", vers.Version)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Component Version MAX Release non existing", func(t *testing.T) {
|
t.Run("Component Version MAX Release non existing", func(t *testing.T) {
|
||||||
mc.AddData(testDataAakaasCVGetReleaseNonExisting)
|
mc.AddData(testDataAakaasCVGetReleaseNonExisting)
|
||||||
err := vers.constructVersionable("DummyComp", wildCardMax+".0.0", *conn, cvQueryURL)
|
err := vers.constructVersionable("DummyComp", wildCardMax+".0.0", *conn, cvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveMax(statusFilterCV)
|
err = vers.resolveWildCards(statusFilterCV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "0", vers.TechRelease)
|
assert.Equal(t, "0", vers.TechRelease)
|
||||||
assert.Equal(t, "0000", vers.TechSpLevel)
|
assert.Equal(t, "0000", vers.TechSpLevel)
|
||||||
assert.Equal(t, "0000", vers.TechPatchLevel)
|
assert.Equal(t, "0000", vers.TechPatchLevel)
|
||||||
|
assert.Equal(t, "0.0.0", vers.Version)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Component Version MAX SP Level existing", func(t *testing.T) {
|
t.Run("Component Version MAX SP Level existing", func(t *testing.T) {
|
||||||
mc.AddData(testDataAakaasCVGetSpLevelExisting)
|
mc.AddData(testDataAakaasCVGetSpLevelExisting)
|
||||||
err := vers.constructVersionable("DummyComp", "1."+wildCardMax+".0", *conn, cvQueryURL)
|
err := vers.constructVersionable("DummyComp", "1."+wildCardMax+".0", *conn, cvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveMax(statusFilterCV)
|
err = vers.resolveWildCards(statusFilterCV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "1", vers.TechRelease)
|
assert.Equal(t, "1", vers.TechRelease)
|
||||||
assert.Equal(t, "0007", vers.TechSpLevel)
|
assert.Equal(t, "0007", vers.TechSpLevel)
|
||||||
assert.Equal(t, "0000", vers.TechPatchLevel)
|
assert.Equal(t, "0000", vers.TechPatchLevel)
|
||||||
|
assert.Equal(t, "1.7.0", vers.Version)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Component Version MAX SP Level non existing", func(t *testing.T) {
|
t.Run("Component Version MAX SP Level non existing", func(t *testing.T) {
|
||||||
mc.AddData(testDataAakaasCVGetSpLevelNonExisting)
|
mc.AddData(testDataAakaasCVGetSpLevelNonExisting)
|
||||||
err := vers.constructVersionable("DummyComp", "1."+wildCardMax+".0", *conn, cvQueryURL)
|
err := vers.constructVersionable("DummyComp", "1."+wildCardMax+".0", *conn, cvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveMax(statusFilterCV)
|
err = vers.resolveWildCards(statusFilterCV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "1", vers.TechRelease)
|
assert.Equal(t, "1", vers.TechRelease)
|
||||||
assert.Equal(t, "0000", vers.TechSpLevel)
|
assert.Equal(t, "0000", vers.TechSpLevel)
|
||||||
assert.Equal(t, "0000", vers.TechPatchLevel)
|
assert.Equal(t, "0000", vers.TechPatchLevel)
|
||||||
|
assert.Equal(t, "1.0.0", vers.Version)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Component Version MAX Patch Level existing", func(t *testing.T) {
|
t.Run("Component Version MAX Patch Level existing", func(t *testing.T) {
|
||||||
mc.AddData(testDataAakaasCVGetPatchLevelExisting)
|
mc.AddData(testDataAakaasCVGetPatchLevelExisting)
|
||||||
err := vers.constructVersionable("DummyComp", "1.3."+wildCardMax, *conn, cvQueryURL)
|
err := vers.constructVersionable("DummyComp", "1.3."+wildCardMax, *conn, cvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveMax(statusFilterCV)
|
err = vers.resolveWildCards(statusFilterCV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "1", vers.TechRelease)
|
assert.Equal(t, "1", vers.TechRelease)
|
||||||
assert.Equal(t, "0003", vers.TechSpLevel)
|
assert.Equal(t, "0003", vers.TechSpLevel)
|
||||||
assert.Equal(t, "0046", vers.TechPatchLevel)
|
assert.Equal(t, "0046", vers.TechPatchLevel)
|
||||||
|
assert.Equal(t, "1.3.46", vers.Version)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Component Version MAX Patch Level non existing", func(t *testing.T) {
|
t.Run("Component Version MAX Patch Level non existing", func(t *testing.T) {
|
||||||
mc.AddData(testDataAakaasCVGetPatchLevelNonExisting)
|
mc.AddData(testDataAakaasCVGetPatchLevelNonExisting)
|
||||||
err := vers.constructVersionable("DummyComp", "1.3."+wildCardMax, *conn, cvQueryURL)
|
err := vers.constructVersionable("DummyComp", "1.3."+wildCardMax, *conn, cvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveMax(statusFilterCV)
|
err = vers.resolveWildCards(statusFilterCV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "1", vers.TechRelease)
|
assert.Equal(t, "1", vers.TechRelease)
|
||||||
assert.Equal(t, "0003", vers.TechSpLevel)
|
assert.Equal(t, "0003", vers.TechSpLevel)
|
||||||
assert.Equal(t, "0000", vers.TechPatchLevel)
|
assert.Equal(t, "0000", vers.TechPatchLevel)
|
||||||
|
assert.Equal(t, "1.3.0", vers.Version)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Product Version MAX Release existing", func(t *testing.T) {
|
t.Run("Product Version MAX Release existing", func(t *testing.T) {
|
||||||
mc.AddData(testDataAakaasPVGetReleaseExisting)
|
mc.AddData(testDataAakaasPVGetReleaseExisting)
|
||||||
err := vers.constructVersionable("DummyProd", wildCardMax+".0.0", *conn, pvQueryURL)
|
err := vers.constructVersionable("DummyProd", wildCardMax+".0.0", *conn, pvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveMax(statusFilterPV)
|
err = vers.resolveWildCards(statusFilterPV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "1", vers.TechRelease)
|
assert.Equal(t, "1", vers.TechRelease)
|
||||||
assert.Equal(t, "0000", vers.TechSpLevel)
|
assert.Equal(t, "0000", vers.TechSpLevel)
|
||||||
assert.Equal(t, "0000", vers.TechPatchLevel)
|
assert.Equal(t, "0000", vers.TechPatchLevel)
|
||||||
|
assert.Equal(t, "1.0.0", vers.Version)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Product Version MAX Release non existing", func(t *testing.T) {
|
t.Run("Product Version MAX Release non existing", func(t *testing.T) {
|
||||||
mc.AddData(testDataAakaasPVGetReleaseNonExisting)
|
mc.AddData(testDataAakaasPVGetReleaseNonExisting)
|
||||||
err := vers.constructVersionable("DummyProd", wildCardMax+".0.0", *conn, pvQueryURL)
|
err := vers.constructVersionable("DummyProd", wildCardMax+".0.0", *conn, pvQueryURL)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
err = vers.resolveMax(statusFilterPV)
|
err = vers.resolveWildCards(statusFilterPV)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, "0", vers.TechRelease)
|
assert.Equal(t, "0", vers.TechRelease)
|
||||||
assert.Equal(t, "0000", vers.TechSpLevel)
|
assert.Equal(t, "0000", vers.TechSpLevel)
|
||||||
assert.Equal(t, "0000", vers.TechPatchLevel)
|
assert.Equal(t, "0000", vers.TechPatchLevel)
|
||||||
|
assert.Equal(t, "0.0.0", vers.Version)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user