Sha256: a37030b2bb6baad323c6e952a41ca98fbcc0dab5a9f25727f628eab370b51bab

Contents?: true

Size: 1.62 KB

Versions: 5

Compression:

Stored size: 1.62 KB

Contents

require_relative '../../test_helper'

class InvalidTransitionWithIntegrationTest < StateMachinesTest
  def setup
    StateMachines::Integrations.const_set('Custom', Module.new do
                                                    include StateMachines::Integrations::Base

                                                    def errors_for(object)
                                                      object.errors
                                                    end
                                                  end)

    StateMachines::Integrations.register(StateMachines::Integrations::Custom)


    @klass = Class.new do
      attr_accessor :errors
    end
    @machine = StateMachines::Machine.new(@klass, integration: :custom)
    @machine.state :parked
    @machine.event :ignite

    @object = @klass.new
    @object.state = 'parked'
  end

  def fix_test
    skip
  end

  def test_should_generate_a_message_without_reasons_if_empty
    @object.errors = ''
    invalid_transition = StateMachines::InvalidTransition.new(@object, @machine, :ignite)
    assert_equal 'Cannot transition state via :ignite from :parked', invalid_transition.message
  end

  def test_should_generate_a_message_with_error_reasons_if_errors_found
    @object.errors = 'Id is invalid, Name is invalid'
    invalid_transition = StateMachines::InvalidTransition.new(@object, @machine, :ignite)
    assert_equal 'Cannot transition state via :ignite from :parked (Reason(s): Id is invalid, Name is invalid)', invalid_transition.message
  end

  def teardown
    StateMachines::Integrations.reset
    StateMachines::Integrations.send(:remove_const, 'Custom')
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
state_machines-0.1.4 test/unit/invalid_transition/invalid_transition_with_integration_test.rb
state_machines-0.1.3 test/unit/invalid_transition/invalid_transition_with_integration_test.rb
state_machines-0.1.2 test/unit/invalid_transition/invalid_transition_with_integration_test.rb
state_machines-0.1.1 test/unit/invalid_transition/invalid_transition_with_integration_test.rb
state_machines-0.1.0 test/unit/invalid_transition/invalid_transition_with_integration_test.rb