launchpad.net/~rogpeppe/juju-core/500-errgo-fix@v0.0.0-20140213181702-000000002356/cmd/juju/destroyunit_test.go (about)

     1  // Copyright 2012, 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  	"launchpad.net/juju-core/charm"
    10  	jujutesting "launchpad.net/juju-core/juju/testing"
    11  	"launchpad.net/juju-core/state"
    12  	"launchpad.net/juju-core/testing"
    13  )
    14  
    15  type DestroyUnitSuite struct {
    16  	jujutesting.RepoSuite
    17  }
    18  
    19  var _ = gc.Suite(&DestroyUnitSuite{})
    20  
    21  func runDestroyUnit(c *gc.C, args ...string) error {
    22  	_, err := testing.RunCommand(c, &DestroyUnitCommand{}, args)
    23  	return err
    24  }
    25  
    26  func (s *DestroyUnitSuite) TestDestroyUnit(c *gc.C) {
    27  	testing.Charms.BundlePath(s.SeriesPath, "dummy")
    28  	err := runDeploy(c, "-n", "2", "local:dummy", "dummy")
    29  	c.Assert(err, gc.IsNil)
    30  	curl := charm.MustParseURL("local:precise/dummy-1")
    31  	svc, _ := s.AssertService(c, "dummy", curl, 2, 0)
    32  
    33  	err = runDestroyUnit(c, "dummy/0", "dummy/1", "dummy/2", "sillybilly/17")
    34  	c.Assert(err, gc.ErrorMatches, `some units were not destroyed: unit "dummy/2" does not exist; unit "sillybilly/17" does not exist`)
    35  	units, err := svc.AllUnits()
    36  	c.Assert(err, gc.IsNil)
    37  	for _, u := range units {
    38  		c.Assert(u.Life(), gc.Equals, state.Dying)
    39  	}
    40  }