github.com/cloud-green/juju@v0.0.0-20151002100041-a00291338d3d/cmd/juju/user/disenable_test.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package user_test 5 6 import ( 7 "github.com/juju/cmd" 8 jc "github.com/juju/testing/checkers" 9 gc "gopkg.in/check.v1" 10 11 "github.com/juju/juju/cmd/envcmd" 12 "github.com/juju/juju/cmd/juju/user" 13 "github.com/juju/juju/testing" 14 ) 15 16 type DisableUserSuite struct { 17 BaseSuite 18 mock *mockDisenableUserAPI 19 } 20 21 var _ = gc.Suite(&DisableUserSuite{}) 22 23 func (s *DisableUserSuite) SetUpTest(c *gc.C) { 24 s.BaseSuite.SetUpTest(c) 25 s.mock = &mockDisenableUserAPI{} 26 } 27 28 type disenableCommand interface { 29 cmd.Command 30 Username() string 31 } 32 33 func (s *DisableUserSuite) testInit(c *gc.C, command disenableCommand) { 34 for i, test := range []struct { 35 args []string 36 errMatch string 37 user string 38 enable bool 39 }{ 40 { 41 errMatch: "no username supplied", 42 }, { 43 args: []string{"username", "password"}, 44 errMatch: `unrecognized args: \["password"\]`, 45 }, { 46 args: []string{"username"}, 47 user: "username", 48 }, 49 } { 50 c.Logf("test %d, args %v", i, test.args) 51 err := testing.InitCommand(command, test.args) 52 if test.errMatch == "" { 53 c.Assert(err, jc.ErrorIsNil) 54 c.Assert(command.Username(), gc.Equals, test.user) 55 } else { 56 c.Assert(err, gc.ErrorMatches, test.errMatch) 57 } 58 } 59 } 60 61 func (s *DisableUserSuite) TestInit(c *gc.C) { 62 s.testInit(c, &user.EnableCommand{}) 63 s.testInit(c, &user.DisableCommand{}) 64 } 65 66 func (s *DisableUserSuite) TestDisable(c *gc.C) { 67 username := "testing" 68 disableCommand := envcmd.WrapSystem(user.NewDisableCommand(s.mock)) 69 _, err := testing.RunCommand(c, disableCommand, username) 70 c.Assert(err, jc.ErrorIsNil) 71 c.Assert(s.mock.disable, gc.Equals, username) 72 } 73 74 func (s *DisableUserSuite) TestEnable(c *gc.C) { 75 username := "testing" 76 enableCommand := envcmd.WrapSystem(user.NewEnableCommand(s.mock)) 77 _, err := testing.RunCommand(c, enableCommand, username) 78 c.Assert(err, jc.ErrorIsNil) 79 c.Assert(s.mock.enable, gc.Equals, username) 80 } 81 82 type mockDisenableUserAPI struct { 83 enable string 84 disable string 85 } 86 87 var _ user.DisenableUserAPI = (*mockDisenableUserAPI)(nil) 88 89 func (m *mockDisenableUserAPI) Close() error { 90 return nil 91 } 92 93 func (m *mockDisenableUserAPI) EnableUser(username string) error { 94 m.enable = username 95 return nil 96 } 97 98 func (m *mockDisenableUserAPI) DisableUser(username string) error { 99 m.disable = username 100 return nil 101 }