github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/api/uniter/charm_test.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package uniter_test 5 6 import ( 7 "fmt" 8 "net/url" 9 10 jc "github.com/juju/testing/checkers" 11 gc "gopkg.in/check.v1" 12 13 "github.com/juju/juju/api/uniter" 14 ) 15 16 type charmSuite struct { 17 uniterSuite 18 19 apiCharm *uniter.Charm 20 } 21 22 var _ = gc.Suite(&charmSuite{}) 23 24 func (s *charmSuite) SetUpTest(c *gc.C) { 25 s.uniterSuite.SetUpTest(c) 26 27 var err error 28 s.apiCharm, err = s.uniter.Charm(s.wordpressCharm.URL()) 29 c.Assert(err, jc.ErrorIsNil) 30 c.Assert(s.apiCharm, gc.NotNil) 31 } 32 33 func (s *charmSuite) TearDownTest(c *gc.C) { 34 s.uniterSuite.TearDownTest(c) 35 } 36 37 func (s *charmSuite) TestCharmWithNilFails(c *gc.C) { 38 _, err := s.uniter.Charm(nil) 39 c.Assert(err, gc.ErrorMatches, "charm url cannot be nil") 40 } 41 42 func (s *charmSuite) TestString(c *gc.C) { 43 c.Assert(s.apiCharm.String(), gc.Equals, s.wordpressCharm.String()) 44 } 45 46 func (s *charmSuite) TestURL(c *gc.C) { 47 c.Assert(s.apiCharm.URL(), gc.DeepEquals, s.wordpressCharm.URL()) 48 } 49 50 func (s *charmSuite) TestArchiveURLs(c *gc.C) { 51 apiInfo := s.APIInfo(c) 52 url, err := url.Parse(fmt.Sprintf( 53 "https://0.1.2.3:1234/model/%s/charms?file=%s&url=%s", 54 apiInfo.ModelTag.Id(), 55 url.QueryEscape("*"), 56 url.QueryEscape(s.apiCharm.URL().String()), 57 )) 58 c.Assert(err, jc.ErrorIsNil) 59 archiveURLs, err := s.apiCharm.ArchiveURLs() 60 c.Assert(err, jc.ErrorIsNil) 61 c.Assert(archiveURLs, gc.HasLen, 1) 62 c.Assert(archiveURLs[0], gc.DeepEquals, url) 63 } 64 65 func (s *charmSuite) TestArchiveSha256(c *gc.C) { 66 archiveSha256, err := s.apiCharm.ArchiveSha256() 67 c.Assert(err, jc.ErrorIsNil) 68 c.Assert(archiveSha256, gc.Equals, s.wordpressCharm.BundleSha256()) 69 }