github.com/cloudbase/juju-core@v0.0.0-20140504232958-a7271ac7912f/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 gc "launchpad.net/gocheck" 8 9 "launchpad.net/juju-core/charm" 10 "launchpad.net/juju-core/state" 11 "launchpad.net/juju-core/state/api/charmrevisionupdater" 12 "launchpad.net/juju-core/state/apiserver/charmrevisionupdater/testing" 13 "launchpad.net/juju-core/utils" 14 ) 15 16 type versionUpdaterSuite struct { 17 testing.CharmSuite 18 19 updater *charmrevisionupdater.State 20 } 21 22 var _ = gc.Suite(&versionUpdaterSuite{}) 23 24 func (s *versionUpdaterSuite) SetUpTest(c *gc.C) { 25 s.CharmSuite.SetUpTest(c) 26 27 machine, err := s.State.AddMachine("quantal", state.JobManageEnviron) 28 c.Assert(err, gc.IsNil) 29 password, err := utils.RandomPassword() 30 c.Assert(err, gc.IsNil) 31 err = machine.SetPassword(password) 32 c.Assert(err, gc.IsNil) 33 err = machine.SetProvisioned("i-manager", "fake_nonce", nil) 34 c.Assert(err, gc.IsNil) 35 st := s.OpenAPIAsMachine(c, machine.Tag(), password, "fake_nonce") 36 c.Assert(st, gc.NotNil) 37 38 s.updater = charmrevisionupdater.NewState(st) 39 c.Assert(s.updater, gc.NotNil) 40 } 41 42 func (s *versionUpdaterSuite) TestUpdateRevisions(c *gc.C) { 43 s.SetupScenario(c) 44 err := s.updater.UpdateLatestRevisions() 45 c.Assert(err, gc.IsNil) 46 47 curl := charm.MustParseURL("cs:quantal/mysql") 48 pending, err := s.State.LatestPlaceholderCharm(curl) 49 c.Assert(err, gc.IsNil) 50 c.Assert(pending.String(), gc.Equals, "cs:quantal/mysql-23") 51 }