github.com/cloud-green/juju@v0.0.0-20151002100041-a00291338d3d/cmd/juju/environment/unset_test.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package environment_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/apiserver/common" 12 "github.com/juju/juju/cmd/envcmd" 13 "github.com/juju/juju/cmd/juju/environment" 14 "github.com/juju/juju/testing" 15 ) 16 17 type UnsetSuite struct { 18 fakeEnvSuite 19 } 20 21 var _ = gc.Suite(&UnsetSuite{}) 22 23 func (s *UnsetSuite) run(c *gc.C, args ...string) (*cmd.Context, error) { 24 command := environment.NewUnsetCommand(s.fake) 25 return testing.RunCommand(c, envcmd.Wrap(command), args...) 26 } 27 28 func (s *UnsetSuite) TestInit(c *gc.C) { 29 unsetCmd := &environment.UnsetCommand{} 30 // Only empty is a problem. 31 err := testing.InitCommand(unsetCmd, []string{}) 32 c.Assert(err, gc.ErrorMatches, "no keys specified") 33 // Everything else is fine. 34 err = testing.InitCommand(unsetCmd, []string{"something", "weird"}) 35 c.Assert(err, jc.ErrorIsNil) 36 } 37 38 func (s *UnsetSuite) TestPassesValues(c *gc.C) { 39 _, err := s.run(c, "special", "running") 40 c.Assert(err, jc.ErrorIsNil) 41 c.Assert(s.fake.keys, jc.DeepEquals, []string{"special", "running"}) 42 } 43 44 func (s *UnsetSuite) TestUnsettingKnownValue(c *gc.C) { 45 _, err := s.run(c, "unknown") 46 c.Assert(err, jc.ErrorIsNil) 47 c.Assert(s.fake.keys, jc.DeepEquals, []string{"unknown"}) 48 // Command succeeds, but warning logged. 49 expected := `key "unknown" is not defined in the current environment configuration: possible misspelling` 50 c.Check(c.GetTestLog(), jc.Contains, expected) 51 } 52 53 func (s *UnsetSuite) TestBlockedError(c *gc.C) { 54 s.fake.err = common.ErrOperationBlocked("TestBlockedError") 55 _, err := s.run(c, "special") 56 c.Assert(err, gc.Equals, cmd.ErrSilent) 57 // msg is logged 58 c.Check(c.GetTestLog(), jc.Contains, "TestBlockedError") 59 }