github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/state/controllernode_test.go (about) 1 // Copyright 2019 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package state_test 5 6 import ( 7 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 10 "github.com/juju/juju/state" 11 ) 12 13 type ControllerNodeSuite struct { 14 ConnSuite 15 } 16 17 var _ = gc.Suite(&ControllerNodeSuite{}) 18 19 func (s *ControllerNodeSuite) TestAddControllerNode(c *gc.C) { 20 node, err := s.State.AddControllerNode() 21 c.Assert(err, jc.ErrorIsNil) 22 c.Assert(node.IsManager(), jc.IsTrue) 23 c.Assert(node.Tag().String(), gc.Equals, "controller-0") 24 c.Assert(node.Life(), gc.Equals, state.Alive) 25 node0, err := s.State.ControllerNode("0") 26 c.Assert(err, jc.ErrorIsNil) 27 c.Assert(node, jc.DeepEquals, node0) 28 29 // Check id increments. 30 node1, err := s.State.AddControllerNode() 31 c.Assert(err, jc.ErrorIsNil) 32 c.Assert(node1.Id(), gc.Equals, "1") 33 } 34 35 func (s *ControllerNodeSuite) TestSetPassword(c *gc.C) { 36 node, err := s.State.AddControllerNode() 37 c.Assert(err, jc.ErrorIsNil) 38 testSetPassword(c, func() (state.Authenticator, error) { 39 return node, nil 40 }) 41 } 42 43 func (s *ControllerNodeSuite) TestSetMongoPassword(c *gc.C) { 44 _, err := s.State.AddControllerNode() 45 c.Assert(err, jc.ErrorIsNil) 46 testSetMongoPassword(c, func(st *state.State, id string) (mongoPasswordSetter, error) { 47 return st.ControllerNode("0") 48 }, s.State.ControllerTag(), s.modelTag, s.Session) 49 } 50 51 func (s *ControllerNodeSuite) TestAgentTools(c *gc.C) { 52 node, err := s.State.AddControllerNode() 53 c.Assert(err, jc.ErrorIsNil) 54 testAgentTools(c, node, "controller "+node.Id()) 55 }