github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/api/charms/client_test.go (about)

     1  // Copyright 2015 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package charms_test
     5  
     6  import (
     7  	jc "github.com/juju/testing/checkers"
     8  	gc "gopkg.in/check.v1"
     9  
    10  	basetesting "github.com/juju/juju/api/base/testing"
    11  	"github.com/juju/juju/api/charms"
    12  	"github.com/juju/juju/apiserver/params"
    13  	coretesting "github.com/juju/juju/testing"
    14  )
    15  
    16  type charmsMockSuite struct {
    17  	coretesting.BaseSuite
    18  	charmsClient *charms.Client
    19  }
    20  
    21  //TODO (mattyw) There are just mock tests in here. We need real tests for each api call.
    22  
    23  var _ = gc.Suite(&charmsMockSuite{})
    24  
    25  func (s *charmsMockSuite) TestIsMeteredFalse(c *gc.C) {
    26  	var called bool
    27  	curl := "local:quantal/dummy-1"
    28  	apiCaller := basetesting.APICallerFunc(
    29  		func(objType string,
    30  			version int,
    31  			id, request string,
    32  			a, result interface{},
    33  		) error {
    34  			called = true
    35  			c.Check(objType, gc.Equals, "Charms")
    36  			c.Check(id, gc.Equals, "")
    37  			c.Check(request, gc.Equals, "IsMetered")
    38  
    39  			args, ok := a.(params.CharmURL)
    40  			c.Assert(ok, jc.IsTrue)
    41  			c.Assert(args.URL, gc.DeepEquals, curl)
    42  			return nil
    43  		})
    44  	charmsClient := charms.NewClient(apiCaller)
    45  	_, err := charmsClient.IsMetered(curl)
    46  	c.Assert(err, jc.ErrorIsNil)
    47  	c.Assert(called, jc.IsTrue)
    48  }