~sidnei/juju-core/lxc-clone-with-overlayfs

« back to all changes in this revision

Viewing changes to worker/uniter/state_test.go

  • Committer: Sidnei da Silva
  • Date: 2013-10-21 18:33:07 UTC
  • mfrom: (1667.1.329 juju-core)
  • Revision ID: sidnei.da.silva@canonical.com-20131021183307-fylyr68s4gtbxr08
- Merge from trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
package uniter_test
5
5
 
6
6
import (
7
 
        . "launchpad.net/gocheck"
 
7
        "path/filepath"
 
8
 
 
9
        gc "launchpad.net/gocheck"
 
10
 
8
11
        "launchpad.net/juju-core/charm"
9
12
        "launchpad.net/juju-core/charm/hooks"
10
13
        "launchpad.net/juju-core/utils"
11
14
        "launchpad.net/juju-core/worker/uniter"
12
15
        "launchpad.net/juju-core/worker/uniter/hook"
13
 
        "path/filepath"
14
16
)
15
17
 
16
18
type StateFileSuite struct{}
17
19
 
18
 
var _ = Suite(&StateFileSuite{})
 
20
var _ = gc.Suite(&StateFileSuite{})
19
21
 
20
 
var stcurl = charm.MustParseURL("cs:series/service-name-123")
 
22
var stcurl = charm.MustParseURL("cs:quantal/service-name-123")
21
23
var relhook = &hook.Info{
22
24
        Kind:       hooks.RelationJoined,
23
25
        RemoteUnit: "some-thing/123",
24
 
        Members: map[string]map[string]interface{}{
25
 
                "blah/0": {"cheese": "gouda"},
26
 
        },
27
26
}
28
27
 
29
28
var stateTests = []struct {
144
143
        },
145
144
}
146
145
 
147
 
func (s *StateFileSuite) TestStates(c *C) {
 
146
func (s *StateFileSuite) TestStates(c *gc.C) {
148
147
        for i, t := range stateTests {
149
148
                c.Logf("test %d", i)
150
149
                path := filepath.Join(c.MkDir(), "uniter")
151
150
                file := uniter.NewStateFile(path)
152
151
                _, err := file.Read()
153
 
                c.Assert(err, Equals, uniter.ErrNoStateFile)
 
152
                c.Assert(err, gc.Equals, uniter.ErrNoStateFile)
154
153
                write := func() {
155
154
                        err := file.Write(t.st.Started, t.st.Op, t.st.OpStep, t.st.Hook, t.st.CharmURL)
156
 
                        c.Assert(err, IsNil)
 
155
                        c.Assert(err, gc.IsNil)
157
156
                }
158
157
                if t.err != "" {
159
 
                        c.Assert(write, PanicMatches, "invalid uniter state: "+t.err)
 
158
                        c.Assert(write, gc.PanicMatches, "invalid uniter state: "+t.err)
160
159
                        err := utils.WriteYaml(path, &t.st)
161
 
                        c.Assert(err, IsNil)
 
160
                        c.Assert(err, gc.IsNil)
162
161
                        _, err = file.Read()
163
 
                        c.Assert(err, ErrorMatches, "cannot read charm state at .*: invalid uniter state: "+t.err)
 
162
                        c.Assert(err, gc.ErrorMatches, "cannot read charm state at .*: invalid uniter state: "+t.err)
164
163
                        continue
165
164
                }
166
165
                write()
167
166
                st, err := file.Read()
168
 
                c.Assert(err, IsNil)
169
 
                if st.Hook != nil {
170
 
                        c.Assert(st.Hook.Members, HasLen, 0)
171
 
                        st.Hook.Members = t.st.Hook.Members
172
 
                }
173
 
                c.Assert(*st, DeepEquals, t.st)
 
167
                c.Assert(err, gc.IsNil)
 
168
                c.Assert(*st, gc.DeepEquals, t.st)
174
169
        }
175
170
}