2010-10-18 19:54:50 -04:00
|
|
|
require 'helper'
|
2010-08-16 23:59:18 -04:00
|
|
|
|
|
|
|
describe Arel::Nodes::SelectStatement do
|
2010-08-19 01:30:21 -04:00
|
|
|
describe "#clone" do
|
2010-08-16 23:59:18 -04:00
|
|
|
it "clones cores" do
|
|
|
|
statement = Arel::Nodes::SelectStatement.new %w[a b c]
|
|
|
|
|
|
|
|
dolly = statement.clone
|
2010-10-18 18:41:21 -04:00
|
|
|
dolly.cores.must_equal statement.cores
|
|
|
|
dolly.cores.wont_be_same_as statement.cores
|
2010-08-16 23:59:18 -04:00
|
|
|
end
|
|
|
|
end
|
2012-08-18 22:33:25 -04:00
|
|
|
|
|
|
|
describe 'equality' do
|
|
|
|
it 'is equal with equal ivars' do
|
|
|
|
statement1 = Arel::Nodes::SelectStatement.new %w[a b c]
|
|
|
|
statement1.offset = 1
|
|
|
|
statement1.limit = 2
|
|
|
|
statement1.lock = false
|
|
|
|
statement1.orders = %w[x y z]
|
|
|
|
statement1.with = 'zomg'
|
|
|
|
statement2 = Arel::Nodes::SelectStatement.new %w[a b c]
|
|
|
|
statement2.offset = 1
|
|
|
|
statement2.limit = 2
|
|
|
|
statement2.lock = false
|
|
|
|
statement2.orders = %w[x y z]
|
|
|
|
statement2.with = 'zomg'
|
|
|
|
array = [statement1, statement2]
|
|
|
|
assert_equal 1, array.uniq.size
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'is not equal with different ivars' do
|
|
|
|
statement1 = Arel::Nodes::SelectStatement.new %w[a b c]
|
|
|
|
statement1.offset = 1
|
|
|
|
statement1.limit = 2
|
|
|
|
statement1.lock = false
|
|
|
|
statement1.orders = %w[x y z]
|
|
|
|
statement1.with = 'zomg'
|
|
|
|
statement2 = Arel::Nodes::SelectStatement.new %w[a b c]
|
|
|
|
statement2.offset = 1
|
|
|
|
statement2.limit = 2
|
|
|
|
statement2.lock = false
|
|
|
|
statement2.orders = %w[x y z]
|
|
|
|
statement2.with = 'wth'
|
|
|
|
array = [statement1, statement2]
|
|
|
|
assert_equal 2, array.uniq.size
|
|
|
|
end
|
|
|
|
end
|
2010-08-16 23:59:18 -04:00
|
|
|
end
|