Commit fd438e0dc3fec1fea96e733b9b435a9e165d48da

Authored by Antonio Terceiro
1 parent 3bdce461

A saner implementation for assert_equivalent

Using the predefined assertion methods will give us meaningful failure
messages by default.
Showing 1 changed file with 5 additions and 3 deletions   Show diff stats
test/test_helper.rb
@@ -87,9 +87,11 @@ class ActiveSupport::TestCase @@ -87,9 +87,11 @@ class ActiveSupport::TestCase
87 alias :ok :assert_block 87 alias :ok :assert_block
88 88
89 def assert_equivalent(enum1, enum2) 89 def assert_equivalent(enum1, enum2)
90 - enum1 = enum1.group_by{|e|e}.values  
91 - enum2 = enum2.group_by{|e|e}.values  
92 - assert( (enum1.length == enum2.length) && ((enum1 - enum2) == []), "<#{enum1.inspect}> expected to be equivalent to <#{enum2.inspect}>") 90 + norm1 = enum1.to_a
  91 + norm2 = enum2.to_a
  92 + assert_equal [], norm1 - norm2
  93 + assert_equal [], norm2 - norm1
  94 + assert_equal norm1.size, enum2.size, "Size mismatch: #{enum1.inspect} vs #{enum2.inspect}"
93 end 95 end
94 96
95 def assert_mandatory(object, attribute, test_value = 'some random string') 97 def assert_mandatory(object, attribute, test_value = 'some random string')