~ubuntu-branches/ubuntu/trusty/juju-core/trusty-proposed

« back to all changes in this revision

Viewing changes to src/launchpad.net/juju-core/store/store_test.go

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2014-01-29 11:40:20 UTC
  • mfrom: (23.1.1 trusty-proposed)
  • Revision ID: package-import@ubuntu.com-20140129114020-ejieitm8smtt5vln
Tags: 1.17.1-0ubuntu2
d/tests/local-provider: Don't fail tests if ~/.juju is present as its
created by the juju version command. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
149
149
        }
150
150
}
151
151
 
 
152
func (s *StoreSuite) TestDeleteCharm(c *gc.C) {
 
153
        url := charm.MustParseURL("cs:oneiric/wordpress")
 
154
        for i := 0; i < 4; i++ {
 
155
                pub, err := s.store.CharmPublisher([]*charm.URL{url},
 
156
                        fmt.Sprintf("some-digest-%d", i))
 
157
                c.Assert(err, gc.IsNil)
 
158
                c.Assert(pub.Revision(), gc.Equals, i)
 
159
 
 
160
                err = pub.Publish(testing.Charms.ClonedDir(c.MkDir(), "dummy"))
 
161
                c.Assert(err, gc.IsNil)
 
162
        }
 
163
 
 
164
        // Verify charms were published
 
165
        info, rc, err := s.store.OpenCharm(url)
 
166
        c.Assert(err, gc.IsNil)
 
167
        err = rc.Close()
 
168
        c.Assert(err, gc.IsNil)
 
169
        c.Assert(info.Revision(), gc.Equals, 3)
 
170
 
 
171
        // Delete an arbitrary middle revision
 
172
        url1 := url.WithRevision(1)
 
173
        infos, err := s.store.DeleteCharm(url1)
 
174
        c.Assert(err, gc.IsNil)
 
175
        c.Assert(len(infos), gc.Equals, 1)
 
176
 
 
177
        // Verify still published
 
178
        info, rc, err = s.store.OpenCharm(url)
 
179
        c.Assert(err, gc.IsNil)
 
180
        err = rc.Close()
 
181
        c.Assert(err, gc.IsNil)
 
182
        c.Assert(info.Revision(), gc.Equals, 3)
 
183
 
 
184
        // Delete all revisions
 
185
        expectedRevs := map[int]bool{0: true, 2: true, 3: true}
 
186
        infos, err = s.store.DeleteCharm(url)
 
187
        c.Assert(err, gc.IsNil)
 
188
        c.Assert(len(infos), gc.Equals, 3)
 
189
        for _, deleted := range infos {
 
190
                // We deleted the charm we expected to
 
191
                c.Assert(info.Meta().Name, gc.Equals, deleted.Meta().Name)
 
192
                _, has := expectedRevs[deleted.Revision()]
 
193
                c.Assert(has, gc.Equals, true)
 
194
                delete(expectedRevs, deleted.Revision())
 
195
        }
 
196
        c.Assert(len(expectedRevs), gc.Equals, 0)
 
197
 
 
198
        // The charm is all gone
 
199
        _, _, err = s.store.OpenCharm(url)
 
200
        c.Assert(err, gc.Not(gc.IsNil))
 
201
}
 
202
 
152
203
func (s *StoreSuite) TestCharmPublishError(c *gc.C) {
153
204
        url := charm.MustParseURL("cs:oneiric/wordpress")
154
205
        urls := []*charm.URL{url}