Sha256: bcc1b691467d131454fe0165c968985dc15030323f1f7dcac5a0aa299b30cf57

Contents?: true

Size: 754 Bytes

Versions: 3

Compression:

Stored size: 754 Bytes

Contents

require 'matchers/states/matcher'

module StateMachineRspec
  module Matchers
    def reject_states(state, *states)
      RejectStateMatcher.new(states.unshift(state))
    end
    alias_method :reject_state, :reject_states

    class RejectStateMatcher < StateMachineRspec::Matchers::States::Matcher
      def matches_states?(states)
        no_defined_states?
      end

      private

      def no_defined_states?
        defined_states = @introspector.defined_states(@states)
        unless defined_states.empty?
          @failure_message = "Did not expect #{@introspector.state_machine_attribute} " +
                             "to allow states: #{defined_states.join(', ')}"
        end

        defined_states.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/states/reject_state.rb
state_machine_rspec-0.1.1 lib/matchers/states/reject_state.rb
state_machine_rspec-0.1.0 lib/matchers/states/reject_state.rb