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 }