launchpad.net/~rogpeppe/juju-core/500-errgo-fix@v0.0.0-20140213181702-000000002356/state/api/agent/unit_test.go (about) 1 // Copyright 2012, 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package agent_test 5 6 import ( 7 "fmt" 8 gc "launchpad.net/gocheck" 9 10 "launchpad.net/juju-core/juju/testing" 11 "launchpad.net/juju-core/state" 12 "launchpad.net/juju-core/state/api" 13 "launchpad.net/juju-core/state/api/params" 14 jc "launchpad.net/juju-core/testing/checkers" 15 "launchpad.net/juju-core/utils" 16 ) 17 18 var _ = gc.Suite(&unitSuite{}) 19 20 type unitSuite struct { 21 testing.JujuConnSuite 22 unit *state.Unit 23 st *api.State 24 } 25 26 func (s *unitSuite) SetUpTest(c *gc.C) { 27 var err error 28 s.JujuConnSuite.SetUpTest(c) 29 svc := s.AddTestingService(c, "wordpress", s.AddTestingCharm(c, "wordpress")) 30 s.unit, err = svc.AddUnit() 31 c.Assert(err, gc.IsNil) 32 password, err := utils.RandomPassword() 33 c.Assert(err, gc.IsNil) 34 err = s.unit.SetPassword(password) 35 36 s.st = s.OpenAPIAs(c, s.unit.Tag(), password) 37 } 38 39 func (s *unitSuite) TestUnitEntity(c *gc.C) { 40 m, err := s.st.Agent().Entity("wordpress/1") 41 c.Assert(err, gc.ErrorMatches, "permission denied") 42 c.Assert(err, jc.Satisfies, params.IsCodeUnauthorized) 43 c.Assert(m, gc.IsNil) 44 45 m, err = s.st.Agent().Entity(s.unit.Tag()) 46 c.Assert(err, gc.IsNil) 47 c.Assert(m.Tag(), gc.Equals, s.unit.Tag()) 48 c.Assert(m.Life(), gc.Equals, params.Alive) 49 c.Assert(m.Jobs(), gc.HasLen, 0) 50 51 err = s.unit.EnsureDead() 52 c.Assert(err, gc.IsNil) 53 err = s.unit.Remove() 54 c.Assert(err, gc.IsNil) 55 56 m, err = s.st.Agent().Entity(s.unit.Tag()) 57 c.Assert(err, gc.ErrorMatches, fmt.Sprintf("unit %q not found", s.unit.Name())) 58 c.Assert(err, jc.Satisfies, params.IsCodeNotFound) 59 c.Assert(m, gc.IsNil) 60 }