aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorNick Kallen <nkallen@nick-kallens-computer-2.local>2008-05-18 16:11:08 -0700
committerNick Kallen <nkallen@nick-kallens-computer-2.local>2008-05-18 16:11:08 -0700
commit32ad530b825f4cdac51e579306548ca695471039 (patch)
treedf137bf2e7dfd37d086c3b6b3df291c1b940e23f /spec
parent7a068384b74813b3ea9a309d237c6ce8e8fde5d6 (diff)
downloadrails-32ad530b825f4cdac51e579306548ca695471039.tar.gz
rails-32ad530b825f4cdac51e579306548ca695471039.tar.bz2
rails-32ad530b825f4cdac51e579306548ca695471039.zip
rename refactor of circle
Diffstat (limited to 'spec')
-rw-r--r--spec/arel/integration/joins/with_adjacency_spec.rb18
-rw-r--r--spec/arel/integration/joins/with_aggregations_spec.rb20
-rw-r--r--spec/arel/unit/predicates/binary_spec.rb2
-rw-r--r--spec/arel/unit/primitives/expression_spec.rb1
-rw-r--r--spec/arel/unit/relations/alias_spec.rb9
-rw-r--r--spec/arel/unit/relations/selection_spec.rb9
6 files changed, 25 insertions, 34 deletions
diff --git a/spec/arel/integration/joins/with_adjacency_spec.rb b/spec/arel/integration/joins/with_adjacency_spec.rb
index ab63fecb46..222303977f 100644
--- a/spec/arel/integration/joins/with_adjacency_spec.rb
+++ b/spec/arel/integration/joins/with_adjacency_spec.rb
@@ -97,6 +97,17 @@ module Arel
.on(@predicate) \
.should disambiguate_attributes(@relation1[:id], @relation2[:id])
end
+
+ describe 'when both relations are compound and only one is an alias' do
+ it 'disambiguates the relation that serves as the ancestor to the attribute' do
+ compound1 = @relation1.select(@predicate)
+ compound2 = compound1.alias
+ compound1 \
+ .join(compound2) \
+ .on(@predicate) \
+ .should disambiguate_attributes(compound1[:id], compound2[:id])
+ end
+ end
describe 'when the left relation is extremely compound' do
it 'disambiguates the relation that serves as the ancestor to the attribute' do
@@ -107,13 +118,6 @@ module Arel
.on(@predicate) \
.should disambiguate_attributes(@relation1[:id], @relation2[:id])
end
-
- it '' do
- r0 = @relation1.select(@predicate)
- r1 = r0.alias
- r = r0.join(r1).on(@predicate)
- r.should disambiguate_attributes(r0[:id], r1[:id])
- end
end
describe 'when the right relation is extremely compound' do
diff --git a/spec/arel/integration/joins/with_aggregations_spec.rb b/spec/arel/integration/joins/with_aggregations_spec.rb
index 655250f4f9..db34bb1b46 100644
--- a/spec/arel/integration/joins/with_aggregations_spec.rb
+++ b/spec/arel/integration/joins/with_aggregations_spec.rb
@@ -15,16 +15,10 @@ module Arel
.project(@relation2[:user_id], @relation2[:id].count.as(:cnt)) \
end
- describe '#attributes' do
- it '' do
- @relation1.join(@aggregation).on(@predicate)[@relation2[:user_id]].should_not be_nil
- end
- end
-
describe '#to_sql' do
describe 'with the aggregation on the right' do
it 'manufactures sql joining the left table to a derived table' do
- Join.new("INNER JOIN", @relation1, @aggregation, @predicate).to_sql.should be_like("
+ @relation1.join(@aggregation).on(@predicate).to_sql.should be_like("
SELECT `users`.`id`, `users`.`name`, `photos_aggregation`.`user_id`, `photos_aggregation`.`cnt`
FROM `users`
INNER JOIN (SELECT `photos`.`user_id`, COUNT(`photos`.`id`) AS `cnt` FROM `photos` GROUP BY `photos`.`user_id`) AS `photos_aggregation`
@@ -35,7 +29,7 @@ module Arel
describe 'with the aggregation on the left' do
it 'manufactures sql joining the right table to a derived table' do
- Join.new("INNER JOIN", @aggregation, @relation1, @predicate).to_sql.should be_like("
+ @aggregation.join(@relation1).on(@predicate).to_sql.should be_like("
SELECT `photos_aggregation`.`user_id`, `photos_aggregation`.`cnt`, `users`.`id`, `users`.`name`
FROM (SELECT `photos`.`user_id`, COUNT(`photos`.`id`) AS `cnt` FROM `photos` GROUP BY `photos`.`user_id`) AS `photos_aggregation`
INNER JOIN `users`
@@ -43,11 +37,17 @@ module Arel
")
end
end
+
+ describe 'with the aggregation on both sides' do
+ it '' do
+ @aggregation.join(@aggregation.alias).on(@predicate).to_sql.should == ''
+ end
+ end
describe 'when the aggration has a selection' do
describe 'with the aggregation on the left' do
it "manufactures sql keeping selects on the aggregation within the derived table" do
- Join.new("INNER JOIN", @relation1, @aggregation.select(@aggregation[:user_id].eq(1)), @predicate).to_sql.should be_like("
+ @relation1.join(@aggregation.select(@aggregation[:user_id].eq(1))).on(@predicate).to_sql.should be_like("
SELECT `users`.`id`, `users`.`name`, `photos_aggregation`.`user_id`, `photos_aggregation`.`cnt`
FROM `users`
INNER JOIN (SELECT `photos`.`user_id`, COUNT(`photos`.`id`) AS `cnt` FROM `photos` WHERE `photos`.`user_id` = 1 GROUP BY `photos`.`user_id`) AS `photos_aggregation`
@@ -58,7 +58,7 @@ module Arel
describe 'with the aggregation on the right' do
it "manufactures sql keeping selects on the aggregation within the derived table" do
- Join.new("INNER JOIN", @aggregation.select(@aggregation[:user_id].eq(1)), @relation1, @predicate).to_sql.should be_like("
+ @aggregation.select(@aggregation[:user_id].eq(1)).join(@relation1).on(@predicate).to_sql.should be_like("
SELECT `photos_aggregation`.`user_id`, `photos_aggregation`.`cnt`, `users`.`id`, `users`.`name`
FROM (SELECT `photos`.`user_id`, COUNT(`photos`.`id`) AS `cnt` FROM `photos` WHERE `photos`.`user_id` = 1 GROUP BY `photos`.`user_id`) AS `photos_aggregation`
INNER JOIN `users`
diff --git a/spec/arel/unit/predicates/binary_spec.rb b/spec/arel/unit/predicates/binary_spec.rb
index e5b30b787d..57b1f3a534 100644
--- a/spec/arel/unit/predicates/binary_spec.rb
+++ b/spec/arel/unit/predicates/binary_spec.rb
@@ -72,7 +72,7 @@ module Arel
describe 'when an operand is a value' do
it "manufactures an expression with unmodified values" do
ConcreteBinary.new(@attribute1, "asdf").bind(@another_relation). \
- should == ConcreteBinary.new(@attribute1.circle(@another_relation), "asdf".circle(@another_relation))
+ should == ConcreteBinary.new(@attribute1.find_correlate_in(@another_relation), "asdf".find_correlate_in(@another_relation))
end
end
end
diff --git a/spec/arel/unit/primitives/expression_spec.rb b/spec/arel/unit/primitives/expression_spec.rb
index ace439b952..8a990231f6 100644
--- a/spec/arel/unit/primitives/expression_spec.rb
+++ b/spec/arel/unit/primitives/expression_spec.rb
@@ -14,7 +14,6 @@ module Arel
describe '#bind' do
it "manufactures an attribute with a rebound relation and self as the ancestor" do
- pending
derived_relation = @relation.select(@relation[:id].eq(1))
@expression.bind(derived_relation).should == Expression.new(@attribute.bind(derived_relation), "COUNT", nil, @expression)
end
diff --git a/spec/arel/unit/relations/alias_spec.rb b/spec/arel/unit/relations/alias_spec.rb
index 85850b5e1a..96e06f48bc 100644
--- a/spec/arel/unit/relations/alias_spec.rb
+++ b/spec/arel/unit/relations/alias_spec.rb
@@ -11,15 +11,6 @@ module Arel
Alias.new(@relation).should_not == Alias.new(@relation)
(aliaz = Alias.new(@relation)).should == aliaz
end
-
- it '' do
- @relation.select(@relation[:id].eq(1)).to_sql.should be_like("
- SELECT `users`.`id`, `users`.`name`
- FROM `users`
- WHERE
- `users`.`id` = 1
- ")
- end
end
end
end \ No newline at end of file
diff --git a/spec/arel/unit/relations/selection_spec.rb b/spec/arel/unit/relations/selection_spec.rb
index 61d9787df2..20807f952f 100644
--- a/spec/arel/unit/relations/selection_spec.rb
+++ b/spec/arel/unit/relations/selection_spec.rb
@@ -8,13 +8,10 @@ module Arel
end
describe '#initialize' do
- before do
- @another_predicate = @relation[:name].lt(2)
- end
-
it "manufactures nested selection relations if multiple predicates are provided" do
- Selection.new(@relation, @predicate, @another_predicate). \
- should == Selection.new(Selection.new(@relation, @another_predicate), @predicate)
+ another_predicate = @relation[:name].lt(2)
+ Selection.new(@relation, @predicate, another_predicate). \
+ should == Selection.new(Selection.new(@relation, another_predicate), @predicate)
end
end