github.com/cloud-green/juju@v0.0.0-20151002100041-a00291338d3d/api/firewaller/service_test.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package firewaller_test 5 6 import ( 7 "github.com/juju/names" 8 jc "github.com/juju/testing/checkers" 9 gc "gopkg.in/check.v1" 10 11 "github.com/juju/juju/api/firewaller" 12 "github.com/juju/juju/apiserver/params" 13 statetesting "github.com/juju/juju/state/testing" 14 ) 15 16 type serviceSuite struct { 17 firewallerSuite 18 19 apiService *firewaller.Service 20 } 21 22 var _ = gc.Suite(&serviceSuite{}) 23 24 func (s *serviceSuite) SetUpTest(c *gc.C) { 25 s.firewallerSuite.SetUpTest(c) 26 27 var err error 28 apiUnit, err := s.firewaller.Unit(s.units[0].Tag().(names.UnitTag)) 29 s.apiService, err = apiUnit.Service() 30 c.Assert(err, jc.ErrorIsNil) 31 } 32 33 func (s *serviceSuite) TearDownTest(c *gc.C) { 34 s.firewallerSuite.TearDownTest(c) 35 } 36 37 func (s *serviceSuite) TestName(c *gc.C) { 38 c.Assert(s.apiService.Name(), gc.Equals, s.service.Name()) 39 } 40 41 func (s *serviceSuite) TestTag(c *gc.C) { 42 c.Assert(s.apiService.Tag(), gc.Equals, names.NewServiceTag(s.service.Name())) 43 } 44 45 func (s *serviceSuite) TestWatch(c *gc.C) { 46 c.Assert(s.apiService.Life(), gc.Equals, params.Alive) 47 48 w, err := s.apiService.Watch() 49 c.Assert(err, jc.ErrorIsNil) 50 defer statetesting.AssertStop(c, w) 51 wc := statetesting.NewNotifyWatcherC(c, s.BackingState, w) 52 53 // Initial event. 54 wc.AssertOneChange() 55 56 // Change something and check it's detected. 57 err = s.service.SetExposed() 58 c.Assert(err, jc.ErrorIsNil) 59 wc.AssertOneChange() 60 61 // Destroy the service and check it's detected. 62 err = s.service.Destroy() 63 c.Assert(err, jc.ErrorIsNil) 64 wc.AssertOneChange() 65 66 statetesting.AssertStop(c, w) 67 wc.AssertClosed() 68 } 69 70 func (s *serviceSuite) TestRefresh(c *gc.C) { 71 c.Assert(s.apiService.Life(), gc.Equals, params.Alive) 72 73 err := s.service.Destroy() 74 c.Assert(err, jc.ErrorIsNil) 75 c.Assert(s.apiService.Life(), gc.Equals, params.Alive) 76 77 err = s.apiService.Refresh() 78 c.Assert(err, jc.ErrorIsNil) 79 c.Assert(s.apiService.Life(), gc.Equals, params.Dying) 80 } 81 82 func (s *serviceSuite) TestIsExposed(c *gc.C) { 83 err := s.service.SetExposed() 84 c.Assert(err, jc.ErrorIsNil) 85 86 isExposed, err := s.apiService.IsExposed() 87 c.Assert(err, jc.ErrorIsNil) 88 c.Assert(isExposed, jc.IsTrue) 89 90 err = s.service.ClearExposed() 91 c.Assert(err, jc.ErrorIsNil) 92 93 isExposed, err = s.apiService.IsExposed() 94 c.Assert(err, jc.ErrorIsNil) 95 c.Assert(isExposed, jc.IsFalse) 96 }