mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
69 lines
2.1 KiB
Ruby
69 lines
2.1 KiB
Ruby
require 'helper'
|
|
|
|
module Arel
|
|
module Nodes
|
|
class TestSelectCore < Minitest::Test
|
|
def test_clone
|
|
core = Arel::Nodes::SelectCore.new
|
|
core.froms = %w[a b c]
|
|
core.projections = %w[d e f]
|
|
core.wheres = %w[g h i]
|
|
|
|
dolly = core.clone
|
|
|
|
dolly.froms.must_equal core.froms
|
|
dolly.projections.must_equal core.projections
|
|
dolly.wheres.must_equal core.wheres
|
|
|
|
dolly.froms.wont_be_same_as core.froms
|
|
dolly.projections.wont_be_same_as core.projections
|
|
dolly.wheres.wont_be_same_as core.wheres
|
|
end
|
|
|
|
def test_set_quantifier
|
|
core = Arel::Nodes::SelectCore.new
|
|
core.set_quantifier = Arel::Nodes::Distinct.new
|
|
viz = Arel::Visitors::ToSql.new Table.engine.connection_pool
|
|
assert_match 'DISTINCT', viz.accept(core)
|
|
end
|
|
|
|
def test_equality_with_same_ivars
|
|
core1 = SelectCore.new
|
|
core1.froms = %w[a b c]
|
|
core1.projections = %w[d e f]
|
|
core1.wheres = %w[g h i]
|
|
core1.groups = %w[j k l]
|
|
core1.windows = %w[m n o]
|
|
core1.having = %w[p q r]
|
|
core2 = SelectCore.new
|
|
core2.froms = %w[a b c]
|
|
core2.projections = %w[d e f]
|
|
core2.wheres = %w[g h i]
|
|
core2.groups = %w[j k l]
|
|
core2.windows = %w[m n o]
|
|
core2.having = %w[p q r]
|
|
array = [core1, core2]
|
|
assert_equal 1, array.uniq.size
|
|
end
|
|
|
|
def test_inequality_with_different_ivars
|
|
core1 = SelectCore.new
|
|
core1.froms = %w[a b c]
|
|
core1.projections = %w[d e f]
|
|
core1.wheres = %w[g h i]
|
|
core1.groups = %w[j k l]
|
|
core1.windows = %w[m n o]
|
|
core1.having = %w[p q r]
|
|
core2 = SelectCore.new
|
|
core2.froms = %w[a b c]
|
|
core2.projections = %w[d e f]
|
|
core2.wheres = %w[g h i]
|
|
core2.groups = %w[j k l]
|
|
core2.windows = %w[m n o]
|
|
core2.having = %w[l o l]
|
|
array = [core1, core2]
|
|
assert_equal 2, array.uniq.size
|
|
end
|
|
end
|
|
end
|
|
end
|