import_test.go 1.9 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
// Copyright (c) Huawei Technologies Co., Ltd. 2020. All rights reserved.
// isula-build licensed under the Mulan PSL v2.
// You can use this software according to the terms and conditions of the Mulan PSL v2.
// You may obtain a copy of Mulan PSL v2 at:
//     http://license.coscl.org.cn/MulanPSL2
// THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
// PURPOSE.
// See the Mulan PSL v2 for more details.
// Author: Zekun Liu
// Create: 2020-07-25
// Description: This is test file for daemon import.go

package daemon

import (
	"testing"

	"gotest.tools/assert"
)

func TestParseReference(t *testing.T) {
	type testcase struct {
		name      string
		reference string
		expect    string
		isErr     bool
		errStr    string
	}
	var testcases = []testcase{
		{
			name:      "repo only",
			reference: "busybox",
			expect:    "busybox",
		},
		{
			name:      "repo and tag",
			reference: "busybox:latest",
			expect:    "busybox:latest",
		},
		{
			name:      "ref with tag missing",
			reference: "busybox:",
			isErr:     true,
			errStr:    "invalid reference format",
		},
		{
			name:      "empty ref",
			reference: "",
			expect:    noneReference,
		},
		{
			name:      "ref with no tag",
			reference: "busybox",
			expect:    "busybox",
		},
		{
			name:      "ref with space",
			reference: "busybox: latest",
			isErr:     true,
			errStr:    "invalid reference format",
		},
	}

	for _, tc := range testcases {
		t.Run(tc.name, func(t *testing.T) {
			ref, err := parseReference(tc.reference)
			assert.Equal(t, err != nil, tc.isErr, tc.name)
			if err != nil {
				assert.ErrorContains(t, err, tc.errStr, tc.name)
			}
			if err == nil {
				assert.Equal(t, ref, tc.expect, tc.name)
			}
		})
	}
}