github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/apiserver/observer/metricobserver/config_test.go (about)

     1  // Copyright 2016 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package metricobserver_test
     5  
     6  import (
     7  	"github.com/golang/mock/gomock"
     8  	"github.com/juju/clock"
     9  	"github.com/juju/testing"
    10  	jc "github.com/juju/testing/checkers"
    11  	gc "gopkg.in/check.v1"
    12  
    13  	"github.com/juju/juju/apiserver/observer/metricobserver"
    14  	"github.com/juju/juju/apiserver/observer/metricobserver/mocks"
    15  )
    16  
    17  type configSuite struct {
    18  	testing.IsolationSuite
    19  }
    20  
    21  var _ = gc.Suite(&configSuite{})
    22  
    23  func (*configSuite) TestValidateValid(c *gc.C) {
    24  	ctrl := gomock.NewController(c)
    25  	defer ctrl.Finish()
    26  
    27  	metricsCollector := mocks.NewMockMetricsCollector(ctrl)
    28  
    29  	cfg := metricobserver.Config{
    30  		Clock:            clock.WallClock,
    31  		MetricsCollector: metricsCollector,
    32  	}
    33  	err := cfg.Validate()
    34  	c.Assert(err, jc.ErrorIsNil)
    35  }
    36  
    37  func (*configSuite) TestValidateInvalid(c *gc.C) {
    38  	assertConfigInvalid(c, metricobserver.Config{}, "nil Clock not valid")
    39  	assertConfigInvalid(c, metricobserver.Config{
    40  		Clock: clock.WallClock,
    41  	}, "nil MetricsCollector not valid")
    42  }
    43  
    44  func assertConfigInvalid(c *gc.C, cfg metricobserver.Config, expect string) {
    45  	err := cfg.Validate()
    46  	c.Assert(err, gc.ErrorMatches, expect)
    47  }