github.com/mattyw/juju@v0.0.0-20140610034352-732aecd63861/state/api/charmrevisionupdater/updater_test.go (about) 1 // Copyright 2013 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package charmrevisionupdater_test 5 6 import ( 7 "github.com/juju/utils" 8 gc "launchpad.net/gocheck" 9 10 "github.com/juju/juju/charm" 11 jujutesting "github.com/juju/juju/juju/testing" 12 "github.com/juju/juju/state" 13 "github.com/juju/juju/state/api/charmrevisionupdater" 14 "github.com/juju/juju/state/apiserver/charmrevisionupdater/testing" 15 ) 16 17 type versionUpdaterSuite struct { 18 jujutesting.JujuConnSuite 19 testing.CharmSuite 20 21 updater *charmrevisionupdater.State 22 } 23 24 var _ = gc.Suite(&versionUpdaterSuite{}) 25 26 func (s *versionUpdaterSuite) SetUpSuite(c *gc.C) { 27 s.JujuConnSuite.SetUpSuite(c) 28 s.CharmSuite.SetUpSuite(c, &s.JujuConnSuite) 29 } 30 31 func (s *versionUpdaterSuite) TearDownSuite(c *gc.C) { 32 s.CharmSuite.TearDownSuite(c) 33 s.JujuConnSuite.TearDownSuite(c) 34 } 35 36 func (s *versionUpdaterSuite) SetUpTest(c *gc.C) { 37 s.JujuConnSuite.SetUpTest(c) 38 s.CharmSuite.SetUpTest(c) 39 40 machine, err := s.State.AddMachine("quantal", state.JobManageEnviron) 41 c.Assert(err, gc.IsNil) 42 password, err := utils.RandomPassword() 43 c.Assert(err, gc.IsNil) 44 err = machine.SetPassword(password) 45 c.Assert(err, gc.IsNil) 46 err = machine.SetProvisioned("i-manager", "fake_nonce", nil) 47 c.Assert(err, gc.IsNil) 48 st := s.OpenAPIAsMachine(c, machine.Tag(), password, "fake_nonce") 49 c.Assert(st, gc.NotNil) 50 51 s.updater = charmrevisionupdater.NewState(st) 52 c.Assert(s.updater, gc.NotNil) 53 } 54 55 func (s *versionUpdaterSuite) TearDownTest(c *gc.C) { 56 s.CharmSuite.TearDownTest(c) 57 s.JujuConnSuite.TearDownTest(c) 58 } 59 60 func (s *versionUpdaterSuite) TestUpdateRevisions(c *gc.C) { 61 s.SetupScenario(c) 62 err := s.updater.UpdateLatestRevisions() 63 c.Assert(err, gc.IsNil) 64 65 curl := charm.MustParseURL("cs:quantal/mysql") 66 pending, err := s.State.LatestPlaceholderCharm(curl) 67 c.Assert(err, gc.IsNil) 68 c.Assert(pending.String(), gc.Equals, "cs:quantal/mysql-23") 69 }