aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2014-02-08 12:33:01 -0200
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-02-08 12:33:01 -0200
commit048d6c0aefec9f233a77e9160f426cf2fed1b7f6 (patch)
tree624f43999ce5b20400bedd2994e61f18eb8d08ff
parent371e3ae7799f18362d60259b1ea5eb8473196508 (diff)
parent73f8d385971cf8244aec73d526bf9e7d17955a47 (diff)
downloadrails-048d6c0aefec9f233a77e9160f426cf2fed1b7f6.tar.gz
rails-048d6c0aefec9f233a77e9160f426cf2fed1b7f6.tar.bz2
rails-048d6c0aefec9f233a77e9160f426cf2fed1b7f6.zip
Merge pull request #244 from vanderhoorn/master
Add tests for Nodes::Equality and Nodes::NotEqual to the ToSql class.
-rw-r--r--test/visitors/test_to_sql.rb35
1 files changed, 25 insertions, 10 deletions
diff --git a/test/visitors/test_to_sql.rb b/test/visitors/test_to_sql.rb
index 34d3459a27..35effd4105 100644
--- a/test/visitors/test_to_sql.rb
+++ b/test/visitors/test_to_sql.rb
@@ -92,7 +92,14 @@ module Arel
assert_equal 'omg(*, *)', @visitor.accept(function)
end
- describe 'equality' do
+ describe 'Nodes::Equality' do
+ it "should escape strings" do
+ test = Table.new(:users)[:name].eq 'Aaron Patterson'
+ @visitor.accept(test).must_be_like %{
+ "users"."name" = 'Aaron Patterson'
+ }
+ end
+
it 'should handle false' do
sql = @visitor.accept Nodes::Equality.new(false, false)
sql.must_be_like %{ 'f' = 'f' }
@@ -103,6 +110,23 @@ module Arel
sql = @visitor.accept Nodes::Equality.new(table[:id], '1-fooo')
sql.must_be_like %{ "users"."id" = 1 }
end
+
+ it 'should handle nil' do
+ sql = @visitor.accept Nodes::Equality.new(@table[:name], nil)
+ sql.must_be_like %{ "users"."name" IS NULL }
+ end
+ end
+
+ describe 'Nodes::NotEqual' do
+ it 'should handle false' do
+ sql = @visitor.accept Nodes::NotEqual.new(@table[:active], false)
+ sql.must_be_like %{ "users"."active" != 'f' }
+ end
+
+ it 'should handle nil' do
+ sql = @visitor.accept Nodes::NotEqual.new(@table[:name], nil)
+ sql.must_be_like %{ "users"."name" IS NOT NULL }
+ end
end
it "should visit string subclass" do
@@ -412,15 +436,6 @@ module Arel
end
end
- describe 'Equality' do
- it "should escape strings" do
- test = Table.new(:users)[:name].eq 'Aaron Patterson'
- @visitor.accept(test).must_be_like %{
- "users"."name" = 'Aaron Patterson'
- }
- end
- end
-
describe 'Constants' do
it "should handle true" do
test = Table.new(:users).create_true