github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/apiserver/observer/metricobserver/observerfactory_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 "time" 8 9 "github.com/golang/mock/gomock" 10 "github.com/juju/clock/testclock" 11 "github.com/juju/testing" 12 jc "github.com/juju/testing/checkers" 13 "github.com/prometheus/client_golang/prometheus" 14 gc "gopkg.in/check.v1" 15 16 "github.com/juju/juju/apiserver/observer/metricobserver" 17 ) 18 19 type observerFactorySuite struct { 20 testing.IsolationSuite 21 clock *testclock.Clock 22 } 23 24 var _ = gc.Suite(&observerFactorySuite{}) 25 26 func (s *observerFactorySuite) SetUpTest(c *gc.C) { 27 s.IsolationSuite.SetUpTest(c) 28 s.clock = testclock.NewClock(time.Time{}) 29 } 30 31 func (*observerFactorySuite) TestNewObserverFactoryInvalidConfig(c *gc.C) { 32 _, err := metricobserver.NewObserverFactory(metricobserver.Config{}) 33 c.Assert(err, gc.ErrorMatches, "validating config: nil Clock not valid") 34 } 35 36 func (s *observerFactorySuite) TestNewObserverFactoryRegister(c *gc.C) { 37 metricsCollector, finish := createMockMetrics(c, gomock.AssignableToTypeOf(prometheus.Labels{})) 38 defer finish() 39 40 f, err := metricobserver.NewObserverFactory(metricobserver.Config{ 41 Clock: s.clock, 42 MetricsCollector: metricsCollector, 43 }) 44 c.Assert(err, jc.ErrorIsNil) 45 c.Assert(f, gc.NotNil) 46 }