Sha256: 33cf737bb8a3b082a13a67f40cc8895d79ade0b6ddcca5d9833378293307cf53
Contents?: true
Size: 1.62 KB
Versions: 14
Compression:
Stored size: 1.62 KB
Contents
require_relative '../../test_helper' class StateWithMultipleContextsTest < StateMachinesTest def setup @klass = Class.new @machine = StateMachines::Machine.new(@klass) @ancestors = @klass.ancestors @machine.states << @state = StateMachines::State.new(@machine, :idling) context = nil speed_method = nil @state.context do context = self def speed 0 end speed_method = instance_method(:speed) end @context = context @speed_method = speed_method rpm_method = nil @state.context do def rpm 1000 end rpm_method = instance_method(:rpm) end @rpm_method = rpm_method end def test_should_include_new_module_in_owner_class refute_equal @ancestors, @klass.ancestors assert_equal [@context], @klass.ancestors - @ancestors end def test_should_define_each_context_method_in_owner_class %w(speed rpm).each { |method| assert @klass.method_defined?(method) } end def test_should_define_aliased_context_method_in_owner_class %w(speed rpm).each { |method| assert @klass.method_defined?("__state_idling_#{method}_#{@context.object_id}__") } end def test_should_not_use_context_methods_as_owner_class_methods refute_equal @speed_method, @state.context_methods[:speed] refute_equal @rpm_method, @state.context_methods[:rpm] end def test_should_use_context_methods_as_aliased_owner_class_methods assert_equal @speed_method, @state.context_methods[:"__state_idling_speed_#{@context.object_id}__"] assert_equal @rpm_method, @state.context_methods[:"__state_idling_rpm_#{@context.object_id}__"] end end
Version data entries
14 entries across 14 versions & 2 rubygems