diff options
Diffstat (limited to 'spec/active_relation/predicates/relation_inclusion_spec.rb')
-rw-r--r-- | spec/active_relation/predicates/relation_inclusion_spec.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/spec/active_relation/predicates/relation_inclusion_spec.rb b/spec/active_relation/predicates/relation_inclusion_spec.rb new file mode 100644 index 0000000000..de3dcf7747 --- /dev/null +++ b/spec/active_relation/predicates/relation_inclusion_spec.rb @@ -0,0 +1,25 @@ +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 + + 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) + 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`) + """) + end + end +end
\ No newline at end of file |