github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/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 }