github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/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 "github.com/golang/mock/gomock" 8 jc "github.com/juju/testing/checkers" 9 gc "gopkg.in/check.v1" 10 charm "gopkg.in/juju/charm.v6" 11 12 basemocks "github.com/juju/juju/api/base/mocks" 13 "github.com/juju/juju/api/charms" 14 "github.com/juju/juju/apiserver/params" 15 coretesting "github.com/juju/juju/testing" 16 ) 17 18 type charmsMockSuite struct { 19 coretesting.BaseSuite 20 charmsClient *charms.Client 21 } 22 23 var _ = gc.Suite(&charmsMockSuite{}) 24 25 func (s *charmsMockSuite) TestIsMeteredFalse(c *gc.C) { 26 ctrl := gomock.NewController(c) 27 defer ctrl.Finish() 28 29 mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl) 30 31 url := "local:quantal/dummy-1" 32 args := params.CharmURL{URL: url} 33 metered := new(params.IsMeteredResult) 34 params := params.IsMeteredResult{Metered: true} 35 36 mockFacadeCaller.EXPECT().FacadeCall("IsMetered", args, metered).SetArg(2, params).Return(nil) 37 38 client := charms.NewClientWithFacade(mockFacadeCaller) 39 got, err := client.IsMetered(url) 40 c.Assert(err, gc.IsNil) 41 c.Assert(got, jc.IsTrue) 42 } 43 44 func (s *charmsMockSuite) TestCharmInfo(c *gc.C) { 45 ctrl := gomock.NewController(c) 46 defer ctrl.Finish() 47 48 mockFacadeCaller := basemocks.NewMockFacadeCaller(ctrl) 49 50 url := "local:quantal/dummy-1" 51 args := params.CharmURL{URL: url} 52 info := new(params.CharmInfo) 53 54 params := params.CharmInfo{ 55 Revision: 1, 56 URL: url, 57 Config: map[string]params.CharmOption{ 58 "config": { 59 Type: "type", 60 Description: "config-type option", 61 }, 62 }, 63 LXDProfile: ¶ms.CharmLXDProfile{ 64 Description: "LXDProfile", 65 Devices: map[string]map[string]string{ 66 "tun": { 67 "path": "/dev/net/tun", 68 "type": "unix-char", 69 }, 70 }, 71 }, 72 } 73 74 mockFacadeCaller.EXPECT().FacadeCall("CharmInfo", args, info).SetArg(2, params).Return(nil) 75 76 client := charms.NewClientWithFacade(mockFacadeCaller) 77 got, err := client.CharmInfo(url) 78 c.Assert(err, gc.IsNil) 79 80 want := &charms.CharmInfo{ 81 Revision: 1, 82 URL: url, 83 Config: &charm.Config{ 84 Options: map[string]charm.Option{ 85 "config": { 86 Type: "type", 87 Description: "config-type option", 88 }, 89 }, 90 }, 91 LXDProfile: &charm.LXDProfile{ 92 Description: "LXDProfile", 93 Config: map[string]string{}, 94 Devices: map[string]map[string]string{ 95 "tun": { 96 "path": "/dev/net/tun", 97 "type": "unix-char", 98 }, 99 }, 100 }, 101 } 102 c.Assert(got, gc.DeepEquals, want) 103 }