~rogpeppe/juju-core/438-local-instance-Addresses

« back to all changes in this revision

Viewing changes to provider/common/state_test.go

  • Committer: Tarmac
  • Author(s): William Reade
  • Date: 2013-10-02 10:38:04 UTC
  • mfrom: (1915.1.3 juju-core)
  • Revision ID: tarmac-20131002103804-zxlnv7ik17unxc3p
[r=fwereade] provider/common: Destroy, and tests

Added a common implementation of Destroy, and tests for Bootstrap which had
somehow never been written. Also drive-by removed the machineId arg from
consideration when bootstrapping, because, WTF... a non-0 bootstrap machine
would break *everything*.

https://codereview.appspot.com/14254043/

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 
27
27
var _ = gc.Suite(&StateSuite{})
28
28
 
29
 
// makeDummyStorage creates a local storage.
30
 
func (suite *StateSuite) makeDummyStorage(c *gc.C) storage.Storage {
 
29
type cleaner interface {
 
30
        AddCleanup(testbase.CleanupFunc)
 
31
}
 
32
 
 
33
func newStorage(suite cleaner, c *gc.C) storage.Storage {
31
34
        closer, stor, _ := envtesting.CreateLocalTestStorage(c)
32
35
        suite.AddCleanup(func(*gc.C) { closer.Close() })
33
36
        return stor
34
37
}
35
38
 
36
39
func (suite *StateSuite) TestCreateStateFileWritesEmptyStateFile(c *gc.C) {
37
 
        stor := suite.makeDummyStorage(c)
 
40
        stor := newStorage(suite, c)
38
41
 
39
42
        url, err := common.CreateStateFile(stor)
40
43
        c.Assert(err, gc.IsNil)
51
54
}
52
55
 
53
56
func (suite *StateSuite) TestSaveStateWritesStateFile(c *gc.C) {
54
 
        stor := suite.makeDummyStorage(c)
 
57
        stor := newStorage(suite, c)
55
58
        arch := "amd64"
56
59
        state := common.BootstrapState{
57
60
                StateInstances:  []instance.Id{instance.Id("an-instance-id")},
82
85
}
83
86
 
84
87
func (suite *StateSuite) TestLoadStateReadsStateFile(c *gc.C) {
85
 
        storage := suite.makeDummyStorage(c)
 
88
        storage := newStorage(suite, c)
86
89
        state := suite.setUpSavedState(c, storage)
87
90
        storedState, err := common.LoadState(storage)
88
91
        c.Assert(err, gc.IsNil)
90
93
}
91
94
 
92
95
func (suite *StateSuite) TestLoadStateFromURLReadsStateFile(c *gc.C) {
93
 
        stor := suite.makeDummyStorage(c)
 
96
        stor := newStorage(suite, c)
94
97
        state := suite.setUpSavedState(c, stor)
95
98
        url, err := stor.URL(common.StateFile)
96
99
        c.Assert(err, gc.IsNil)
100
103
}
101
104
 
102
105
func (suite *StateSuite) TestLoadStateMissingFile(c *gc.C) {
103
 
        stor := suite.makeDummyStorage(c)
 
106
        stor := newStorage(suite, c)
104
107
        _, err := common.LoadState(stor)
105
108
        c.Check(err, gc.Equals, environs.ErrNotBootstrapped)
106
109
}
107
110
 
108
111
func (suite *StateSuite) TestLoadStateIntegratesWithSaveState(c *gc.C) {
109
 
        storage := suite.makeDummyStorage(c)
 
112
        storage := newStorage(suite, c)
110
113
        arch := "amd64"
111
114
        state := common.BootstrapState{
112
115
                StateInstances:  []instance.Id{instance.Id("an-instance-id")},