github.com/SAP/jenkins-library@v1.362.0/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  }