Skip to content

Commit

Permalink
- Fixed assert and refute_operator where second object has a bad == m…
Browse files Browse the repository at this point in the history
…ethod.

[git-p4: depot-paths = "//src/minitest/dev/": change = 6667]
  • Loading branch information
drbrain committed Sep 25, 2011
1 parent f73a601 commit 2ebb37a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
4 changes: 2 additions & 2 deletions lib/minitest/unit.rb
Expand Up @@ -294,7 +294,7 @@ def UNDEFINED.inspect; "UNDEFINED"; end
# assert_operator 5, :<=, 4

def assert_operator o1, op, o2 = UNDEFINED, msg = nil
return assert_predicate o1, op, msg if o2 == UNDEFINED
return assert_predicate o1, op, msg if UNDEFINED == o2
msg = message(msg) { "Expected #{mu_pp(o1)} to be #{op} #{mu_pp(o2)}" }
assert o1.__send__(op, o2), msg
end
Expand Down Expand Up @@ -595,7 +595,7 @@ def refute_nil obj, msg = nil
# refute_operator 1, :<, 2 #=> fail

def refute_operator o1, op, o2 = UNDEFINED, msg = nil
return refute_predicate o1, op if o2 == UNDEFINED
return refute_predicate o1, op, msg if UNDEFINED == o2
msg = message(msg) { "Expected #{mu_pp(o1)} to not be #{op} #{mu_pp(o2)}"}
refute o1.__send__(op, o2), msg
end
Expand Down
14 changes: 14 additions & 0 deletions test/test_minitest_unit.rb
Expand Up @@ -877,6 +877,13 @@ def test_assert_operator
@tc.assert_operator 2, :>, 1
end

def test_assert_operator_bad_object
bad = Object.new
def bad.==(other) true end

@tc.assert_operator bad, :equal?, bad
end

def test_assert_operator_triggered
util_assert_triggered "Expected 2 to be < 1." do
@tc.assert_operator 2, :<, 1
Expand Down Expand Up @@ -1358,6 +1365,13 @@ def test_refute_operator
@tc.refute_operator 2, :<, 1
end

def test_refute_operator_bad_object
bad = Object.new
def bad.==(other) true end

@tc.refute_operator true, :equal?, bad
end

def test_refute_operator_triggered
util_assert_triggered "Expected 2 to not be > 1." do
@tc.refute_operator 2, :>, 1
Expand Down

0 comments on commit 2ebb37a

Please sign in to comment.