4
. "launchpad.net/gocheck"
5
"launchpad.net/juju-core/juju/testing"
6
"launchpad.net/juju-core/state"
7
"launchpad.net/juju-core/state/api/params"
8
"launchpad.net/juju-core/state/statecmd"
11
type ExposeSuite struct {
15
var _ = Suite(&ExposeSuite{})
17
var serviceExposeTests = []struct {
24
about: "unknown service name",
25
service: "unknown-service",
26
err: `service "unknown-service" not found`,
29
about: "expose a service",
30
service: "dummy-service",
34
about: "expose an already exposed service",
35
service: "exposed-service",
40
func (s *ExposeSuite) TestServiceExpose(c *C) {
41
charm := s.AddTestingCharm(c, "dummy")
42
serviceNames := []string{"dummy-service", "exposed-service"}
43
svcs := make([]*state.Service, len(serviceNames))
45
for i, name := range serviceNames {
46
svcs[i], err = s.State.AddService(name, charm)
48
c.Assert(svcs[i].IsExposed(), Equals, false)
50
err = svcs[1].SetExposed()
52
c.Assert(svcs[1].IsExposed(), Equals, true)
54
for i, t := range serviceExposeTests {
55
c.Logf("test %d. %s", i, t.about)
56
err = statecmd.ServiceExpose(s.State, params.ServiceExpose{
57
ServiceName: t.service,
60
c.Assert(err, ErrorMatches, t.err)
63
service, err := s.State.Service(t.service)
65
c.Assert(service.IsExposed(), Equals, t.exposed)
69
for _, s := range svcs {