From d27bfef96a86e7278dee297a8af3612ebefbe898 Mon Sep 17 00:00:00 2001 From: bigxiang Date: Sat, 23 Aug 2014 21:01:12 +0800 Subject: Fix lt & lteq don't accept most of values. --- test/attributes/test_attribute.rb | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'test') diff --git a/test/attributes/test_attribute.rb b/test/attributes/test_attribute.rb index f55e39cfe9..12dd25291e 100644 --- a/test/attributes/test_attribute.rb +++ b/test/attributes/test_attribute.rb @@ -180,6 +180,9 @@ module Arel mgr.to_sql.must_be_like %{ SELECT "users"."id" FROM "users" WHERE "users"."id" < 10 } + + mgr.where relation[:created_at].lt(::Time.now) + mgr.to_sql.must_match %{"users"."created_at" <} end end @@ -228,6 +231,9 @@ module Arel mgr.to_sql.must_be_like %{ SELECT "users"."id" FROM "users" WHERE "users"."id" <= 10 } + + mgr.where relation[:created_at].lteq(::Time.now) + mgr.to_sql.must_match %{"users"."created_at" <=} end end -- cgit v1.2.3 From 3f8ac523cbf2ebc544e5eec0db2b3247f396f9b3 Mon Sep 17 00:00:00 2001 From: bigxiang Date: Sun, 31 Aug 2014 22:11:25 +0800 Subject: Change specs to cover lt, lteq, gt and gteq. --- test/attributes/test_attribute.rb | 46 +++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/attributes/test_attribute.rb b/test/attributes/test_attribute.rb index 12dd25291e..50da1cea5b 100644 --- a/test/attributes/test_attribute.rb +++ b/test/attributes/test_attribute.rb @@ -85,6 +85,17 @@ module Arel SELECT * FROM "users" WHERE "users"."karma" > (SELECT AVG("users"."karma") AS avg_id FROM "users") } end + + it 'should accept various data types.' do + relation = Table.new(:users) + mgr = relation.project relation[:id] + mgr.where relation[:name].gt('fake_name') + mgr.to_sql.must_match %{"users"."name" > 'fake_name'} + + current_time = ::Time.now + mgr.where relation[:created_at].gt(current_time) + mgr.to_sql.must_match %{"users"."created_at" > '#{current_time}'} + end end describe '#gt_any' do @@ -133,6 +144,17 @@ module Arel SELECT "users"."id" FROM "users" WHERE "users"."id" >= 10 } end + + it 'should accept various data types.' do + relation = Table.new(:users) + mgr = relation.project relation[:id] + mgr.where relation[:name].gteq('fake_name') + mgr.to_sql.must_match %{"users"."name" >= 'fake_name'} + + current_time = ::Time.now + mgr.where relation[:created_at].gteq(current_time) + mgr.to_sql.must_match %{"users"."created_at" >= '#{current_time}'} + end end describe '#gteq_any' do @@ -180,9 +202,17 @@ module Arel mgr.to_sql.must_be_like %{ SELECT "users"."id" FROM "users" WHERE "users"."id" < 10 } + end + + it 'should accept various data types.' do + relation = Table.new(:users) + mgr = relation.project relation[:id] + mgr.where relation[:name].lt('fake_name') + mgr.to_sql.must_match %{"users"."name" < 'fake_name'} - mgr.where relation[:created_at].lt(::Time.now) - mgr.to_sql.must_match %{"users"."created_at" <} + current_time = ::Time.now + mgr.where relation[:created_at].lt(current_time) + mgr.to_sql.must_match %{"users"."created_at" < '#{current_time}'} end end @@ -231,9 +261,17 @@ module Arel mgr.to_sql.must_be_like %{ SELECT "users"."id" FROM "users" WHERE "users"."id" <= 10 } + end + + it 'should accept various data types.' do + relation = Table.new(:users) + mgr = relation.project relation[:id] + mgr.where relation[:name].lteq('fake_name') + mgr.to_sql.must_match %{"users"."name" <= 'fake_name'} - mgr.where relation[:created_at].lteq(::Time.now) - mgr.to_sql.must_match %{"users"."created_at" <=} + current_time = ::Time.now + mgr.where relation[:created_at].lteq(current_time) + mgr.to_sql.must_match %{"users"."created_at" <= '#{current_time}'} end end -- cgit v1.2.3