github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/core/resources/resources_test.go (about) 1 // Copyright 2018 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package resources_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/core/resources" 13 ) 14 15 type ResourceSuite struct{} 16 17 var _ = gc.Suite(&ResourceSuite{}) 18 19 func (s *ResourceSuite) TestValidRegistryPath(c *gc.C) { 20 for _, registryTest := range []struct { 21 registryPath string 22 }{{ 23 registryPath: "registry.staging.charmstore.com/me/awesomeimage@sha256:5e2c71d050bec85c258a31aa4507ca8adb3b2f5158a4dc919a39118b8879a5ce", 24 }, { 25 registryPath: "gcr.io/kubeflow/jupyterhub-k8s@sha256:5e2c71d050bec85c258a31aa4507ca8adb3b2f5158a4dc919a39118b8879a5ce", 26 }, { 27 registryPath: "docker.io/me/mygitlab:latest", 28 }, { 29 registryPath: "me/mygitlab:latest", 30 }} { 31 err := resources.ValidateDockerRegistryPath(registryTest.registryPath) 32 c.Assert(err, jc.ErrorIsNil) 33 } 34 } 35 36 func (s *ResourceSuite) TestInvalidRegistryPath(c *gc.C) { 37 err := resources.ValidateDockerRegistryPath("blah:sha256@") 38 c.Assert(err, gc.ErrorMatches, "docker image path .* not valid") 39 } 40 41 func (s *ResourceSuite) TestDockerImageDetailsUnmarshal(c *gc.C) { 42 data := []byte(`{"ImageName":"testing@sha256:beef-deed","Username":"docker-registry","Password":"fragglerock"}`) 43 var result resources.DockerImageDetails 44 err := json.Unmarshal(data, &result) 45 c.Assert(err, jc.ErrorIsNil) 46 c.Assert(result, gc.DeepEquals, resources.DockerImageDetails{ 47 RegistryPath: "testing@sha256:beef-deed", 48 Username: "docker-registry", 49 Password: "fragglerock", 50 }) 51 }