launchpad.net/~rogpeppe/juju-core/500-errgo-fix@v0.0.0-20140213181702-000000002356/provider/common/state_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 "launchpad.net/juju-core/environs/config" 10 "launchpad.net/juju-core/instance" 11 "launchpad.net/juju-core/provider/common" 12 "launchpad.net/juju-core/testing" 13 "launchpad.net/juju-core/testing/testbase" 14 ) 15 16 type StateSuite struct { 17 testbase.LoggingSuite 18 } 19 20 var _ = gc.Suite(&StateSuite{}) 21 22 func (suite *StateSuite) TestGetDNSNamesAcceptsNil(c *gc.C) { 23 result := common.GetDNSNames(nil) 24 c.Check(result, gc.DeepEquals, []string{}) 25 } 26 27 func (suite *StateSuite) TestGetDNSNamesReturnsNames(c *gc.C) { 28 instances := []instance.Instance{ 29 &dnsNameFakeInstance{name: "foo"}, 30 &dnsNameFakeInstance{name: "bar"}, 31 } 32 33 c.Check(common.GetDNSNames(instances), gc.DeepEquals, []string{"foo", "bar"}) 34 } 35 36 func (suite *StateSuite) TestGetDNSNamesIgnoresNils(c *gc.C) { 37 c.Check(common.GetDNSNames([]instance.Instance{nil, nil}), gc.DeepEquals, []string{}) 38 } 39 40 func (suite *StateSuite) TestGetDNSNamesIgnoresInstancesWithoutNames(c *gc.C) { 41 instances := []instance.Instance{&dnsNameFakeInstance{err: instance.ErrNoDNSName}} 42 c.Check(common.GetDNSNames(instances), gc.DeepEquals, []string{}) 43 } 44 45 func (suite *StateSuite) TestGetDNSNamesIgnoresInstancesWithBlankNames(c *gc.C) { 46 instances := []instance.Instance{&dnsNameFakeInstance{name: ""}} 47 c.Check(common.GetDNSNames(instances), gc.DeepEquals, []string{}) 48 } 49 50 func (suite *StateSuite) TestComposeAddressesAcceptsNil(c *gc.C) { 51 c.Check(common.ComposeAddresses(nil, 1433), gc.DeepEquals, []string{}) 52 } 53 54 func (suite *StateSuite) TestComposeAddressesSuffixesAddresses(c *gc.C) { 55 c.Check( 56 common.ComposeAddresses([]string{"onehost", "otherhost"}, 1957), 57 gc.DeepEquals, 58 []string{"onehost:1957", "otherhost:1957"}) 59 } 60 61 func (suite *StateSuite) TestGetStateInfo(c *gc.C) { 62 cert := testing.CACert 63 attrs := testing.FakeConfig().Merge(testing.Attrs{ 64 "ca-cert": cert, 65 "state-port": 123, 66 "api-port": 456, 67 }) 68 cfg, err := config.New(config.NoDefaults, attrs) 69 c.Assert(err, gc.IsNil) 70 hostnames := []string{"onehost", "otherhost"} 71 72 stateInfo, apiInfo := common.GetStateInfo(cfg, hostnames) 73 74 c.Check(stateInfo.Addrs, gc.DeepEquals, []string{"onehost:123", "otherhost:123"}) 75 c.Check(string(stateInfo.CACert), gc.Equals, cert) 76 c.Check(apiInfo.Addrs, gc.DeepEquals, []string{"onehost:456", "otherhost:456"}) 77 c.Check(string(apiInfo.CACert), gc.Equals, cert) 78 }