61 lines
1.4 KiB
Go
61 lines
1.4 KiB
Go
package src
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func Test_extractSourceDest(t *testing.T) {
|
|
src, dst, err := extractSourceDest("owner/repo")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "owner/repo", src)
|
|
assert.Equal(t, "owner/repo", dst)
|
|
|
|
src, dst, err = extractSourceDest("src_owner/src_repo:dst_owner/dst_repo")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "src_owner/src_repo", src)
|
|
assert.Equal(t, "dst_owner/dst_repo", dst)
|
|
|
|
src, dst, err = extractSourceDest("src_owner/src_repo:dst_owner/dst_repo:bogus/bogus")
|
|
require.Error(t, err)
|
|
}
|
|
|
|
func Test_validateNwo(t *testing.T) {
|
|
nwo, err := validateNwo("owner/repo")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "owner/repo", nwo)
|
|
|
|
nwo, err = validateNwo(" owner/repo ")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "owner/repo", nwo)
|
|
|
|
// test shortest valid name
|
|
nwo, err = validateNwo("a/b")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "a/b", nwo)
|
|
|
|
// no slash separator
|
|
nwo, err = validateNwo("bogus")
|
|
require.Error(t, err)
|
|
|
|
// no owner
|
|
nwo, err = validateNwo("/bogus")
|
|
require.Error(t, err)
|
|
|
|
// no repo name
|
|
nwo, err = validateNwo("bogus/")
|
|
require.Error(t, err)
|
|
|
|
nwo, err = validateNwo("bogus whitespace/bogus")
|
|
require.Error(t, err)
|
|
|
|
nwo, err = validateNwo("bogus/bogus/bogus")
|
|
require.Error(t, err)
|
|
|
|
// A separate destination is only permitted for "repo names", not NWOs.
|
|
nwo, err = validateNwo("owner/repo:bogus/bogus")
|
|
require.Error(t, err)
|
|
}
|