github.com/cobalt77/jfrog-client-go@v0.14.5/artifactory/services/utils/parsebuildnamenumber_test.go (about)

     1  package utils
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/cobalt77/jfrog-client-go/utils/log"
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func init() {
    11  	log.SetLogger(log.NewLogger(log.INFO, nil))
    12  }
    13  
    14  func TestBuildParsingNoBuildNumber(t *testing.T) {
    15  	buildName, buildNumber, err := parseNameAndVersion("CLI-Build-Name", true)
    16  	assert.NoError(t, err)
    17  	expectedBuildName, expectedBuildNumber := "CLI-Build-Name", "LATEST"
    18  	if buildName != expectedBuildName {
    19  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected build name: 	" + expectedBuildName + " \nGot:     		 		" + buildName)
    20  	}
    21  	if buildNumber != expectedBuildNumber {
    22  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected build number: 	" + expectedBuildNumber + " \nGot:     			 	" + buildNumber)
    23  	}
    24  }
    25  
    26  func TestBuildParsingBuildNumberProvided(t *testing.T) {
    27  	buildName, buildNumber, err := parseNameAndVersion("CLI-Build-Name/11", true)
    28  	assert.NoError(t, err)
    29  	expectedBuildName, expectedBuildNumber := "CLI-Build-Name", "11"
    30  	if buildName != expectedBuildName {
    31  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected build name: 	" + expectedBuildName + " \nGot:     		 		" + buildName)
    32  	}
    33  	if buildNumber != expectedBuildNumber {
    34  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected build number: 	" + expectedBuildNumber + " \nGot:     			 	" + buildNumber)
    35  	}
    36  }
    37  
    38  func TestBuildParsingBuildNumberWithEscapeCharsInTheBuildName(t *testing.T) {
    39  	buildName, buildNumber, err := parseNameAndVersion("CLI-Build-Name\\/a\\/b\\/c/11", true)
    40  	assert.NoError(t, err)
    41  	expectedBuildName, expectedBuildNumber := "CLI-Build-Name/a/b/c", "11"
    42  	if buildName != expectedBuildName {
    43  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected build name: 	" + expectedBuildName + " \nGot:     		 		" + buildName)
    44  	}
    45  	if buildNumber != expectedBuildNumber {
    46  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected build number: 	" + expectedBuildNumber + " \nGot:     			 	" + buildNumber)
    47  	}
    48  }
    49  
    50  func TestBuildParsingBuildNumberWithEscapeCharsInTheBuildNumber(t *testing.T) {
    51  	buildName, buildNumber, err := parseNameAndVersion("CLI-Build-Name/1\\/2\\/3\\/4", true)
    52  	assert.NoError(t, err)
    53  	expectedBuildName, expectedBuildNumber := "CLI-Build-Name", "1/2/3/4"
    54  	if buildName != expectedBuildName {
    55  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected build name: 	" + expectedBuildName + " \nGot:     		 		" + buildName)
    56  	}
    57  	if buildNumber != expectedBuildNumber {
    58  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected build number: 	" + expectedBuildNumber + " \nGot:     			 	" + buildNumber)
    59  	}
    60  }
    61  
    62  func TestBuildParsingBuildNumberWithOnlyEscapeChars(t *testing.T) {
    63  	buildName, buildNumber, err := parseNameAndVersion("CLI-Build-Name\\/1\\/2\\/3\\/4", true)
    64  	assert.NoError(t, err)
    65  	expectedBuildName, expectedBuildNumber := "CLI-Build-Name/1/2/3/4", "LATEST"
    66  	if buildName != expectedBuildName {
    67  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected build name: 	" + expectedBuildName + " \nGot:     		 		" + buildName)
    68  	}
    69  	if buildNumber != expectedBuildNumber {
    70  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected build number: 	" + expectedBuildNumber + " \nGot:     			 	" + buildNumber)
    71  	}
    72  }
    73  
    74  func TestBundleParsingNoBundleVersion(t *testing.T) {
    75  	log.SetLogger(log.NewLogger(log.DEBUG, nil))
    76  	_, _, err := parseNameAndVersion("CLI-Bundle-Name", false)
    77  	assert.EqualError(t, err, "No '/' is found in the bundle")
    78  
    79  }
    80  
    81  func TestBundleParsingBundleVersionProvided(t *testing.T) {
    82  	bundleName, bundleVersion, err := parseNameAndVersion("CLI-Bundle-Name/11", false)
    83  	assert.NoError(t, err)
    84  	expectedBundleName, expectedBundleVersion := "CLI-Bundle-Name", "11"
    85  	if bundleName != expectedBundleName {
    86  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected bundle name: 	" + expectedBundleName + " \nGot:     		 		" + bundleName)
    87  	}
    88  	if bundleVersion != expectedBundleVersion {
    89  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected bundle version: 	" + expectedBundleVersion + " \nGot:     			 	" + bundleVersion)
    90  	}
    91  }
    92  
    93  func TestBundleParsingBundleVersionWithEscapeCharsInTheBundleName(t *testing.T) {
    94  	bundleName, bundleVersion, err := parseNameAndVersion("CLI-Bundle-Name\\/a\\/b\\/c/11", false)
    95  	assert.NoError(t, err)
    96  	expectedBundleName, expectedBundleVersion := "CLI-Bundle-Name/a/b/c", "11"
    97  	if bundleName != expectedBundleName {
    98  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected bundle name: 	" + expectedBundleName + " \nGot:     		 		" + bundleName)
    99  	}
   100  	if bundleVersion != expectedBundleVersion {
   101  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected bundle version: 	" + expectedBundleVersion + " \nGot:     			 	" + bundleVersion)
   102  	}
   103  }
   104  
   105  func TestBundleParsingBundleVersionWithEscapeCharsInTheBundleVersion(t *testing.T) {
   106  	bundleName, bundleVersion, err := parseNameAndVersion("CLI-Bundle-Name/1\\/2\\/3\\/4", false)
   107  	assert.NoError(t, err)
   108  	expectedBundleName, expectedBundleVersion := "CLI-Bundle-Name", "1/2/3/4"
   109  	if bundleName != expectedBundleName {
   110  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected bundle name: 	" + expectedBundleName + " \nGot:     		 		" + bundleName)
   111  	}
   112  	if bundleVersion != expectedBundleVersion {
   113  		t.Error("Unexpected result from 'parseNameAndVersion' method. \nExpected bundle version: 	" + expectedBundleVersion + " \nGot:     			 	" + bundleVersion)
   114  	}
   115  }
   116  
   117  func TestBundleParsingBundleVersionWithOnlyEscapeChars(t *testing.T) {
   118  	_, _, err := parseNameAndVersion("CLI-Bundle-Name\\/1\\/2\\/3\\/4", false)
   119  	assert.EqualError(t, err, "No delimiter char (/) without escaping char was found in the bundle")
   120  }