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 87 alias :ok :assert_block
88 88  
89 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 95 end
94 96  
95 97 def assert_mandatory(object, attribute, test_value = 'some random string')
... ...