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  }