github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/worker/uniter/hook/listsource_test.go (about) 1 // Copyright 2012-2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package hook_test 5 6 import ( 7 jc "github.com/juju/testing/checkers" 8 gc "gopkg.in/check.v1" 9 "gopkg.in/juju/charm.v6-unstable/hooks" 10 11 "github.com/juju/juju/worker/uniter/hook" 12 "github.com/juju/juju/worker/uniter/hook/hooktesting" 13 ) 14 15 type ListSourceSuite struct{} 16 17 var _ = gc.Suite(&ListSourceSuite{}) 18 19 func (s *ListSourceSuite) TestNoUpdates(c *gc.C) { 20 source := hook.NewListSource(hooktesting.HookList(hooks.Start, hooks.Stop)) 21 c.Check(source.Changes(), gc.IsNil) 22 23 ch := source.Changes() 24 c.Check(ch, gc.IsNil) 25 26 err := source.Stop() 27 c.Check(err, jc.ErrorIsNil) 28 } 29 30 func (s *ListSourceSuite) TestQueue(c *gc.C) { 31 for i, test := range [][]hook.Info{ 32 hooktesting.HookList(), 33 hooktesting.HookList(hooks.Install, hooks.Install), 34 hooktesting.HookList(hooks.Stop, hooks.Start, hooks.Stop), 35 } { 36 c.Logf("test %d: %v", i, test) 37 source := hook.NewListSource(test) 38 for _, expect := range test { 39 c.Check(source.Empty(), jc.IsFalse) 40 c.Check(source.Next(), gc.DeepEquals, expect) 41 source.Pop() 42 } 43 c.Check(source.Empty(), jc.IsTrue) 44 c.Check(source.Next, gc.PanicMatches, "Source is empty") 45 c.Check(source.Pop, gc.PanicMatches, "Source is empty") 46 } 47 }