update unit test

Signed-off-by: zhuxiaoyang <sunzhu@yunify.com>
This commit is contained in:
zhuxiaoyang
2020-01-15 16:40:35 +08:00
parent 444e24bd48
commit 1e68170f89

View File

@@ -5,66 +5,55 @@ import (
)
func TestParseImage(t *testing.T) {
type image struct {
ImageName string
ExDomain string
ExTag string
ExPath string
type testImage struct {
inputImageName string
ExImage Image
}
testImages := []image{
{ImageName: "dockerhub.qingcloud.com/kubesphere/test:v1", ExDomain: "dockerhub.qingcloud.com", ExTag: "v1", ExPath: "kubesphere/test"},
{ImageName: "harbor.devops.kubesphere.local:30280/library/tomcat:latest", ExDomain: "harbor.devops.kubesphere.local:30280", ExTag: "latest", ExPath: "library/tomcat"},
{ImageName: "zhuxiaoyang/nginx:v1", ExDomain: "docker.io", ExTag: "v1", ExPath: "zhuxiaoyang/nginx"},
{ImageName: "nginx", ExDomain: "docker.io", ExTag: "latest", ExPath: "library/nginx"},
{ImageName: "nginx:latest", ExDomain: "docker.io", ExTag: "latest", ExPath: "library/nginx"},
{ImageName: "kubesphere/ks-account:v2.1.0", ExDomain: "docker.io", ExTag: "v2.1.0", ExPath: "kubesphere/ks-account"},
testImages := []testImage{
{inputImageName: "dockerhub.qingcloud.com/kubesphere/test:v1", ExImage: Image{Domain: "dockerhub.qingcloud.com", Tag: "v1", Path: "kubesphere/test"}},
{inputImageName: "harbor.devops.kubesphere.local:30280/library/tomcat:latest", ExImage: Image{Domain: "harbor.devops.kubesphere.local:30280", Tag: "latest", Path: "library/tomcat"}},
{inputImageName: "zhuxiaoyang/nginx:v1", ExImage: Image{Domain: "docker.io", Tag: "v1", Path: "zhuxiaoyang/nginx"}},
{inputImageName: "nginx", ExImage: Image{Domain: "docker.io", Tag: "latest", Path: "library/nginx"}},
{inputImageName: "nginx:latest", ExImage: Image{Domain: "docker.io", Tag: "latest", Path: "library/nginx"}},
{inputImageName: "kubesphere/ks-account:v2.1.0", ExImage: Image{Domain: "docker.io", Tag: "v2.1.0", Path: "kubesphere/ks-account"}},
{inputImageName: "http://docker.io/nginx:latest", ExImage: Image{}},
{inputImageName: "https://harbor.devops.kubesphere.local:30280/library/tomcat:latest", ExImage: Image{}},
{inputImageName: "docker.io/nginx:latest:latest", ExImage: Image{}},
{inputImageName: "nginx:8000:latest", ExImage: Image{}},
}
for _, image := range testImages {
res, err := ParseImage(image.ImageName)
res, err := ParseImage(image.inputImageName)
if err != nil {
t.Fatalf("Get err %s", err)
if res != image.ExImage {
t.Fatalf("Get err %s", err)
}
}
if res.Domain != image.ExImage.Domain {
t.Fatalf("Doamin got %v, expected %v", res.Domain, image.ExImage.Domain)
}
if res.Domain != image.ExDomain {
t.Fatalf("Doamin got %v, expected %v", res.Domain, image.ExDomain)
if res.Tag != image.ExImage.Tag {
t.Fatalf("Tag got %v, expected %v", res.Tag, image.ExImage.Tag)
}
if res.Tag != image.ExTag {
t.Fatalf("Tag got %v, expected %v", res.Tag, image.ExTag)
if res.Path != image.ExImage.Path {
t.Fatalf("Path got %v, expected %v", res.Path, image.ExImage.Path)
}
if res.Path != image.ExPath {
t.Fatalf("Path got %v, expected %v", res.Path, image.ExPath)
}
}
invalidImage := []image{
{ImageName: "http://docker.io/nginx:latest"},
{ImageName: "https://harbor.devops.kubesphere.local:30280/library/tomcat:latest"},
{ImageName: "docker.io/nginx:latest:latest"},
{ImageName: "nginx:8000:latest"},
}
for _, image := range invalidImage {
_, err := ParseImage(image.ImageName)
if err == nil {
t.Fatalf("Parse invalid image but without get any error")
}
}
}
func TestStringWithoutScheme(t *testing.T) {
type testRawurl struct {
type testRawUrl struct {
Rawurl string
ExUrl string
}
testRawurls := []testRawurl{
testRawurls := []testRawUrl{
{"http://dockerhub.qingcloud.com/kubesphere/nginx:v1", "dockerhub.qingcloud.com/kubesphere/nginx:v1"},
{"https://dockerhub.qingcloud.com/kubesphere/nginx:v1", "dockerhub.qingcloud.com/kubesphere/nginx:v1"},
{"dockerhub.qingcloud.com/kubesphere/nginx:v1", "dockerhub.qingcloud.com/kubesphere/nginx:v1"},
{"http://harbor.devops.kubesphere.local:30280/library/tomcat:latest", "harbor.devops.kubesphere.local:30280/library/tomcat:latest"},
{"https://harbor.devops.kubesphere.local:30280/library/tomcat:latest", "harbor.devops.kubesphere.local:30280/library/tomcat:latest"},
}