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  }