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 }