class MachineWithInstanceHelpersTest
Public Instance Methods
park()
click to toggle source
# File test/unit/machine_test.rb, line 1084 def park true end
setup()
click to toggle source
# File test/unit/machine_test.rb, line 1076 def setup @klass = Class.new @machine = StateMachine::Machine.new(@klass) @object = @klass.new end
test_should_allow_string_evaluation()
click to toggle source
# File test/unit/machine_test.rb, line 1248 def test_should_allow_string_evaluation @machine.define_helper :instance, " def park false end ", __FILE__, __LINE__ + 1 assert_equal false, @object.park end
test_should_define_if_ignoring_method_conflicts_and_defined_in_superclass()
click to toggle source
# File test/unit/machine_test.rb, line 1195 def test_should_define_if_ignoring_method_conflicts_and_defined_in_superclass require 'stringio' @original_stderr, $stderr = $stderr, StringIO.new StateMachine::Machine.ignore_method_conflicts = true superclass = Class.new do def park end end klass = Class.new(superclass) machine = StateMachine::Machine.new(klass) machine.define_helper(:instance, :park) {true} assert_equal '', $stderr.string assert_equal true, klass.new.park ensure StateMachine::Machine.ignore_method_conflicts = false $stderr = @original_stderr end
test_should_define_nonexistent_methods()
click to toggle source
# File test/unit/machine_test.rb, line 1215 def test_should_define_nonexistent_methods @machine.define_helper(:instance, :park) {false} assert_equal false, @object.park end
test_should_not_redefine_existing_private_methods()
click to toggle source
# File test/unit/machine_test.rb, line 1105 def test_should_not_redefine_existing_private_methods @klass.class_eval do private def park true end end @machine.define_helper(:instance, :park) {} assert_equal true, @object.send(:park) end
test_should_not_redefine_existing_protected_methods()
click to toggle source
# File test/unit/machine_test.rb, line 1093 def test_should_not_redefine_existing_protected_methods @klass.class_eval do protected def park true end end @machine.define_helper(:instance, :park) {} assert_equal true, @object.send(:park) end
test_should_not_redefine_existing_public_methods()
click to toggle source
# File test/unit/machine_test.rb, line 1082 def test_should_not_redefine_existing_public_methods @klass.class_eval do def park true end end @machine.define_helper(:instance, :park) {} assert_equal true, @object.park end
test_should_not_warn_if_defined_in_module_after_helper_module()
click to toggle source
# File test/unit/machine_test.rb, line 1174 def test_should_not_warn_if_defined_in_module_after_helper_module require 'stringio' @original_stderr, $stderr = $stderr, StringIO.new klass = Class.new machine = StateMachine::Machine.new(klass) mod = Module.new do def park end end klass.class_eval do include mod end machine.define_helper(:instance, :park) {} assert_equal '', $stderr.string ensure $stderr = @original_stderr end
test_should_pass_context_as_arguments()
click to toggle source
# File test/unit/machine_test.rb, line 1232 def test_should_pass_context_as_arguments helper_args = nil @machine.define_helper(:instance, :park) {|*args| helper_args = args} @object.park assert_equal 2, helper_args.length assert_equal [@machine, @object], helper_args end
test_should_pass_method_arguments_through()
click to toggle source
# File test/unit/machine_test.rb, line 1240 def test_should_pass_method_arguments_through helper_args = nil @machine.define_helper(:instance, :park) {|*args| helper_args = args} @object.park(1, 2, 3) assert_equal 5, helper_args.length assert_equal [@machine, @object, 1, 2, 3], helper_args end
test_should_warn_if_defined_in_module_prior_to_helper_module()
click to toggle source
# File test/unit/machine_test.rb, line 1155 def test_should_warn_if_defined_in_module_prior_to_helper_module require 'stringio' @original_stderr, $stderr = $stderr, StringIO.new mod = Module.new do def park end end klass = Class.new do include mod end machine = StateMachine::Machine.new(klass) machine.define_helper(:instance, :park) {} assert_equal "Instance method \"park\" is already defined in #{mod.to_s}, use generic helper instead or set StateMachine::Machine.ignore_method_conflicts = true.\n", $stderr.string ensure $stderr = @original_stderr end
test_should_warn_if_defined_in_multiple_superclasses()
click to toggle source
# File test/unit/machine_test.rb, line 1134 def test_should_warn_if_defined_in_multiple_superclasses require 'stringio' @original_stderr, $stderr = $stderr, StringIO.new superclass1 = Class.new do def park end end superclass2 = Class.new(superclass1) do def park end end klass = Class.new(superclass2) machine = StateMachine::Machine.new(klass) machine.define_helper(:instance, :park) {} assert_equal "Instance method \"park\" is already defined in #{superclass1.to_s}, use generic helper instead or set StateMachine::Machine.ignore_method_conflicts = true.\n", $stderr.string ensure $stderr = @original_stderr end
test_should_warn_if_defined_in_superclass()
click to toggle source
# File test/unit/machine_test.rb, line 1117 def test_should_warn_if_defined_in_superclass require 'stringio' @original_stderr, $stderr = $stderr, StringIO.new superclass = Class.new do def park end end klass = Class.new(superclass) machine = StateMachine::Machine.new(klass) machine.define_helper(:instance, :park) {} assert_equal "Instance method \"park\" is already defined in #{superclass.to_s}, use generic helper instead or set StateMachine::Machine.ignore_method_conflicts = true.\n", $stderr.string ensure $stderr = @original_stderr end
test_should_warn_if_defined_multiple_times()
click to toggle source
# File test/unit/machine_test.rb, line 1220 def test_should_warn_if_defined_multiple_times require 'stringio' @original_stderr, $stderr = $stderr, StringIO.new @machine.define_helper(:instance, :park) {} @machine.define_helper(:instance, :park) {} assert_equal "Instance method \"park\" is already defined in #{@klass} :state instance helpers, use generic helper instead or set StateMachine::Machine.ignore_method_conflicts = true.\n", $stderr.string ensure $stderr = @original_stderr end