2010-11-23 21:22:42 -05:00
|
|
|
require 'helper'
|
|
|
|
|
|
|
|
module Arel
|
|
|
|
module Nodes
|
|
|
|
describe 'As' do
|
|
|
|
describe '#as' do
|
|
|
|
it 'makes an AS node' do
|
|
|
|
attr = Table.new(:users)[:id]
|
|
|
|
as = attr.as(Arel.sql('foo'))
|
|
|
|
assert_equal attr, as.left
|
|
|
|
assert_equal 'foo', as.right
|
|
|
|
end
|
2011-03-11 21:53:47 -05:00
|
|
|
|
|
|
|
it 'converts right to SqlLiteral if a string' do
|
|
|
|
attr = Table.new(:users)[:id]
|
|
|
|
as = attr.as('foo')
|
|
|
|
assert_kind_of Arel::Nodes::SqlLiteral, as.right
|
|
|
|
end
|
2010-11-23 21:22:42 -05:00
|
|
|
end
|
2012-08-18 22:33:25 -04:00
|
|
|
|
|
|
|
describe 'equality' do
|
|
|
|
it 'is equal with equal ivars' do
|
|
|
|
array = [As.new('foo', 'bar'), As.new('foo', 'bar')]
|
|
|
|
assert_equal 1, array.uniq.size
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'is not equal with different ivars' do
|
|
|
|
array = [As.new('foo', 'bar'), As.new('foo', 'baz')]
|
|
|
|
assert_equal 2, array.uniq.size
|
|
|
|
end
|
|
|
|
end
|
2010-11-23 21:22:42 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|