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  }