diff options
author | Ernie Miller <ernie@erniemiller.org> | 2012-08-18 22:33:25 -0400 |
---|---|---|
committer | Ernie Miller <ernie@erniemiller.org> | 2012-08-18 22:33:25 -0400 |
commit | 6e638bba594b6164190d2a6fb96ffa07a20b11f3 (patch) | |
tree | 2d54111a8fc8ef4a892739f07990158df73c3c4e /test/nodes/test_named_function.rb | |
parent | 1de1041c00abff9cfc57837a80e12157901ff194 (diff) | |
download | rails-6e638bba594b6164190d2a6fb96ffa07a20b11f3.tar.gz rails-6e638bba594b6164190d2a6fb96ffa07a20b11f3.tar.bz2 rails-6e638bba594b6164190d2a6fb96ffa07a20b11f3.zip |
Add equality to ALL THE THINGS (that matter)
People are often trying to use ARel nodes inside ActiveRecord, and when
they do so, lots of things can break, because ActiveRecord relies on
Array#uniq and sometimes hash key equality to handle values that end up
in wheres, havings, etc. By implementing equality for all the nodes, we
should hopefully be able to prevent any nodes (even nodes containing
other nodes) from failing an equality check they should otherwise pass,
and alleviate many of these errors.
Fixes #130
Diffstat (limited to 'test/nodes/test_named_function.rb')
-rw-r--r-- | test/nodes/test_named_function.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/nodes/test_named_function.rb b/test/nodes/test_named_function.rb index 3e0b2c3972..9d16f9cbee 100644 --- a/test/nodes/test_named_function.rb +++ b/test/nodes/test_named_function.rb @@ -25,6 +25,22 @@ module Arel assert_kind_of SqlLiteral, function.alias assert_equal 'wth', function.alias end + + def test_equality_with_same_ivars + array = [ + NamedFunction.new('omg', 'zomg', 'wth'), + NamedFunction.new('omg', 'zomg', 'wth') + ] + assert_equal 1, array.uniq.size + end + + def test_inequality_with_different_ivars + array = [ + NamedFunction.new('omg', 'zomg', 'wth'), + NamedFunction.new('zomg', 'zomg', 'wth') + ] + assert_equal 2, array.uniq.size + end end end end |