github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/cmd/juju/block/unblock_test.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package block_test 5 6 import ( 7 "strings" 8 9 jc "github.com/juju/testing/checkers" 10 gc "gopkg.in/check.v1" 11 12 "github.com/juju/juju/cmd/envcmd" 13 "github.com/juju/juju/cmd/juju/block" 14 "github.com/juju/juju/environs/config" 15 "github.com/juju/juju/testing" 16 ) 17 18 type UnblockCommandSuite struct { 19 ProtectionCommandSuite 20 } 21 22 var _ = gc.Suite(&UnblockCommandSuite{}) 23 24 func runUnblockCommand(c *gc.C, args ...string) error { 25 _, err := testing.RunCommand(c, envcmd.Wrap(&block.UnblockCommand{}), args...) 26 return err 27 } 28 29 func (s *UnblockCommandSuite) runUnblockTestAndCompare(c *gc.C, operation string, expectedValue bool) { 30 err := runUnblockCommand(c, operation) 31 c.Assert(err, jc.ErrorIsNil) 32 33 expectedOp := config.BlockKeyPrefix + strings.ToLower(operation) 34 expectedCfg := map[string]interface{}{expectedOp: expectedValue} 35 c.Assert(s.mockClient.cfg, gc.DeepEquals, expectedCfg) 36 } 37 38 func (s *UnblockCommandSuite) TestUnblockCmdNoOperation(c *gc.C) { 39 s.assertErrorMatches(c, runUnblockCommand(c), `.*must specify one of.*`) 40 } 41 42 func (s *UnblockCommandSuite) TestUnblockCmdMoreThanOneOperation(c *gc.C) { 43 s.assertErrorMatches(c, runUnblockCommand(c, "destroy-environment", "change"), `.*must specify one of.*`) 44 } 45 46 func (s *UnblockCommandSuite) TestUnblockCmdOperationWithSeparator(c *gc.C) { 47 s.assertErrorMatches(c, runUnblockCommand(c, "destroy-environment|"), `.*valid argument.*`) 48 } 49 50 func (s *UnblockCommandSuite) TestUnblockCmdUnknownJujuOperation(c *gc.C) { 51 s.assertErrorMatches(c, runUnblockCommand(c, "add-machine"), `.*valid argument.*`) 52 } 53 54 func (s *UnblockCommandSuite) TestUnblockCmdUnknownOperation(c *gc.C) { 55 s.assertErrorMatches(c, runUnblockCommand(c, "blah"), `.*valid argument.*`) 56 } 57 58 func (s *UnblockCommandSuite) TestUnblockCmdValidDestroyEnvOperationUpperCase(c *gc.C) { 59 s.runUnblockTestAndCompare(c, "DESTROY-ENVIRONMENT", false) 60 } 61 62 func (s *UnblockCommandSuite) TestUnblockCmdValidDestroyEnvOperation(c *gc.C) { 63 s.runUnblockTestAndCompare(c, "destroy-environment", false) 64 }