Add tests for multiple arguments

This commit is contained in:
Michael Miller 2019-02-01 19:56:46 -07:00
parent acea12cafb
commit 4043a76a07

View file

@ -3,6 +3,7 @@ require "../spec_helper"
describe Spectator::Matchers::ContainMatcher do describe Spectator::Matchers::ContainMatcher do
describe "#match?" do describe "#match?" do
context "with a String" do context "with a String" do
context "one argument" do
context "against a matching string" do context "against a matching string" do
it "is true" do it "is true" do
value = "foobarbaz" value = "foobarbaz"
@ -84,7 +85,111 @@ describe Spectator::Matchers::ContainMatcher do
end end
end end
context "multiple arguments" do
context "against matching strings" do
it "is true" do
value = "foobarbaz"
search = {"foo", "bar", "baz"}
partial = Spectator::Expectations::ValueExpectationPartial.new(value)
matcher = Spectator::Matchers::ContainMatcher.new(search)
matcher.match?(partial).should be_true
end
end
context "against one matching string" do
it "is false" do
value = "foobarbaz"
search = {"foo", "qux"}
partial = Spectator::Expectations::ValueExpectationPartial.new(value)
matcher = Spectator::Matchers::ContainMatcher.new(search)
matcher.match?(partial).should be_false
end
end
context "against no matching strings" do
it "is false" do
value = "foobar"
search = {"baz", "qux"}
partial = Spectator::Expectations::ValueExpectationPartial.new(value)
matcher = Spectator::Matchers::ContainMatcher.new(search)
matcher.match?(partial).should be_false
end
end
context "against matching characters" do
it "is true" do
value = "foobarbaz"
search = {'f', 'b', 'z'}
partial = Spectator::Expectations::ValueExpectationPartial.new(value)
matcher = Spectator::Matchers::ContainMatcher.new(search)
matcher.match?(partial).should be_true
end
end
context "against one matching character" do
it "is false" do
value = "foobarbaz"
search = {'f', 'c', 'd'}
partial = Spectator::Expectations::ValueExpectationPartial.new(value)
matcher = Spectator::Matchers::ContainMatcher.new(search)
matcher.match?(partial).should be_false
end
end
context "against no matching characters" do
it "is false" do
value = "foobarbaz"
search = {'c', 'd', 'e'}
partial = Spectator::Expectations::ValueExpectationPartial.new(value)
matcher = Spectator::Matchers::ContainMatcher.new(search)
matcher.match?(partial).should be_false
end
end
context "against a matching string and character" do
it "is true" do
value = "foobarbaz"
search = {"foo", 'z'}
partial = Spectator::Expectations::ValueExpectationPartial.new(value)
matcher = Spectator::Matchers::ContainMatcher.new(search)
matcher.match?(partial).should be_true
end
end
context "against a matching string and non-matching character" do
it "is false" do
value = "foobarbaz"
search = {"foo", 'c'}
partial = Spectator::Expectations::ValueExpectationPartial.new(value)
matcher = Spectator::Matchers::ContainMatcher.new(search)
matcher.match?(partial).should be_false
end
end
context "against a non-matching string and matching character" do
it "is false" do
value = "foobarbaz"
search = {"qux", 'f'}
partial = Spectator::Expectations::ValueExpectationPartial.new(value)
matcher = Spectator::Matchers::ContainMatcher.new(search)
matcher.match?(partial).should be_false
end
end
context "against a non-matching string and character" do
it "is false" do
value = "foobarbaz"
search = {"qux", 'c'}
partial = Spectator::Expectations::ValueExpectationPartial.new(value)
matcher = Spectator::Matchers::ContainMatcher.new(search)
matcher.match?(partial).should be_false
end
end
end
end
context "with an Enumberable" do context "with an Enumberable" do
context "one argument" do
context "against an equal value" do context "against an equal value" do
it "is true" do it "is true" do
array = %i[a b c] array = %i[a b c]
@ -125,6 +230,39 @@ describe Spectator::Matchers::ContainMatcher do
end end
end end
end end
context "multiple arguments" do
context "against equal values" do
it "is true" do
array = %i[a b c]
search = {:a, :b}
partial = Spectator::Expectations::ValueExpectationPartial.new(array)
matcher = Spectator::Matchers::ContainMatcher.new(search)
matcher.match?(partial).should be_true
end
end
context "against one equal value" do
it "is false" do
array = %i[a b c]
search = {:a, :d}
partial = Spectator::Expectations::ValueExpectationPartial.new(array)
matcher = Spectator::Matchers::ContainMatcher.new(search)
matcher.match?(partial).should be_false
end
end
context "against no equal values" do
it "is false" do
array = %i[a b c]
search = {:d, :e}
partial = Spectator::Expectations::ValueExpectationPartial.new(array)
matcher = Spectator::Matchers::ContainMatcher.new(search)
matcher.match?(partial).should be_false
end
end
end
end
end end
describe "#message" do describe "#message" do