require "../spec_helper" describe Spectator::Expectations::Expectation do describe "#satisifed?" do context "with a successful match" do it "is true" do value = 42 match_data = new_matcher(value).match(new_partial(value)) match_data.matched?.should be_true # Sanity check. expectation = Spectator::Expectations::Expectation.new(match_data, false) expectation.satisfied?.should be_true end context "when negated" do it "is false" do value = 42 match_data = new_matcher(value).match(new_partial(value)) match_data.matched?.should be_true # Sanity check. expectation = Spectator::Expectations::Expectation.new(match_data, true) expectation.satisfied?.should be_false end end end context "with an unsuccessful match" do it "is false" do match_data = new_matcher(42).match(new_partial(777)) match_data.matched?.should be_false # Sanity check. expectation = Spectator::Expectations::Expectation.new(match_data, false) expectation.satisfied?.should be_false end context "when negated" do it "is true" do match_data = new_matcher(42).match(new_partial(777)) match_data.matched?.should be_false # Sanity check. expectation = Spectator::Expectations::Expectation.new(match_data, true) expectation.satisfied?.should be_true end end end end describe "#values" do it "is the same as the match data values" do value = 42 match_data = new_matcher(value).match(new_partial(value)) expectation = Spectator::Expectations::Expectation.new(match_data, false) expectation_values = expectation.values match_data.values.each do |k, v| expectation_values.has_key?(k).should be_true expectation_values[k].to_s.should eq(v.to_s) end end context "when negated" do it "negates all negatable values" do value = 42 match_data = new_matcher(value).match(new_partial(value)) expectation = Spectator::Expectations::Expectation.new(match_data, true) expectation.values.each_value do |value| value.to_s.should start_with(/not/i) if value.responds_to?(:negate) end end end end describe "#actual_message" do context "with a successful match" do it "equals the matcher's #message" do value = 42 match_data = new_matcher(value).match(new_partial(value)) match_data.matched?.should be_true # Sanity check. expectation = Spectator::Expectations::Expectation.new(match_data, false) expectation.actual_message.should eq(match_data.message) end context "when negated" do it "equals the matcher's #message" do value = 42 match_data = new_matcher(value).match(new_partial(value)) match_data.matched?.should be_true # Sanity check. expectation = Spectator::Expectations::Expectation.new(match_data, true) expectation.actual_message.should eq(match_data.message) end end end context "with an unsuccessful match" do it "equals the matcher's #negated_message" do match_data = new_matcher(42).match(new_partial(777)) match_data.matched?.should be_false # Sanity check. expectation = Spectator::Expectations::Expectation.new(match_data, false) expectation.actual_message.should eq(match_data.negated_message) end context "when negated" do it "equals the matcher's #negated_message" do match_data = new_matcher(42).match(new_partial(777)) match_data.matched?.should be_false # Sanity check. expectation = Spectator::Expectations::Expectation.new(match_data, true) expectation.actual_message.should eq(match_data.negated_message) end end end end describe "#expected_message" do context "with a successful match" do it "equals the matcher's #message" do value = 42 match_data = new_matcher(value).match(new_partial(value)) match_data.matched?.should be_true # Sanity check. expectation = Spectator::Expectations::Expectation.new(match_data, false) expectation.expected_message.should eq(match_data.message) end context "when negated" do it "equals the matcher's #negated_message" do value = 42 match_data = new_matcher(value).match(new_partial(value)) match_data.matched?.should be_true # Sanity check. expectation = Spectator::Expectations::Expectation.new(match_data, true) expectation.expected_message.should eq(match_data.negated_message) end end end context "with an unsuccessful match" do it "equals the matcher's #message" do match_data = new_matcher(42).match(new_partial(777)) match_data.matched?.should be_false # Sanity check. expectation = Spectator::Expectations::Expectation.new(match_data, false) expectation.expected_message.should eq(match_data.message) end context "when negated" do it "equals the matcher's #negated_message" do match_data = new_matcher(42).match(new_partial(777)) match_data.matched?.should be_false # Sanity check. expectation = Spectator::Expectations::Expectation.new(match_data, true) expectation.expected_message.should eq(match_data.negated_message) end end end end end