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  }