From 1e68170f89fb18f5e3725c1dc47958c953b0a237 Mon Sep 17 00:00:00 2001 From: zhuxiaoyang Date: Wed, 15 Jan 2020 16:40:35 +0800 Subject: [PATCH] update unit test Signed-off-by: zhuxiaoyang --- pkg/models/registries/image_test.go | 65 ++++++++++++----------------- 1 file changed, 27 insertions(+), 38 deletions(-) diff --git a/pkg/models/registries/image_test.go b/pkg/models/registries/image_test.go index f86b4f4d5..dd8d8af73 100644 --- a/pkg/models/registries/image_test.go +++ b/pkg/models/registries/image_test.go @@ -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"}, }