github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/pkg/versioning/descriptorUtils_test.go (about) 1 //go:build unit 2 // +build unit 3 4 package versioning 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 type mavenMock struct { 13 groupID string 14 artifactID string 15 version string 16 packaging string 17 } 18 19 func (m *mavenMock) VersioningScheme() string { 20 return "maven" 21 } 22 func (m *mavenMock) GetVersion() (string, error) { 23 return m.version, nil 24 } 25 func (m *mavenMock) SetVersion(v string) error { 26 m.version = v 27 return nil 28 } 29 func (m *mavenMock) GetCoordinates() (Coordinates, error) { 30 return Coordinates{GroupID: m.groupID, ArtifactID: m.artifactID, Version: m.version, Packaging: m.packaging}, nil 31 } 32 33 type pipMock struct { 34 artifactID string 35 version string 36 } 37 38 func (p *pipMock) VersioningScheme() string { 39 return "pep440" 40 } 41 func (p *pipMock) GetVersion() (string, error) { 42 return p.version, nil 43 } 44 func (p *pipMock) SetVersion(v string) error { 45 p.version = v 46 return nil 47 } 48 func (p *pipMock) GetCoordinates() (Coordinates, error) { 49 return Coordinates{ArtifactID: p.artifactID, Version: p.version}, nil 50 } 51 52 func TestDetermineProjectCoordinatesWithCustomVersion(t *testing.T) { 53 nameTemplate := `{{list .GroupID .ArtifactID | join "-" | trimAll "-"}}` 54 55 t.Run("default", func(t *testing.T) { 56 gav, _ := (&mavenMock{groupID: "com.test.pkg", artifactID: "analyzer", version: "1.2.3"}).GetCoordinates() 57 name, version := DetermineProjectCoordinatesWithCustomVersion(nameTemplate, "major", "", gav) 58 assert.Equal(t, "com.test.pkg-analyzer", name, "Expected different project name") 59 assert.Equal(t, "1", version, "Expected different project version") 60 }) 61 62 t.Run("custom", func(t *testing.T) { 63 gav, _ := (&mavenMock{groupID: "com.test.pkg", artifactID: "analyzer", version: "1.2.3"}).GetCoordinates() 64 _, version := DetermineProjectCoordinatesWithCustomVersion(nameTemplate, "major", "customVersion", gav) 65 assert.Equal(t, "customVersion", version, "Expected different project version") 66 }) 67 } 68 69 func TestDetermineProjectCoordinates(t *testing.T) { 70 nameTemplate := `{{list .GroupID .ArtifactID | join "-" | trimAll "-"}}` 71 72 t.Run("maven", func(t *testing.T) { 73 gav, _ := (&mavenMock{groupID: "com.test.pkg", artifactID: "analyzer", version: "1.2.3"}).GetCoordinates() 74 name, version := DetermineProjectCoordinates(nameTemplate, "major", gav) 75 assert.Equal(t, "com.test.pkg-analyzer", name, "Expected different project name") 76 assert.Equal(t, "1", version, "Expected different project version") 77 }) 78 79 t.Run("maven major-minor", func(t *testing.T) { 80 gav, _ := (&mavenMock{groupID: "com.test.pkg", artifactID: "analyzer", version: "1.2.3"}).GetCoordinates() 81 name, version := DetermineProjectCoordinates(nameTemplate, "major-minor", gav) 82 assert.Equal(t, "com.test.pkg-analyzer", name, "Expected different project name") 83 assert.Equal(t, "1.2", version, "Expected different project version") 84 }) 85 86 t.Run("maven full", func(t *testing.T) { 87 gav, _ := (&mavenMock{groupID: "com.test.pkg", artifactID: "analyzer", version: "1.2.3-7864387648746"}).GetCoordinates() 88 name, version := DetermineProjectCoordinates(nameTemplate, "full", gav) 89 assert.Equal(t, "com.test.pkg-analyzer", name, "Expected different project name") 90 assert.Equal(t, "1.2.3-7864387648746", version, "Expected different project version") 91 }) 92 93 t.Run("maven semantic", func(t *testing.T) { 94 gav, _ := (&mavenMock{groupID: "com.test.pkg", artifactID: "analyzer", version: "1.2.3-7864387648746"}).GetCoordinates() 95 name, version := DetermineProjectCoordinates(nameTemplate, "semantic", gav) 96 assert.Equal(t, "com.test.pkg-analyzer", name, "Expected different project name") 97 assert.Equal(t, "1.2.3", version, "Expected different project version") 98 }) 99 100 t.Run("maven empty", func(t *testing.T) { 101 gav, _ := (&mavenMock{groupID: "com.test.pkg", artifactID: "analyzer", version: "0-SNAPSHOT"}).GetCoordinates() 102 name, version := DetermineProjectCoordinates(nameTemplate, "snapshot", gav) 103 assert.Equal(t, "com.test.pkg-analyzer", name, "Expected different project name") 104 assert.Equal(t, "", version, "Expected different project version") 105 }) 106 107 t.Run("python", func(t *testing.T) { 108 gav, _ := (&pipMock{artifactID: "python-test", version: "2.2.3"}).GetCoordinates() 109 name, version := DetermineProjectCoordinates(nameTemplate, "major", gav) 110 assert.Equal(t, "python-test", name, "Expected different project name") 111 assert.Equal(t, "2", version, "Expected different project version") 112 }) 113 114 t.Run("python semantic", func(t *testing.T) { 115 gav, _ := (&pipMock{artifactID: "python-test", version: "2.2.3.20200101"}).GetCoordinates() 116 name, version := DetermineProjectCoordinates(nameTemplate, "semantic", gav) 117 assert.Equal(t, "python-test", name, "Expected different project name") 118 assert.Equal(t, "2.2.3", version, "Expected different project version") 119 }) 120 }