github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/caas/kubernetes/provider/dockerconfig_test.go (about) 1 // Copyright 2018 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package provider_test 5 6 import ( 7 "encoding/json" 8 9 jc "github.com/juju/testing/checkers" 10 gc "gopkg.in/check.v1" 11 12 "github.com/juju/juju/caas" 13 "github.com/juju/juju/caas/kubernetes/provider" 14 "github.com/juju/juju/testing" 15 ) 16 17 type DockerConfigSuite struct { 18 testing.BaseSuite 19 } 20 21 var _ = gc.Suite(&DockerConfigSuite{}) 22 23 func (s *DockerConfigSuite) TestExtractRegistryURL(c *gc.C) { 24 for _, registryTest := range []struct { 25 registryPath string 26 expectedURL string 27 }{{ 28 registryPath: "registry.staging.charmstore.com/me/awesomeimage@sha256:5e2c71d050bec85c258a31aa4507ca8adb3b2f5158a4dc919a39118b8879a5ce", 29 expectedURL: "registry.staging.charmstore.com", 30 }, { 31 registryPath: "gcr.io/kubeflow/jupyterhub-k8s@sha256:5e2c71d050bec85c258a31aa4507ca8adb3b2f5158a4dc919a39118b8879a5ce", 32 expectedURL: "gcr.io", 33 }, { 34 registryPath: "docker.io/me/mygitlab:latest", 35 expectedURL: "docker.io", 36 }, { 37 registryPath: "me/mygitlab:latest", 38 expectedURL: "docker.io", 39 }} { 40 result, err := provider.ExtractRegistryURL(registryTest.registryPath) 41 c.Assert(err, jc.ErrorIsNil) 42 c.Assert(result, gc.Equals, registryTest.expectedURL) 43 } 44 } 45 46 func (s *DockerConfigSuite) TestCreateDockerConfigJSON(c *gc.C) { 47 imageDetails := caas.ImageDetails{ 48 ImagePath: "registry.staging.jujucharms.com/tester/caas-mysql/mysql-image:5.7", 49 Username: "docker-registry", 50 Password: "hunter2", 51 } 52 53 config, err := provider.CreateDockerConfigJSON(&imageDetails) 54 c.Assert(err, jc.ErrorIsNil) 55 56 var result provider.DockerConfigJson 57 err = json.Unmarshal(config, &result) 58 c.Assert(err, jc.ErrorIsNil) 59 60 c.Assert(result, jc.DeepEquals, provider.DockerConfigJson{ 61 Auths: map[string]provider.DockerConfigEntry{ 62 "registry.staging.jujucharms.com": { 63 Username: "docker-registry", 64 Password: "hunter2", 65 Email: "", 66 }, 67 }, 68 }) 69 }