github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/api/uniter/state_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 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 "gopkg.in/juju/names.v2" 10 11 apitesting "github.com/juju/juju/api/testing" 12 "github.com/juju/juju/apiserver/params" 13 "github.com/juju/juju/network" 14 ) 15 16 type stateSuite struct { 17 uniterSuite 18 *apitesting.APIAddresserTests 19 *apitesting.ModelWatcherTests 20 } 21 22 var _ = gc.Suite(&stateSuite{}) 23 24 func (s *stateSuite) SetUpTest(c *gc.C) { 25 s.uniterSuite.SetUpTest(c) 26 s.APIAddresserTests = apitesting.NewAPIAddresserTests(s.uniter, s.BackingState) 27 s.ModelWatcherTests = apitesting.NewModelWatcherTests(s.uniter, s.BackingState) 28 } 29 30 func (s *stateSuite) TestProviderType(c *gc.C) { 31 cfg, err := s.State.ModelConfig() 32 c.Assert(err, jc.ErrorIsNil) 33 34 providerType, err := s.uniter.ProviderType() 35 c.Assert(err, jc.ErrorIsNil) 36 c.Assert(providerType, gc.DeepEquals, cfg.Type()) 37 } 38 39 func (s *stateSuite) TestAllMachinePorts(c *gc.C) { 40 // Verify no ports are opened yet on the machine or unit. 41 machinePorts, err := s.wordpressMachine.AllPorts() 42 c.Assert(err, jc.ErrorIsNil) 43 c.Assert(machinePorts, gc.HasLen, 0) 44 unitPorts, err := s.wordpressUnit.OpenedPorts() 45 c.Assert(err, jc.ErrorIsNil) 46 c.Assert(unitPorts, gc.HasLen, 0) 47 48 // Add another wordpress unit on the same machine. 49 wordpressUnit1, err := s.wordpressService.AddUnit() 50 c.Assert(err, jc.ErrorIsNil) 51 err = wordpressUnit1.AssignToMachine(s.wordpressMachine) 52 c.Assert(err, jc.ErrorIsNil) 53 54 // Open some ports on both units. 55 err = s.wordpressUnit.OpenPorts("tcp", 100, 200) 56 c.Assert(err, jc.ErrorIsNil) 57 err = s.wordpressUnit.OpenPorts("udp", 10, 20) 58 c.Assert(err, jc.ErrorIsNil) 59 err = wordpressUnit1.OpenPorts("tcp", 201, 250) 60 c.Assert(err, jc.ErrorIsNil) 61 err = wordpressUnit1.OpenPorts("udp", 1, 8) 62 c.Assert(err, jc.ErrorIsNil) 63 64 portsMap, err := s.uniter.AllMachinePorts(s.wordpressMachine.Tag().(names.MachineTag)) 65 c.Assert(err, jc.ErrorIsNil) 66 c.Assert(portsMap, jc.DeepEquals, map[network.PortRange]params.RelationUnit{ 67 network.PortRange{100, 200, "tcp"}: {Unit: s.wordpressUnit.Tag().String()}, 68 network.PortRange{10, 20, "udp"}: {Unit: s.wordpressUnit.Tag().String()}, 69 network.PortRange{201, 250, "tcp"}: {Unit: wordpressUnit1.Tag().String()}, 70 network.PortRange{1, 8, "udp"}: {Unit: wordpressUnit1.Tag().String()}, 71 }) 72 }