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  }