github.com/altoros/juju-vmware@v0.0.0-20150312064031-f19ae857ccca/api/metricsmanager/client_test.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package metricsmanager_test 5 6 import ( 7 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 10 "github.com/juju/juju/api/metricsmanager" 11 "github.com/juju/juju/apiserver/common" 12 "github.com/juju/juju/apiserver/params" 13 jujutesting "github.com/juju/juju/juju/testing" 14 ) 15 16 type metricsManagerSuite struct { 17 jujutesting.JujuConnSuite 18 19 manager *metricsmanager.Client 20 } 21 22 var _ = gc.Suite(&metricsManagerSuite{}) 23 24 func (s *metricsManagerSuite) SetUpTest(c *gc.C) { 25 s.JujuConnSuite.SetUpTest(c) 26 s.manager = metricsmanager.NewClient(s.APIState) 27 c.Assert(s.manager, gc.NotNil) 28 } 29 30 func (s *metricsManagerSuite) TestCleanupOldMetrics(c *gc.C) { 31 var called bool 32 metricsmanager.PatchFacadeCall(s, s.manager, func(request string, args, response interface{}) error { 33 called = true 34 c.Assert(request, gc.Equals, "CleanupOldMetrics") 35 result := response.(*params.ErrorResults) 36 result.Results = make([]params.ErrorResult, 1) 37 return nil 38 }) 39 err := s.manager.CleanupOldMetrics() 40 c.Assert(err, jc.ErrorIsNil) 41 c.Assert(called, jc.IsTrue) 42 } 43 44 func (s *metricsManagerSuite) TestSendMetrics(c *gc.C) { 45 var called bool 46 metricsmanager.PatchFacadeCall(s, s.manager, func(request string, args, response interface{}) error { 47 called = true 48 c.Assert(request, gc.Equals, "SendMetrics") 49 result := response.(*params.ErrorResults) 50 result.Results = make([]params.ErrorResult, 1) 51 return nil 52 }) 53 err := s.manager.SendMetrics() 54 c.Assert(err, jc.ErrorIsNil) 55 c.Assert(called, jc.IsTrue) 56 } 57 58 func (s *metricsManagerSuite) TestSendMetricsFails(c *gc.C) { 59 var called bool 60 metricsmanager.PatchFacadeCall(s, s.manager, func(request string, args, response interface{}) error { 61 called = true 62 c.Assert(request, gc.Equals, "SendMetrics") 63 result := response.(*params.ErrorResults) 64 result.Results = make([]params.ErrorResult, 1) 65 result.Results[0].Error = common.ServerError(common.ErrPerm) 66 return result.OneError() 67 }) 68 err := s.manager.SendMetrics() 69 c.Assert(err, gc.ErrorMatches, "permission denied") 70 c.Assert(called, jc.IsTrue) 71 }