1 require File.dirname(__FILE__) + '/helper'
3 class TestTask < Test::Unit::TestCase
8 @task.valid_states = [:foo, :bar]
9 @task.initial_state = :foo
16 def test_valid_should_return_false_if_no_name
23 def test_valid_should_return_false_if_no_valid_states
24 @task.valid_states = nil
30 def test_valid_should_return_false_if_no_initial_state
31 @task.initial_state = nil
39 def test_transition_should_be_always_if_no_block_was_given
40 @task.transition(:foo, :bar)
42 assert 1, @task.metrics.size
43 assert Conditions::Always, @task.metrics.keys.first.class
48 def test_method_missing_should_create_accessor_for_states
49 assert_nothing_raised do
54 def test_method_missing_should_raise_for_non_states
55 assert_raise NoMethodError do
60 def test_method_missing_should_raise_for_non_setters
61 assert_raise NoMethodError do
68 def test_action_should_send_string_commands_to_system
70 @task.expects(:system).with('foo')
71 no_stdout { @task.action(:foo, nil) }
74 def test_action_should_cal_lambda_commands
75 @task.foo = lambda { }
76 @task.foo.expects(:call)
77 no_stdout { @task.action(:foo, nil) }
80 def test_action_should_raise_not_implemented_on_non_string_or_lambda_action
81 assert_raise NotImplementedError do
83 @task.action(:foo, nil)