github.com/mhilton/juju-juju@v0.0.0-20150901100907-a94dd2c73455/featuretests/cloudimagemetadata_test.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package featuretests 5 6 import ( 7 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 10 "github.com/juju/juju/api/imagemetadata" 11 "github.com/juju/juju/apiserver/params" 12 "github.com/juju/juju/juju/testing" 13 "github.com/juju/juju/mongo" 14 ) 15 16 type cloudImageMetadataSuite struct { 17 testing.JujuConnSuite 18 19 client *imagemetadata.Client 20 } 21 22 func (s *cloudImageMetadataSuite) SetUpTest(c *gc.C) { 23 s.JujuConnSuite.SetUpTest(c) 24 25 s.client = imagemetadata.NewClient(s.APIState) 26 c.Assert(s.client, gc.NotNil) 27 } 28 29 func (s *cloudImageMetadataSuite) TearDownTest(c *gc.C) { 30 s.client.ClientFacade.Close() 31 s.JujuConnSuite.TearDownTest(c) 32 } 33 34 func (s *cloudImageMetadataSuite) TestSaveAndFindMetadata(c *gc.C) { 35 metadata, err := s.client.List("", "", nil, nil, "", "") 36 c.Assert(err, gc.ErrorMatches, "matching cloud image metadata not found") 37 c.Assert(metadata, gc.HasLen, 0) 38 39 // check db too 40 conn := s.State.MongoSession() 41 coll, closer := mongo.CollectionFromName(conn.DB("juju"), "cloudimagemetadata") 42 defer closer() 43 44 before, err := coll.Count() 45 c.Assert(err, jc.ErrorIsNil) 46 c.Assert(before == 0, jc.IsTrue) 47 48 m := params.CloudImageMetadata{ 49 Source: "custom", 50 Stream: "stream", 51 Region: "region", 52 Series: "series", 53 Arch: "arch", 54 VirtualType: "virtType", 55 RootStorageType: "rootStorageType", 56 ImageId: "1", 57 } 58 59 errs, err := s.client.Save([]params.CloudImageMetadata{m}) 60 c.Assert(err, jc.ErrorIsNil) 61 c.Assert(errs, gc.HasLen, 1) 62 c.Assert(errs[0].Error, gc.IsNil) 63 64 added, err := s.client.List("", "", nil, nil, "", "") 65 c.Assert(err, jc.ErrorIsNil) 66 c.Assert(added, jc.DeepEquals, []params.CloudImageMetadata{m}) 67 68 // make sure it's in db too 69 after, err := coll.Count() 70 c.Assert(err, jc.ErrorIsNil) 71 c.Assert(after == 1, jc.IsTrue) 72 }