github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/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 manager, err := metricsmanager.NewClient(s.APIState) 27 c.Assert(err, jc.ErrorIsNil) 28 c.Assert(manager, gc.NotNil) 29 s.manager = manager 30 } 31 32 func (s *metricsManagerSuite) TestCleanupOldMetrics(c *gc.C) { 33 var called bool 34 metricsmanager.PatchFacadeCall(s, s.manager, func(request string, args, response interface{}) error { 35 called = true 36 c.Assert(request, gc.Equals, "CleanupOldMetrics") 37 result := response.(*params.ErrorResults) 38 result.Results = make([]params.ErrorResult, 1) 39 return nil 40 }) 41 err := s.manager.CleanupOldMetrics() 42 c.Assert(err, jc.ErrorIsNil) 43 c.Assert(called, jc.IsTrue) 44 } 45 46 func (s *metricsManagerSuite) TestSendMetrics(c *gc.C) { 47 var called bool 48 metricsmanager.PatchFacadeCall(s, s.manager, func(request string, args, response interface{}) error { 49 called = true 50 c.Assert(request, gc.Equals, "SendMetrics") 51 result := response.(*params.ErrorResults) 52 result.Results = make([]params.ErrorResult, 1) 53 return nil 54 }) 55 err := s.manager.SendMetrics() 56 c.Assert(err, jc.ErrorIsNil) 57 c.Assert(called, jc.IsTrue) 58 } 59 60 func (s *metricsManagerSuite) TestSendMetricsFails(c *gc.C) { 61 var called bool 62 metricsmanager.PatchFacadeCall(s, s.manager, func(request string, args, response interface{}) error { 63 called = true 64 c.Assert(request, gc.Equals, "SendMetrics") 65 result := response.(*params.ErrorResults) 66 result.Results = make([]params.ErrorResult, 1) 67 result.Results[0].Error = common.ServerError(common.ErrPerm) 68 return result.OneError() 69 }) 70 err := s.manager.SendMetrics() 71 c.Assert(err, gc.ErrorMatches, "permission denied") 72 c.Assert(called, jc.IsTrue) 73 }