github.com/mwhudson/juju@v0.0.0-20160512215208-90ff01f3497f/apiserver/upgrading_root_test.go (about)

     1  // Copyright 2014 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package apiserver_test
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  	jc "github.com/juju/testing/checkers"
     9  	gc "gopkg.in/check.v1"
    10  
    11  	"github.com/juju/juju/apiserver"
    12  	"github.com/juju/juju/apiserver/params"
    13  	"github.com/juju/juju/testing"
    14  )
    15  
    16  type upgradingRootSuite struct {
    17  	testing.BaseSuite
    18  }
    19  
    20  var _ = gc.Suite(&upgradingRootSuite{})
    21  
    22  func (r *upgradingRootSuite) TestClientMethods(c *gc.C) {
    23  	root := apiserver.TestingUpgradingRoot(nil)
    24  
    25  	for facadeName, methods := range apiserver.AllowedMethodsDuringUpgrades {
    26  		for _, method := range methods.Values() {
    27  			// for now all of the api calls of interest,
    28  			// reside on version 1 of their respective facade.
    29  			caller, err := root.FindMethod(facadeName, 1, method)
    30  			c.Check(err, jc.ErrorIsNil)
    31  			c.Check(caller, gc.NotNil)
    32  		}
    33  	}
    34  }
    35  
    36  func (r *upgradingRootSuite) TestFindDisallowedMethod(c *gc.C) {
    37  	root := apiserver.TestingUpgradingRoot(nil)
    38  
    39  	caller, err := root.FindMethod("Client", 1, "ModelSet")
    40  
    41  	c.Assert(errors.Cause(err), gc.Equals, params.UpgradeInProgressError)
    42  	c.Assert(caller, gc.IsNil)
    43  }
    44  
    45  func (r *upgradingRootSuite) TestFindNonExistentMethod(c *gc.C) {
    46  	root := apiserver.TestingUpgradingRoot(nil)
    47  
    48  	caller, err := root.FindMethod("Foo", 0, "Bar")
    49  
    50  	c.Assert(err, gc.ErrorMatches, "unknown object type \"Foo\"")
    51  	c.Assert(caller, gc.IsNil)
    52  }
    53  
    54  func (r *upgradingRootSuite) TestFindMethodNonExistentVersion(c *gc.C) {
    55  	root := apiserver.TestingUpgradingRoot(nil)
    56  
    57  	caller, err := root.FindMethod("Client", 99999999, "FullStatus")
    58  
    59  	c.Assert(err, gc.ErrorMatches, "unknown version \\(99999999\\) of interface \"Client\"")
    60  	c.Assert(caller, gc.IsNil)
    61  }