1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
require File.dirname(__FILE__) + '/helper'
class TestTrigger < Test::Unit::TestCase
def setup
Trigger.reset
end
# base case
def test_should_have_empty_triggers
assert_equal({}, Trigger.triggers)
end
# register
def test_register_should_add_condition_to_triggers
c = Condition.new
c.watch = stub(:name => 'foo')
Trigger.register(c)
assert_equal({'foo' => [c]}, Trigger.triggers)
end
def test_register_should_add_condition_to_triggers_twice
watch = stub(:name => 'foo')
c = Condition.new
c.watch = watch
Trigger.register(c)
c2 = Condition.new
c2.watch = watch
Trigger.register(c2)
assert_equal({'foo' => [c, c2]}, Trigger.triggers)
end
# deregister
def test_deregister_should_remove_condition_from_triggers
c = Condition.new
c.watch = stub(:name => 'foo')
Trigger.register(c)
Trigger.deregister(c)
assert_equal({}, Trigger.triggers)
end
# broadcast
def test_broadcast_should_call_process_on_each_condition
c = Condition.new
c.watch = stub(:name => 'foo')
Trigger.register(c)
c.expects(:process).with(:state_change, [:up, :start])
Trigger.broadcast(c.watch, :state_change, [:up, :start])
end
end
|