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 }