github.com/mattyw/juju@v0.0.0-20140610034352-732aecd63861/cmd/juju/removeservice_test.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package main 5 6 import ( 7 gc "launchpad.net/gocheck" 8 9 charmtesting "github.com/juju/juju/charm/testing" 10 "github.com/juju/juju/cmd/envcmd" 11 jujutesting "github.com/juju/juju/juju/testing" 12 "github.com/juju/juju/state" 13 "github.com/juju/juju/testing" 14 ) 15 16 type RemoveServiceSuite struct { 17 jujutesting.RepoSuite 18 } 19 20 var _ = gc.Suite(&RemoveServiceSuite{}) 21 22 func runRemoveService(c *gc.C, args ...string) error { 23 _, err := testing.RunCommand(c, envcmd.Wrap(&RemoveServiceCommand{}), args...) 24 return err 25 } 26 27 func (s *RemoveServiceSuite) TestSuccess(c *gc.C) { 28 // Destroy a service that exists. 29 charmtesting.Charms.BundlePath(s.SeriesPath, "riak") 30 err := runDeploy(c, "local:riak", "riak") 31 c.Assert(err, gc.IsNil) 32 err = runRemoveService(c, "riak") 33 c.Assert(err, gc.IsNil) 34 riak, err := s.State.Service("riak") 35 c.Assert(err, gc.IsNil) 36 c.Assert(riak.Life(), gc.Equals, state.Dying) 37 } 38 39 func (s *RemoveServiceSuite) TestFailure(c *gc.C) { 40 // Destroy a service that does not exist. 41 err := runRemoveService(c, "gargleblaster") 42 c.Assert(err, gc.ErrorMatches, `service "gargleblaster" not found`) 43 } 44 45 func (s *RemoveServiceSuite) TestInvalidArgs(c *gc.C) { 46 err := runRemoveService(c) 47 c.Assert(err, gc.ErrorMatches, `no service specified`) 48 err = runRemoveService(c, "ping", "pong") 49 c.Assert(err, gc.ErrorMatches, `unrecognized args: \["pong"\]`) 50 err = runRemoveService(c, "invalid:name") 51 c.Assert(err, gc.ErrorMatches, `invalid service name "invalid:name"`) 52 }