github.com/cloud-green/juju@v0.0.0-20151002100041-a00291338d3d/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 9 "github.com/juju/names" 10 jc "github.com/juju/testing/checkers" 11 "github.com/juju/utils" 12 gc "gopkg.in/check.v1" 13 14 "github.com/juju/juju/api" 15 "github.com/juju/juju/apiserver/params" 16 "github.com/juju/juju/juju/testing" 17 "github.com/juju/juju/state" 18 ) 19 20 var _ = gc.Suite(&unitSuite{}) 21 22 type unitSuite struct { 23 testing.JujuConnSuite 24 unit *state.Unit 25 st api.Connection 26 } 27 28 func (s *unitSuite) SetUpTest(c *gc.C) { 29 var err error 30 s.JujuConnSuite.SetUpTest(c) 31 svc := s.AddTestingService(c, "wordpress", s.AddTestingCharm(c, "wordpress")) 32 s.unit, err = svc.AddUnit() 33 c.Assert(err, jc.ErrorIsNil) 34 password, err := utils.RandomPassword() 35 c.Assert(err, jc.ErrorIsNil) 36 err = s.unit.SetPassword(password) 37 c.Assert(err, jc.ErrorIsNil) 38 39 s.st = s.OpenAPIAs(c, s.unit.Tag(), password) 40 } 41 42 func (s *unitSuite) TestUnitEntity(c *gc.C) { 43 tag := names.NewUnitTag("wordpress/1") 44 m, err := s.st.Agent().Entity(tag) 45 c.Assert(err, gc.ErrorMatches, "permission denied") 46 c.Assert(err, jc.Satisfies, params.IsCodeUnauthorized) 47 c.Assert(m, gc.IsNil) 48 49 m, err = s.st.Agent().Entity(s.unit.Tag()) 50 c.Assert(err, jc.ErrorIsNil) 51 c.Assert(m.Tag(), gc.Equals, s.unit.Tag().String()) 52 c.Assert(m.Life(), gc.Equals, params.Alive) 53 c.Assert(m.Jobs(), gc.HasLen, 0) 54 55 err = s.unit.EnsureDead() 56 c.Assert(err, jc.ErrorIsNil) 57 err = s.unit.Remove() 58 c.Assert(err, jc.ErrorIsNil) 59 60 m, err = s.st.Agent().Entity(s.unit.Tag()) 61 c.Assert(err, gc.ErrorMatches, fmt.Sprintf("unit %q not found", s.unit.Name())) 62 c.Assert(err, jc.Satisfies, params.IsCodeNotFound) 63 c.Assert(m, gc.IsNil) 64 }