diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-02-08 12:33:01 -0200 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-02-08 12:33:01 -0200 |
commit | 048d6c0aefec9f233a77e9160f426cf2fed1b7f6 (patch) | |
tree | 624f43999ce5b20400bedd2994e61f18eb8d08ff /test/visitors | |
parent | 371e3ae7799f18362d60259b1ea5eb8473196508 (diff) | |
parent | 73f8d385971cf8244aec73d526bf9e7d17955a47 (diff) | |
download | rails-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.
Diffstat (limited to 'test/visitors')
-rw-r--r-- | test/visitors/test_to_sql.rb | 35 |
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 |