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 }