Sha256: 49f1be028d5d5127c90dac464395c6d260bd291b1cb71287214ee5c1bc335e32

Contents?: true

Size: 1.14 KB

Versions: 14

Compression:

Stored size: 1.14 KB

Contents

require_relative '../test_helper'
require_relative '../files/models/vehicle'

class VehicleWithParallelEventsTest < MiniTest::Test
  def setup
    @vehicle = Vehicle.new
  end

  def test_should_fail_if_any_event_cannot_transition
    refute @vehicle.fire_events(:ignite, :cancel_insurance)
  end

  def test_should_be_successful_if_all_events_transition
    assert @vehicle.fire_events(:ignite, :buy_insurance)
  end

  def test_should_not_save_if_skipping_action
    assert @vehicle.fire_events(:ignite, :buy_insurance, false)
    refute @vehicle.saved
  end

  def test_should_raise_exception_if_any_event_cannot_transition_on_bang
    exception = assert_raises(StateMachines::InvalidParallelTransition) { @vehicle.fire_events!(:ignite, :cancel_insurance) }
    assert_equal @vehicle, exception.object
    assert_equal [:ignite, :cancel_insurance], exception.events
  end

  def test_should_not_raise_exception_if_all_events_transition_on_bang
    assert @vehicle.fire_events!(:ignite, :buy_insurance)
  end

  def test_should_not_save_if_skipping_action_on_bang
    assert @vehicle.fire_events!(:ignite, :buy_insurance, false)
    refute @vehicle.saved
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

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