github.com/mattyw/juju@v0.0.0-20140610034352-732aecd63861/cmd/juju/unexpose_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  	"github.com/juju/juju/charm"
    10  	charmtesting "github.com/juju/juju/charm/testing"
    11  	"github.com/juju/juju/cmd/envcmd"
    12  	jujutesting "github.com/juju/juju/juju/testing"
    13  	"github.com/juju/juju/testing"
    14  )
    15  
    16  type UnexposeSuite struct {
    17  	jujutesting.RepoSuite
    18  }
    19  
    20  var _ = gc.Suite(&UnexposeSuite{})
    21  
    22  func runUnexpose(c *gc.C, args ...string) error {
    23  	_, err := testing.RunCommand(c, envcmd.Wrap(&UnexposeCommand{}), args...)
    24  	return err
    25  }
    26  
    27  func (s *UnexposeSuite) assertExposed(c *gc.C, service string, expected bool) {
    28  	svc, err := s.State.Service(service)
    29  	c.Assert(err, gc.IsNil)
    30  	actual := svc.IsExposed()
    31  	c.Assert(actual, gc.Equals, expected)
    32  }
    33  
    34  func (s *UnexposeSuite) TestUnexpose(c *gc.C) {
    35  	charmtesting.Charms.BundlePath(s.SeriesPath, "dummy")
    36  	err := runDeploy(c, "local:dummy", "some-service-name")
    37  	c.Assert(err, gc.IsNil)
    38  	curl := charm.MustParseURL("local:precise/dummy-1")
    39  	s.AssertService(c, "some-service-name", curl, 1, 0)
    40  
    41  	err = runExpose(c, "some-service-name")
    42  	c.Assert(err, gc.IsNil)
    43  	s.assertExposed(c, "some-service-name", true)
    44  
    45  	err = runUnexpose(c, "some-service-name")
    46  	c.Assert(err, gc.IsNil)
    47  	s.assertExposed(c, "some-service-name", false)
    48  
    49  	err = runUnexpose(c, "nonexistent-service")
    50  	c.Assert(err, gc.ErrorMatches, `service "nonexistent-service" not found`)
    51  }