github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/cmd/juju/space/update_test.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package space_test
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  	gc "gopkg.in/check.v1"
     9  
    10  	"github.com/juju/juju/cmd/juju/space"
    11  	"github.com/juju/juju/feature"
    12  )
    13  
    14  type UpdateSuite struct {
    15  	BaseSpaceSuite
    16  }
    17  
    18  var _ = gc.Suite(&UpdateSuite{})
    19  
    20  func (s *UpdateSuite) SetUpTest(c *gc.C) {
    21  	s.BaseSuite.SetFeatureFlags(feature.PostNetCLIMVP)
    22  	s.BaseSpaceSuite.SetUpTest(c)
    23  	s.command = space.NewUpdateCommand(s.api)
    24  	c.Assert(s.command, gc.NotNil)
    25  }
    26  
    27  func (s *UpdateSuite) TestRunWithSubnetsSucceeds(c *gc.C) {
    28  	s.AssertRunSucceeds(c,
    29  		`updated space "myspace": changed subnets to 10.1.2.0/24, 4.3.2.0/28\n`,
    30  		"", // no stdout, just stderr
    31  		"myspace", "10.1.2.0/24", "4.3.2.0/28",
    32  	)
    33  
    34  	s.api.CheckCallNames(c, "UpdateSpace", "Close")
    35  	s.api.CheckCall(c,
    36  		0, "UpdateSpace",
    37  		"myspace", s.Strings("10.1.2.0/24", "4.3.2.0/28"),
    38  	)
    39  }
    40  
    41  func (s *UpdateSuite) TestRunWhenSpacesAPIFails(c *gc.C) {
    42  	s.api.SetErrors(errors.New("boom"))
    43  
    44  	s.AssertRunFails(c,
    45  		`cannot update space "foo": boom`,
    46  		"foo", "10.1.2.0/24",
    47  	)
    48  
    49  	s.api.CheckCallNames(c, "UpdateSpace", "Close")
    50  	s.api.CheckCall(c, 0, "UpdateSpace", "foo", s.Strings("10.1.2.0/24"))
    51  }
    52  
    53  func (s *UpdateSuite) TestRunAPIConnectFails(c *gc.C) {
    54  	s.command = space.NewUpdateCommand(nil)
    55  	s.AssertRunFails(c,
    56  		"cannot connect to the API server: no environment specified",
    57  		"myname", "10.0.0.0/8", // Drop the args once RunWitnAPI is called internally.
    58  	)
    59  	// No API calls recoreded.
    60  	s.api.CheckCallNames(c)
    61  }