github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/apiserver/imagemetadata/functions_test.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package imagemetadata_test
     5  
     6  import (
     7  	gc "gopkg.in/check.v1"
     8  
     9  	"github.com/juju/juju/apiserver/imagemetadata"
    10  	"github.com/juju/juju/apiserver/params"
    11  	"github.com/juju/juju/state/cloudimagemetadata"
    12  	"github.com/juju/juju/testing"
    13  )
    14  
    15  type funcSuite struct {
    16  	testing.BaseSuite
    17  
    18  	expected cloudimagemetadata.Metadata
    19  }
    20  
    21  func (s *funcSuite) SetUpTest(c *gc.C) {
    22  	s.BaseSuite.SetUpTest(c)
    23  
    24  	s.expected = cloudimagemetadata.Metadata{
    25  		cloudimagemetadata.MetadataAttributes{
    26  			Stream: "released",
    27  			Source: cloudimagemetadata.Custom,
    28  		},
    29  		"",
    30  	}
    31  }
    32  
    33  var _ = gc.Suite(&funcSuite{})
    34  
    35  func (s *funcSuite) TestParseMetadataSourcePanic(c *gc.C) {
    36  	m := func() { imagemetadata.ParseMetadataFromParams(params.CloudImageMetadata{}) }
    37  	c.Assert(m, gc.PanicMatches, `unknown cloud image metadata source ""`)
    38  }
    39  
    40  func (s *funcSuite) TestParseMetadataCustom(c *gc.C) {
    41  	m := imagemetadata.ParseMetadataFromParams(params.CloudImageMetadata{Source: "custom"})
    42  	c.Assert(m, gc.DeepEquals, s.expected)
    43  
    44  	m = imagemetadata.ParseMetadataFromParams(params.CloudImageMetadata{Source: "CusTOM"})
    45  	c.Assert(m, gc.DeepEquals, s.expected)
    46  }
    47  
    48  func (s *funcSuite) TestParseMetadataPublic(c *gc.C) {
    49  	s.expected.Source = cloudimagemetadata.Public
    50  
    51  	m := imagemetadata.ParseMetadataFromParams(params.CloudImageMetadata{Source: "public"})
    52  	c.Assert(m, gc.DeepEquals, s.expected)
    53  
    54  	m = imagemetadata.ParseMetadataFromParams(params.CloudImageMetadata{Source: "PubLic"})
    55  	c.Assert(m, gc.DeepEquals, s.expected)
    56  }
    57  
    58  func (s *funcSuite) TestParseMetadataAnyStream(c *gc.C) {
    59  	stream := "happy stream"
    60  	s.expected.Stream = stream
    61  
    62  	m := imagemetadata.ParseMetadataFromParams(params.CloudImageMetadata{
    63  		Source: "custom",
    64  		Stream: stream,
    65  	})
    66  	c.Assert(m, gc.DeepEquals, s.expected)
    67  }
    68  
    69  func (s *funcSuite) TestParseMetadataDefaultStream(c *gc.C) {
    70  	m := imagemetadata.ParseMetadataFromParams(params.CloudImageMetadata{
    71  		Source: "custom",
    72  	})
    73  	c.Assert(m, gc.DeepEquals, s.expected)
    74  }