github.com/mattyw/juju@v0.0.0-20140610034352-732aecd63861/state/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  	gc "launchpad.net/gocheck"
     8  
     9  	"github.com/juju/juju/instance"
    10  	"github.com/juju/juju/state"
    11  	"github.com/juju/juju/state/apiserver/common"
    12  )
    13  
    14  type stateAddresserSuite struct {
    15  	addresser *common.StateAddresser
    16  }
    17  
    18  type apiAddresserSuite struct {
    19  	addresser *common.APIAddresser
    20  }
    21  
    22  var _ = gc.Suite(&stateAddresserSuite{})
    23  var _ = gc.Suite(&apiAddresserSuite{})
    24  
    25  func (s *stateAddresserSuite) SetUpTest(c *gc.C) {
    26  	s.addresser = common.NewStateAddresser(fakeAddresses{})
    27  }
    28  
    29  // Verify that AddressAndCertGetter is satisfied by *state.State.
    30  var _ common.AddressAndCertGetter = (*state.State)(nil)
    31  
    32  func (s *stateAddresserSuite) TestStateAddresses(c *gc.C) {
    33  	result, err := s.addresser.StateAddresses()
    34  	c.Assert(err, gc.IsNil)
    35  	c.Assert(result.Result, gc.DeepEquals, []string{"addresses:1", "addresses:2"})
    36  }
    37  
    38  func (s *apiAddresserSuite) SetUpTest(c *gc.C) {
    39  	s.addresser = common.NewAPIAddresser(fakeAddresses{}, common.NewResources())
    40  }
    41  
    42  func (s *apiAddresserSuite) TestAPIAddresses(c *gc.C) {
    43  	result, err := s.addresser.APIAddresses()
    44  	c.Assert(err, gc.IsNil)
    45  	c.Assert(result.Result, gc.DeepEquals, []string{"apiaddresses:1", "apiaddresses:2"})
    46  }
    47  
    48  func (s *apiAddresserSuite) TestCACert(c *gc.C) {
    49  	result := s.addresser.CACert()
    50  	c.Assert(string(result.Result), gc.Equals, "a cert")
    51  }
    52  
    53  var _ common.AddressAndCertGetter = fakeAddresses{}
    54  
    55  type fakeAddresses struct{}
    56  
    57  func (fakeAddresses) Addresses() ([]string, error) {
    58  	return []string{"addresses:1", "addresses:2"}, nil
    59  }
    60  
    61  func (fakeAddresses) APIAddressesFromMachines() ([]string, error) {
    62  	panic("should never be called")
    63  }
    64  
    65  func (fakeAddresses) CACert() string {
    66  	return "a cert"
    67  }
    68  
    69  func (fakeAddresses) APIHostPorts() ([][]instance.HostPort, error) {
    70  	return [][]instance.HostPort{{{
    71  		Address: instance.NewAddress("apiaddresses", instance.NetworkUnknown),
    72  		Port:    1,
    73  	}}, {{
    74  		Address: instance.NewAddress("apiaddresses", instance.NetworkUnknown),
    75  		Port:    2,
    76  	}}}, nil
    77  }
    78  
    79  func (fakeAddresses) WatchAPIHostPorts() state.NotifyWatcher {
    80  	panic("should never be called")
    81  }