github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/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  	jc "github.com/juju/testing/checkers"
     8  	"github.com/juju/utils"
     9  	gc "gopkg.in/check.v1"
    10  	"gopkg.in/juju/charm.v6-unstable"
    11  
    12  	"github.com/juju/juju/api/charmrevisionupdater"
    13  	"github.com/juju/juju/apiserver/charmrevisionupdater/testing"
    14  	jujutesting "github.com/juju/juju/juju/testing"
    15  	"github.com/juju/juju/state"
    16  )
    17  
    18  type versionUpdaterSuite struct {
    19  	jujutesting.JujuConnSuite
    20  	testing.CharmSuite
    21  
    22  	updater *charmrevisionupdater.State
    23  }
    24  
    25  var _ = gc.Suite(&versionUpdaterSuite{})
    26  
    27  func (s *versionUpdaterSuite) SetUpSuite(c *gc.C) {
    28  	s.JujuConnSuite.SetUpSuite(c)
    29  	s.CharmSuite.SetUpSuite(c, &s.JujuConnSuite)
    30  }
    31  
    32  func (s *versionUpdaterSuite) TearDownSuite(c *gc.C) {
    33  	s.CharmSuite.TearDownSuite(c)
    34  	s.JujuConnSuite.TearDownSuite(c)
    35  }
    36  
    37  func (s *versionUpdaterSuite) SetUpTest(c *gc.C) {
    38  	s.JujuConnSuite.SetUpTest(c)
    39  	s.CharmSuite.SetUpTest(c)
    40  
    41  	machine, err := s.State.AddMachine("quantal", state.JobManageModel)
    42  	c.Assert(err, jc.ErrorIsNil)
    43  	password, err := utils.RandomPassword()
    44  	c.Assert(err, jc.ErrorIsNil)
    45  	err = machine.SetPassword(password)
    46  	c.Assert(err, jc.ErrorIsNil)
    47  	err = machine.SetProvisioned("i-manager", "fake_nonce", nil)
    48  	c.Assert(err, jc.ErrorIsNil)
    49  	st := s.OpenAPIAsMachine(c, machine.Tag(), password, "fake_nonce")
    50  	c.Assert(st, gc.NotNil)
    51  
    52  	s.updater = charmrevisionupdater.NewState(st)
    53  	c.Assert(s.updater, gc.NotNil)
    54  }
    55  
    56  func (s *versionUpdaterSuite) TearDownTest(c *gc.C) {
    57  	s.CharmSuite.TearDownTest(c)
    58  	s.JujuConnSuite.TearDownTest(c)
    59  }
    60  
    61  func (s *versionUpdaterSuite) TestUpdateRevisions(c *gc.C) {
    62  	s.SetupScenario(c)
    63  	err := s.updater.UpdateLatestRevisions()
    64  	c.Assert(err, jc.ErrorIsNil)
    65  
    66  	curl := charm.MustParseURL("cs:quantal/mysql")
    67  	pending, err := s.State.LatestPlaceholderCharm(curl)
    68  	c.Assert(err, jc.ErrorIsNil)
    69  	c.Assert(pending.String(), gc.Equals, "cs:quantal/mysql-23")
    70  }