mirror of
https://gitea.invidious.io/iv-org/shard-spectator.git
synced 2024-08-15 00:53:35 +00:00
Additional checks that the actual value satifies needed method
This commit is contained in:
parent
7fadd92f62
commit
09e9c23115
6 changed files with 52 additions and 7 deletions
|
@ -13,15 +13,21 @@ module Spectator::Matchers
|
|||
|
||||
# Checks whether the matcher is satisifed with the expression given to it.
|
||||
private def match?(actual : TestExpression(T)) : Bool forall T
|
||||
actual_value = actual.value
|
||||
return unexpected(actual_value, actual.label) unless actual_value.responds_to?(:includes?)
|
||||
|
||||
expected.value.all? do |item|
|
||||
actual.value.includes?(item)
|
||||
actual_value.includes?(item)
|
||||
end
|
||||
end
|
||||
|
||||
# If the expectation is negated, then this method is called instead of `#match?`.
|
||||
private def does_not_match?(actual : TestExpression(T)) : Bool forall T
|
||||
actual_value = actual.value
|
||||
return unexpected(actual_value, actual.label) unless actual_value.responds_to?(:includes?)
|
||||
|
||||
!expected.value.any? do |item|
|
||||
actual.value.includes?(item)
|
||||
actual_value.includes?(item)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -54,5 +60,9 @@ module Spectator::Matchers
|
|||
superset: actual.value.inspect,
|
||||
}
|
||||
end
|
||||
|
||||
private def unexpected(value, label)
|
||||
raise "#{label} is not a collection (must respond to `#includes?`). #{label}: #{value.inspect}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -13,7 +13,10 @@ module Spectator::Matchers
|
|||
|
||||
# Checks whether the matcher is satisifed with the expression given to it.
|
||||
private def match?(actual : TestExpression(T)) : Bool forall T
|
||||
actual.value.empty?
|
||||
actual_value = actual.value
|
||||
return unexpected(actual_value, actual.label) unless actual_value.responds_to?(:empty?)
|
||||
|
||||
actual_value.empty?
|
||||
end
|
||||
|
||||
# Message displayed when the matcher isn't satisifed.
|
||||
|
@ -36,5 +39,9 @@ module Spectator::Matchers
|
|||
private def failure_message_when_negated(actual) : String
|
||||
"#{actual.label} is empty"
|
||||
end
|
||||
|
||||
private def unexpected(value, label)
|
||||
raise "#{label} is not a collection (must respond to `#empty?`). #{label}: #{value.inspect}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -13,7 +13,10 @@ module Spectator::Matchers
|
|||
|
||||
# Checks whether the matcher is satisifed with the expression given to it.
|
||||
private def match?(actual : TestExpression(T)) : Bool forall T
|
||||
actual.value.has_key?(expected.value)
|
||||
actual_value = actual.value
|
||||
return unexpected(actual_value, actual.label) unless actual_value.responds_to?(:has_key?)
|
||||
|
||||
actual_value.has_key?(expected.value)
|
||||
end
|
||||
|
||||
# Message displayed when the matcher isn't satisifed.
|
||||
|
@ -47,5 +50,9 @@ module Spectator::Matchers
|
|||
actual: set.inspect,
|
||||
}
|
||||
end
|
||||
|
||||
private def unexpected(value, label)
|
||||
raise "#{label} is not hash-like (must respond to `#has_key?`). #{label}: #{value.inspect}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -13,7 +13,10 @@ module Spectator::Matchers
|
|||
|
||||
# Checks whether the matcher is satisifed with the expression given to it.
|
||||
private def match?(actual : TestExpression(T)) : Bool forall T
|
||||
actual.value.has_value?(expected.value)
|
||||
actual_value = actual.value
|
||||
return unexpected(actual_value, actual.label) unless actual_value.responds_to?(:has_value?)
|
||||
|
||||
actual_value.has_value?(expected.value)
|
||||
end
|
||||
|
||||
# Message displayed when the matcher isn't satisifed.
|
||||
|
@ -47,5 +50,9 @@ module Spectator::Matchers
|
|||
actual: set.inspect,
|
||||
}
|
||||
end
|
||||
|
||||
private def unexpected(value, label)
|
||||
raise "#{label} is not hash-like (must respond to `#has_value?`). #{label}: #{value.inspect}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -13,7 +13,10 @@ module Spectator::Matchers
|
|||
|
||||
# Checks whether the matcher is satisifed with the expression given to it.
|
||||
private def match?(actual : TestExpression(T)) : Bool forall T
|
||||
expected.value == actual.value.size
|
||||
actual_value = actual.value
|
||||
return unexpected(actual_value, actual.label) unless actual_value.responds_to?(:size?)
|
||||
|
||||
expected.value == actual_value.size
|
||||
end
|
||||
|
||||
# Message displayed when the matcher isn't satisifed.
|
||||
|
@ -54,5 +57,9 @@ module Spectator::Matchers
|
|||
actual: actual.value.size.inspect,
|
||||
}
|
||||
end
|
||||
|
||||
private def unexpected(value, label)
|
||||
raise "#{label} must respond to `#size`. #{label}: #{value.inspect}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -13,7 +13,10 @@ module Spectator::Matchers
|
|||
|
||||
# Checks whether the matcher is satisifed with the expression given to it.
|
||||
private def match?(actual : TestExpression(T)) : Bool forall T
|
||||
expected.value.size == actual.value.size
|
||||
actual_value = actual.value
|
||||
return unexpected(actual_value, actual.label) unless actual_value.responds_to?(:size?)
|
||||
|
||||
expected.value.size == actual_value.size
|
||||
end
|
||||
|
||||
# Message displayed when the matcher isn't satisifed.
|
||||
|
@ -54,5 +57,9 @@ module Spectator::Matchers
|
|||
actual: actual.value.size.inspect,
|
||||
}
|
||||
end
|
||||
|
||||
private def unexpected(value, label)
|
||||
raise "#{label} must respond to `#size`. #{label}: #{value.inspect}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue