github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/apiserver/common/addresses_test.go (about)

     1  // Copyright 2013 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package common_test
     5  
     6  import (
     7  	jc "github.com/juju/testing/checkers"
     8  	gc "gopkg.in/check.v1"
     9  
    10  	"github.com/juju/juju/apiserver/common"
    11  	"github.com/juju/juju/network"
    12  	"github.com/juju/juju/state"
    13  )
    14  
    15  type stateAddresserSuite struct {
    16  	addresser *common.StateAddresser
    17  }
    18  
    19  type apiAddresserSuite struct {
    20  	addresser *common.APIAddresser
    21  }
    22  
    23  var _ = gc.Suite(&stateAddresserSuite{})
    24  var _ = gc.Suite(&apiAddresserSuite{})
    25  
    26  func (s *stateAddresserSuite) SetUpTest(c *gc.C) {
    27  	s.addresser = common.NewStateAddresser(fakeAddresses{})
    28  }
    29  
    30  // Verify that AddressAndCertGetter is satisfied by *state.State.
    31  var _ common.AddressAndCertGetter = (*state.State)(nil)
    32  
    33  func (s *stateAddresserSuite) TestStateAddresses(c *gc.C) {
    34  	result, err := s.addresser.StateAddresses()
    35  	c.Assert(err, jc.ErrorIsNil)
    36  	c.Assert(result.Result, gc.DeepEquals, []string{"addresses:1", "addresses:2"})
    37  }
    38  
    39  func (s *apiAddresserSuite) SetUpTest(c *gc.C) {
    40  	s.addresser = common.NewAPIAddresser(fakeAddresses{}, common.NewResources())
    41  }
    42  
    43  func (s *apiAddresserSuite) TestAPIAddresses(c *gc.C) {
    44  	result, err := s.addresser.APIAddresses()
    45  	c.Assert(err, jc.ErrorIsNil)
    46  	c.Assert(result.Result, gc.DeepEquals, []string{"apiaddresses:1", "apiaddresses:2"})
    47  }
    48  
    49  func (s *apiAddresserSuite) TestCACert(c *gc.C) {
    50  	result := s.addresser.CACert()
    51  	c.Assert(string(result.Result), gc.Equals, "a cert")
    52  }
    53  
    54  func (s *apiAddresserSuite) TestEnvironUUID(c *gc.C) {
    55  	result := s.addresser.EnvironUUID()
    56  	c.Assert(string(result.Result), gc.Equals, "the environ uuid")
    57  }
    58  
    59  var _ common.AddressAndCertGetter = fakeAddresses{}
    60  
    61  type fakeAddresses struct{}
    62  
    63  func (fakeAddresses) Addresses() ([]string, error) {
    64  	return []string{"addresses:1", "addresses:2"}, nil
    65  }
    66  
    67  func (fakeAddresses) APIAddressesFromMachines() ([]string, error) {
    68  	panic("should never be called")
    69  }
    70  
    71  func (fakeAddresses) CACert() string {
    72  	return "a cert"
    73  }
    74  
    75  func (fakeAddresses) EnvironUUID() string {
    76  	return "the environ uuid"
    77  }
    78  
    79  func (fakeAddresses) APIHostPorts() ([][]network.HostPort, error) {
    80  	return [][]network.HostPort{{{
    81  		Address: network.NewAddress("apiaddresses", network.ScopeUnknown),
    82  		Port:    1,
    83  	}}, {{
    84  		Address: network.NewAddress("apiaddresses", network.ScopeUnknown),
    85  		Port:    2,
    86  	}}}, nil
    87  }
    88  
    89  func (fakeAddresses) WatchAPIHostPorts() state.NotifyWatcher {
    90  	panic("should never be called")
    91  }