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 }