Sha256: 71afc78535c364b1fd13bf8f8e3f4ce678d111ad342ec81e4213fa2d269cc4eb

Contents?: true

Size: 798 Bytes

Versions: 3

Compression:

Stored size: 798 Bytes

Contents

require 'matchers/events/matcher'

module StateMachineRspec
  module Matchers
    def handle_events(value, *values)
      HandleEventMatcher.new(values.unshift(value))
    end
    alias_method :handle_event, :handle_events

    class HandleEventMatcher < StateMachineRspec::Matchers::Events::Matcher
      def matches_events?(events)
        !invalid_events?
      end

      private

      def invalid_events?
        invalid_events = @introspector.invalid_events(@events)
        unless invalid_events.empty?
          @failure_message = "Expected to be able to handle events: " +
                              "#{invalid_events.join(', ')} in state: " +
                              "#{@introspector.current_state_value}"
        end

        !invalid_events.empty?
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
state_machine_rspec-0.1.2 lib/matchers/events/handle_event.rb
state_machine_rspec-0.1.1 lib/matchers/events/handle_event.rb
state_machine_rspec-0.1.0 lib/matchers/events/handle_event.rb