class EzcaterMatchers::MismatchedCollectionFailure

Attributes

actual[R]
expected[R]
message[R]

Public Class Methods

new(actual:, expected:) click to toggle source
# File lib/ezcater_matchers/mismatched_collection_failure.rb, line 7
def initialize(actual:, expected:)
  @actual = actual
  @expected = expected
  @message = message_array.join("\n")
end

Private Instance Methods

extra_elements() click to toggle source
# File lib/ezcater_matchers/mismatched_collection_failure.rb, line 29
def extra_elements
  @_extra_elements ||= actual - expected
end
extra_elements_message() click to toggle source
# File lib/ezcater_matchers/mismatched_collection_failure.rb, line 25
def extra_elements_message
  "the extra elements were: #{extra_elements}"
end
message_array() click to toggle source
# File lib/ezcater_matchers/mismatched_collection_failure.rb, line 17
def message_array
  [].tap do |messages|
    messages.push(extra_elements_message) if extra_elements.any?
    messages.push(missing_elements_message) if missing_elements.any?
    messages.push(unexpected_order_message) if missing_elements.empty? && extra_elements.empty?
  end
end
missing_elements() click to toggle source
# File lib/ezcater_matchers/mismatched_collection_failure.rb, line 37
def missing_elements
  @_missing_elements ||= expected - actual
end
missing_elements_message() click to toggle source
# File lib/ezcater_matchers/mismatched_collection_failure.rb, line 33
def missing_elements_message
  "the missing elements were: #{missing_elements}"
end
unexpected_order_message() click to toggle source
# File lib/ezcater_matchers/mismatched_collection_failure.rb, line 41
def unexpected_order_message
  "the elements are not in the expected order"
end