~juju-qa/ubuntu/yakkety/juju/2.0-rc3-again

« back to all changes in this revision

Viewing changes to src/launchpad.net/juju-core/state/statecmd/addunit_test.go

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2013-04-24 22:34:47 UTC
  • Revision ID: package-import@ubuntu.com-20130424223447-f0qdji7ubnyo0s71
Tags: upstream-1.10.0.1
ImportĀ upstreamĀ versionĀ 1.10.0.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package statecmd_test
 
2
 
 
3
import (
 
4
        . "launchpad.net/gocheck"
 
5
        "launchpad.net/juju-core/juju/testing"
 
6
        "launchpad.net/juju-core/state/api/params"
 
7
        "launchpad.net/juju-core/state/statecmd"
 
8
)
 
9
 
 
10
type AddUnitsSuite struct {
 
11
        testing.JujuConnSuite
 
12
}
 
13
 
 
14
var _ = Suite(&AddUnitsSuite{})
 
15
 
 
16
var addUnitsTests = []struct {
 
17
        about         string
 
18
        service       string
 
19
        numUnits      int
 
20
        err           string
 
21
        expectedUnits int
 
22
}{
 
23
        {
 
24
                about:    "unknown service name",
 
25
                service:  "unknown-service",
 
26
                numUnits: 1,
 
27
                err:      `service "unknown-service" not found`,
 
28
        },
 
29
        {
 
30
                about:    "add zero units",
 
31
                service:  "dummy-service",
 
32
                numUnits: 0,
 
33
                err:      "must add at least one unit",
 
34
        },
 
35
        {
 
36
                about:         "add one unit",
 
37
                service:       "dummy-service",
 
38
                numUnits:      1,
 
39
                expectedUnits: 1,
 
40
        },
 
41
        {
 
42
                about:         "add multiple units",
 
43
                service:       "dummy-service",
 
44
                numUnits:      5,
 
45
                expectedUnits: 6,
 
46
        },
 
47
}
 
48
 
 
49
func (s *AddUnitsSuite) TestAddServiceUnits(c *C) {
 
50
        charm := s.AddTestingCharm(c, "dummy")
 
51
        svc, err := s.State.AddService("dummy-service", charm)
 
52
        c.Assert(err, IsNil)
 
53
 
 
54
        for i, t := range addUnitsTests {
 
55
                c.Logf("test %d. %s", i, t.about)
 
56
                units, err := statecmd.AddServiceUnits(s.State, params.AddServiceUnits{
 
57
                        ServiceName: t.service,
 
58
                        NumUnits:    t.numUnits,
 
59
                })
 
60
                if t.err != "" {
 
61
                        c.Assert(err, ErrorMatches, t.err)
 
62
                } else {
 
63
                        c.Assert(err, IsNil)
 
64
                        c.Assert(units, HasLen, t.numUnits)
 
65
                        for _, unit := range units {
 
66
                                c.Assert(unit.ServiceName(), Equals, t.service)
 
67
                        }
 
68
                        service, err := s.State.Service(t.service)
 
69
                        c.Assert(err, IsNil)
 
70
                        unitCount, err := service.AllUnits()
 
71
                        c.Assert(err, IsNil)
 
72
                        c.Assert(len(unitCount), Equals, t.expectedUnits)
 
73
                }
 
74
        }
 
75
 
 
76
        err = svc.Destroy()
 
77
        c.Assert(err, IsNil)
 
78
}