change task mutex to monitor and synchronize move method
[god.git] / test / test_trigger.rb
blobb8fbf80bff4b2b02c5f8f80acf91597eb0cda3c4
1 require File.dirname(__FILE__) + '/helper'
3 class TestTrigger < Test::Unit::TestCase
4   def setup
5     Trigger.reset
6   end
7   
8   # base case
9   
10   def test_should_have_empty_triggers
11     assert_equal [], Trigger.triggers
12   end
13   
14   # register
15   
16   def test_register_should_add_condition_to_triggers
17     c = Condition.new
18     Trigger.register(c)
19     
20     assert_equal [c], Trigger.triggers
21   end
22   
23   # deregister
24   
25   def test_deregister_should_remove_condition_from_triggers
26     c = Condition.new
27     Trigger.register(c)
28     Trigger.deregister(c)
29     
30     assert_equal [], Trigger.triggers
31   end
32   
33   # broadcast
34   
35   def test_broadcast_should_call_process_on_each_condition
36     c = Condition.new
37     Trigger.register(c)
38     
39     c.expects(:process).with(:state_change, [:up, :start])
40     
41     Trigger.broadcast(:state_change, [:up, :start])
42   end
43 end