github.com/axw/juju@v0.0.0-20161005053422-4bd6544d08d4/worker/metricworker/metricmanager_test.go (about) 1 // Copyright 2014 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package metricworker_test 5 6 import ( 7 "time" 8 9 jc "github.com/juju/testing/checkers" 10 gc "gopkg.in/check.v1" 11 12 coretesting "github.com/juju/juju/testing" 13 "github.com/juju/juju/worker/metricworker" 14 ) 15 16 type MetricManagerSuite struct{} 17 18 var _ = gc.Suite(&MetricManagerSuite{}) 19 20 func (s *MetricManagerSuite) TestRunner(c *gc.C) { 21 notify := make(chan string, 2) 22 var client mockClient 23 _, err := metricworker.NewMetricsManager(&client, notify) 24 c.Assert(err, jc.ErrorIsNil) 25 expectedCalls := map[string]bool{} 26 for i := 0; i < 2; i++ { 27 select { 28 case call := <-notify: 29 expectedCalls[call] = true 30 case <-time.After(coretesting.LongWait): 31 c.Logf("we should have received a notification by now") 32 } 33 } 34 35 c.Check(expectedCalls["senderCalled"], jc.IsTrue) 36 c.Check(expectedCalls["cleanupCalled"], jc.IsTrue) 37 }