Sha256: ab71f660fdda3ea65ad71e927c601b1eb805469c7a21971f1cfa67c19926c37f

Contents?: true

Size: 1.5 KB

Versions: 14

Compression:

Stored size: 1.5 KB

Contents

require_relative '../../test_helper'

class MachineWithEventsTest < StateMachinesTest
  def setup
    @klass = Class.new
    @machine = StateMachines::Machine.new(@klass)
  end

  def test_should_return_the_created_event
    assert_instance_of StateMachines::Event, @machine.event(:ignite)
  end

  def test_should_create_event_with_given_name
    event = @machine.event(:ignite) {}
    assert_equal :ignite, event.name
  end

  def test_should_evaluate_block_within_event_context
    responded = false
    @machine.event :ignite do
      responded = respond_to?(:transition)
    end

    assert responded
  end

  def test_should_be_aliased_as_on
    event = @machine.on(:ignite) {}
    assert_equal :ignite, event.name
  end

  def test_should_have_events
    event = @machine.event(:ignite)
    assert_equal [event], @machine.events.to_a
  end

  def test_should_allow_human_state_name_lookup
    @machine.event(:ignite)
    assert_equal 'ignite', @klass.human_state_event_name(:ignite)
  end

  def test_should_raise_exception_on_invalid_human_state_event_name_lookup
    exception = assert_raises(IndexError) { @klass.human_state_event_name(:invalid) }
    assert_equal ':invalid is an invalid name', exception.message
  end

  def test_should_raise_exception_if_conflicting_type_used_for_name
    @machine.event :park
    exception = assert_raises(ArgumentError) {  @machine.event 'ignite' }
    assert_equal '"ignite" event defined as String, :park defined as Symbol; all events must be consistent', exception.message
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
state_machines-0.5.0 test/unit/machine/machine_with_events_test.rb
solidus_backend-1.0.0.pre3 vendor/bundle/gems/state_machines-0.2.2/test/unit/machine/machine_with_events_test.rb
solidus_backend-1.0.0.pre2 vendor/bundle/gems/state_machines-0.2.2/test/unit/machine/machine_with_events_test.rb
solidus_backend-1.0.0.pre vendor/bundle/gems/state_machines-0.2.2/test/unit/machine/machine_with_events_test.rb
state_machines-0.4.0 test/unit/machine/machine_with_events_test.rb
state_machines-0.3.0 test/unit/machine/machine_with_events_test.rb
state_machines-0.2.2 test/unit/machine/machine_with_events_test.rb
state_machines-0.2.1 test/unit/machine/machine_with_events_test.rb
state_machines-0.2.0 test/unit/machine/machine_with_events_test.rb
state_machines-0.1.4 test/unit/machine/machine_with_events_test.rb
state_machines-0.1.3 test/unit/machine/machine_with_events_test.rb
state_machines-0.1.2 test/unit/machine/machine_with_events_test.rb
state_machines-0.1.1 test/unit/machine/machine_with_events_test.rb
state_machines-0.1.0 test/unit/machine/machine_with_events_test.rb