From 19da933c2fbe6b64bb69a33470a9943b01cb24a7 Mon Sep 17 00:00:00 2001 From: Michael Miller Date: Sat, 19 Jan 2019 14:29:07 -0700 Subject: [PATCH] Add spec for `be_a` matcher --- spec/matchers/type_matcher_spec.cr | 55 ++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 spec/matchers/type_matcher_spec.cr diff --git a/spec/matchers/type_matcher_spec.cr b/spec/matchers/type_matcher_spec.cr new file mode 100644 index 0000000..0eab5b1 --- /dev/null +++ b/spec/matchers/type_matcher_spec.cr @@ -0,0 +1,55 @@ +require "../spec_helper" + +describe Spectator::Matchers::TypeMatcher do + describe "#match?" do + context "with the same type" do + it "is true" do + value = "foobar" + partial = Spectator::Expectations::ValueExpectationPartial.new(value) + matcher = Spectator::Matchers::TypeMatcher(String).new + matcher.match?(partial).should be_true + end + end + + context "with a different type" do + it "is false" do + value = "foobar" + partial = Spectator::Expectations::ValueExpectationPartial.new(value) + matcher = Spectator::Matchers::TypeMatcher(Int32).new + matcher.match?(partial).should be_false + end + end + end + + describe "#message" do + it "contains the actual label" do + value = 42 + label = "everything" + partial = Spectator::Expectations::ValueExpectationPartial.new(label, value) + matcher = Spectator::Matchers::TypeMatcher(String).new + matcher.message(partial).should contain(label) + end + + it "contains the expected type" do + partial = Spectator::Expectations::ValueExpectationPartial.new(42) + matcher = Spectator::Matchers::TypeMatcher(String).new + matcher.message(partial).should contain("String") + end + end + + describe "#negated_message" do + it "contains the actual label" do + value = 42 + label = "everything" + partial = Spectator::Expectations::ValueExpectationPartial.new(label, value) + matcher = Spectator::Matchers::TypeMatcher(String).new + matcher.negated_message(partial).should contain(label) + end + + it "contains the expected type" do + partial = Spectator::Expectations::ValueExpectationPartial.new(42) + matcher = Spectator::Matchers::TypeMatcher(String).new + matcher.negated_message(partial).should contain("String") + end + end +end