diff options
Diffstat (limited to 'spec/active_relation/predicates')
-rw-r--r-- | spec/active_relation/predicates/binary_spec.rb | 60 | ||||
-rw-r--r-- | spec/active_relation/predicates/equality_spec.rb | 40 | ||||
-rw-r--r-- | spec/active_relation/predicates/match_spec.rb | 22 | ||||
-rw-r--r-- | spec/active_relation/predicates/relation_inclusion_spec.rb | 36 |
4 files changed, 83 insertions, 75 deletions
diff --git a/spec/active_relation/predicates/binary_spec.rb b/spec/active_relation/predicates/binary_spec.rb index be607efd95..a6878e4898 100644 --- a/spec/active_relation/predicates/binary_spec.rb +++ b/spec/active_relation/predicates/binary_spec.rb @@ -1,42 +1,44 @@ require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper') -describe ActiveRelation::Predicates::Binary do - before do - @relation1 = ActiveRelation::Relations::Table.new(:foo) - @relation2 = ActiveRelation::Relations::Table.new(:bar) - @attribute1 = ActiveRelation::Primitives::Attribute.new(@relation1, :name1) - @attribute2 = ActiveRelation::Primitives::Attribute.new(@relation2, :name2) - class ConcreteBinary < ActiveRelation::Predicates::Binary - def predicate_sql - "<=>" +module ActiveRelation + describe Binary do + before do + @relation1 = Table.new(:foo) + @relation2 = Table.new(:bar) + @attribute1 = Attribute.new(@relation1, :name1) + @attribute2 = Attribute.new(@relation2, :name2) + class ConcreteBinary < Binary + def predicate_sql + "<=>" + end end end - end - describe '==' do - it "obtains if attribute1 and attribute2 are identical" do - ActiveRelation::Predicates::Binary.new(@attribute1, @attribute2).should == ActiveRelation::Predicates::Binary.new(@attribute1, @attribute2) - ActiveRelation::Predicates::Binary.new(@attribute1, @attribute2).should_not == ActiveRelation::Predicates::Binary.new(@attribute1, @attribute1) - end + describe '==' do + it "obtains if attribute1 and attribute2 are identical" do + Binary.new(@attribute1, @attribute2).should == Binary.new(@attribute1, @attribute2) + Binary.new(@attribute1, @attribute2).should_not == Binary.new(@attribute1, @attribute1) + end - it "obtains if the concrete type of the ActiveRelation::Predicates::Binarys are identical" do - ActiveRelation::Predicates::Binary.new(@attribute1, @attribute2).should == ActiveRelation::Predicates::Binary.new(@attribute1, @attribute2) - ActiveRelation::Predicates::Binary.new(@attribute1, @attribute2).should_not == ConcreteBinary.new(@attribute1, @attribute2) + it "obtains if the concrete type of the Predicates::Binarys are identical" do + Binary.new(@attribute1, @attribute2).should == Binary.new(@attribute1, @attribute2) + Binary.new(@attribute1, @attribute2).should_not == ConcreteBinary.new(@attribute1, @attribute2) + end end - end - describe '#qualify' do - it "distributes over the predicates and attributes" do - ConcreteBinary.new(@attribute1, @attribute2).qualify. \ - should == ConcreteBinary.new(@attribute1.qualify, @attribute2.qualify) + describe '#qualify' do + it "distributes over the predicates and attributes" do + ConcreteBinary.new(@attribute1, @attribute2).qualify. \ + should == ConcreteBinary.new(@attribute1.qualify, @attribute2.qualify) + end end - end - describe '#to_sql' do - it 'manufactures correct sql' do - ConcreteBinary.new(@attribute1, @attribute2).to_sql.should be_like(""" - `foo`.`name1` <=> `bar`.`name2` - """) + describe '#to_sql' do + it 'manufactures correct sql' do + ConcreteBinary.new(@attribute1, @attribute2).to_sql.should be_like(""" + `foo`.`name1` <=> `bar`.`name2` + """) + end end end end
\ No newline at end of file diff --git a/spec/active_relation/predicates/equality_spec.rb b/spec/active_relation/predicates/equality_spec.rb index 9394e63835..d23893e438 100644 --- a/spec/active_relation/predicates/equality_spec.rb +++ b/spec/active_relation/predicates/equality_spec.rb @@ -1,28 +1,30 @@ require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper') -describe ActiveRelation::Predicates::Equality do - before do - @relation1 = ActiveRelation::Relations::Table.new(:foo) - @relation2 = ActiveRelation::Relations::Table.new(:bar) - @attribute1 = ActiveRelation::Primitives::Attribute.new(@relation1, :name) - @attribute2 = ActiveRelation::Primitives::Attribute.new(@relation2, :name) - end - - describe '==' do - it "obtains if attribute1 and attribute2 are identical" do - ActiveRelation::Predicates::Equality.new(@attribute1, @attribute2).should == ActiveRelation::Predicates::Equality.new(@attribute1, @attribute2) - ActiveRelation::Predicates::Equality.new(@attribute1, @attribute2).should_not == ActiveRelation::Predicates::Equality.new(@attribute1, @attribute1) +module ActiveRelation + describe Equality do + before do + @relation1 = Table.new(:foo) + @relation2 = Table.new(:bar) + @attribute1 = Attribute.new(@relation1, :name) + @attribute2 = Attribute.new(@relation2, :name) end + + describe '==' do + it "obtains if attribute1 and attribute2 are identical" do + Equality.new(@attribute1, @attribute2).should == Equality.new(@attribute1, @attribute2) + Equality.new(@attribute1, @attribute2).should_not == Equality.new(@attribute1, @attribute1) + end - it "obtains if the concrete type of the predicates are identical" do - ActiveRelation::Predicates::Equality.new(@attribute1, @attribute2).should_not == ActiveRelation::Predicates::Binary.new(@attribute1, @attribute2) - end + it "obtains if the concrete type of the predicates are identical" do + Equality.new(@attribute1, @attribute2).should_not == Binary.new(@attribute1, @attribute2) + end - it "is commutative on the attributes" do - ActiveRelation::Predicates::Equality.new(@attribute1, @attribute2).should == ActiveRelation::Predicates::Equality.new(@attribute2, @attribute1) + it "is commutative on the attributes" do + Equality.new(@attribute1, @attribute2).should == Equality.new(@attribute2, @attribute1) + end end - end - describe '#to_sql' do + describe '#to_sql' do + end end end
\ No newline at end of file diff --git a/spec/active_relation/predicates/match_spec.rb b/spec/active_relation/predicates/match_spec.rb index a01f4fb76b..3d01ce1055 100644 --- a/spec/active_relation/predicates/match_spec.rb +++ b/spec/active_relation/predicates/match_spec.rb @@ -1,16 +1,18 @@ require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper') -describe ActiveRelation::Predicates::RelationInclusion do - before do - @relation1 = ActiveRelation::Relations::Table.new(:foo) - @relation2 = ActiveRelation::Relations::Table.new(:bar) - @attribute = @relation1[:baz] - end +module ActiveRelation + describe RelationInclusion do + before do + @relation1 = Table.new(:foo) + @relation2 = Table.new(:bar) + @attribute = @relation1[:baz] + end - describe ActiveRelation::Predicates::RelationInclusion, '==' do - it "obtains if attribute1 and attribute2 are identical" do - ActiveRelation::Predicates::RelationInclusion.new(@attribute, @relation1).should == ActiveRelation::Predicates::RelationInclusion.new(@attribute, @relation1) - ActiveRelation::Predicates::RelationInclusion.new(@attribute, @relation1).should_not == ActiveRelation::Predicates::RelationInclusion.new(@attribute, @relation2) + describe RelationInclusion, '==' do + it "obtains if attribute1 and attribute2 are identical" do + RelationInclusion.new(@attribute, @relation1).should == RelationInclusion.new(@attribute, @relation1) + RelationInclusion.new(@attribute, @relation1).should_not == RelationInclusion.new(@attribute, @relation2) + end end end end
\ No newline at end of file diff --git a/spec/active_relation/predicates/relation_inclusion_spec.rb b/spec/active_relation/predicates/relation_inclusion_spec.rb index de3dcf7747..05039028ee 100644 --- a/spec/active_relation/predicates/relation_inclusion_spec.rb +++ b/spec/active_relation/predicates/relation_inclusion_spec.rb @@ -1,25 +1,27 @@ require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper') -describe ActiveRelation::Predicates::RelationInclusion do - before do - foo = ActiveRelation::Relations::Table.new(:foo) - @relation1 = foo.project(foo[:id]) - @relation2 = ActiveRelation::Relations::Table.new(:bar) - @attribute = @relation1[:id] - end +module ActiveRelation + describe RelationInclusion do + before do + foo = Table.new(:foo) + @relation1 = foo.project(foo[:id]) + @relation2 = Table.new(:bar) + @attribute = @relation1[:id] + end - describe ActiveRelation::Predicates::RelationInclusion, '==' do - it "obtains if attribute1 and attribute2 are identical" do - ActiveRelation::Predicates::RelationInclusion.new(@attribute, @relation1).should == ActiveRelation::Predicates::RelationInclusion.new(@attribute, @relation1) - ActiveRelation::Predicates::RelationInclusion.new(@attribute, @relation1).should_not == ActiveRelation::Predicates::RelationInclusion.new(@attribute, @relation2) + describe RelationInclusion, '==' do + it "obtains if attribute1 and attribute2 are identical" do + RelationInclusion.new(@attribute, @relation1).should == RelationInclusion.new(@attribute, @relation1) + RelationInclusion.new(@attribute, @relation1).should_not == RelationInclusion.new(@attribute, @relation2) + end end - end - describe ActiveRelation::Predicates::RelationInclusion, '#to_sql' do - it "manufactures subselect sql" do - ActiveRelation::Predicates::RelationInclusion.new(@attribute, @relation1).to_sql.should be_like(""" - `foo`.`id` IN (SELECT `foo`.`id` FROM `foo`) - """) + describe RelationInclusion, '#to_sql' do + it "manufactures subselect sql" do + RelationInclusion.new(@attribute, @relation1).to_sql.should be_like(""" + `foo`.`id` IN (SELECT `foo`.`id` FROM `foo`) + """) + end end end end
\ No newline at end of file |