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  }