github.com/cloudbase/juju-core@v0.0.0-20140504232958-a7271ac7912f/state/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  	gc "launchpad.net/gocheck"
     8  
     9  	envtesting "launchpad.net/juju-core/environs/testing"
    10  	"launchpad.net/juju-core/state/api/uniter"
    11  	jc "launchpad.net/juju-core/testing/checkers"
    12  )
    13  
    14  type charmSuite struct {
    15  	uniterSuite
    16  
    17  	apiCharm *uniter.Charm
    18  }
    19  
    20  var _ = gc.Suite(&charmSuite{})
    21  
    22  func (s *charmSuite) SetUpTest(c *gc.C) {
    23  	s.uniterSuite.SetUpTest(c)
    24  
    25  	var err error
    26  	s.apiCharm, err = s.uniter.Charm(s.wordpressCharm.URL())
    27  	c.Assert(err, gc.IsNil)
    28  	c.Assert(s.apiCharm, gc.NotNil)
    29  }
    30  
    31  func (s *charmSuite) TearDownTest(c *gc.C) {
    32  	s.uniterSuite.TearDownTest(c)
    33  }
    34  
    35  func (s *charmSuite) TestCharmWithNilFails(c *gc.C) {
    36  	_, err := s.uniter.Charm(nil)
    37  	c.Assert(err, gc.ErrorMatches, "charm url cannot be nil")
    38  }
    39  
    40  func (s *charmSuite) TestString(c *gc.C) {
    41  	c.Assert(s.apiCharm.String(), gc.Equals, s.wordpressCharm.String())
    42  }
    43  
    44  func (s *charmSuite) TestURL(c *gc.C) {
    45  	c.Assert(s.apiCharm.URL(), gc.DeepEquals, s.wordpressCharm.URL())
    46  }
    47  
    48  func (s *charmSuite) TestArchiveURL(c *gc.C) {
    49  	archiveURL, disableSSLHostnameVerification, err := s.apiCharm.ArchiveURL()
    50  	c.Assert(err, gc.IsNil)
    51  	c.Assert(archiveURL, gc.DeepEquals, s.wordpressCharm.BundleURL())
    52  	c.Assert(disableSSLHostnameVerification, jc.IsFalse)
    53  
    54  	envtesting.SetSSLHostnameVerification(c, s.State, false)
    55  
    56  	archiveURL, disableSSLHostnameVerification, err = s.apiCharm.ArchiveURL()
    57  	c.Assert(err, gc.IsNil)
    58  	c.Assert(archiveURL, gc.DeepEquals, s.wordpressCharm.BundleURL())
    59  	c.Assert(disableSSLHostnameVerification, jc.IsTrue)
    60  }
    61  
    62  func (s *charmSuite) TestArchiveSha256(c *gc.C) {
    63  	archiveSha256, err := s.apiCharm.ArchiveSha256()
    64  	c.Assert(err, gc.IsNil)
    65  	c.Assert(archiveSha256, gc.Equals, s.wordpressCharm.BundleSha256())
    66  }