diff options
author | Nick Kallen <nkallen@nick-kallens-computer-2.local> | 2007-12-30 11:35:44 -0800 |
---|---|---|
committer | Nick Kallen <nkallen@nick-kallens-computer-2.local> | 2007-12-30 11:35:44 -0800 |
commit | 960bbcb3ce4a82cf4f031d1c6682ce4c1a04474d (patch) | |
tree | 24e8e29629450700940d3bdc233265648b5f73f2 /spec/predicates | |
download | rails-960bbcb3ce4a82cf4f031d1c6682ce4c1a04474d.tar.gz rails-960bbcb3ce4a82cf4f031d1c6682ce4c1a04474d.tar.bz2 rails-960bbcb3ce4a82cf4f031d1c6682ce4c1a04474d.zip |
initial import
Diffstat (limited to 'spec/predicates')
-rw-r--r-- | spec/predicates/binary_predicate_spec.rb | 27 | ||||
-rw-r--r-- | spec/predicates/equality_predicate_spec.rb | 25 | ||||
-rw-r--r-- | spec/predicates/relation_inclusion_predicate_spec.rb | 16 |
3 files changed, 68 insertions, 0 deletions
diff --git a/spec/predicates/binary_predicate_spec.rb b/spec/predicates/binary_predicate_spec.rb new file mode 100644 index 0000000000..1be7dd067d --- /dev/null +++ b/spec/predicates/binary_predicate_spec.rb @@ -0,0 +1,27 @@ +require File.join(File.dirname(__FILE__), '..', 'spec_helper') + +describe BinaryPredicate do + before do + @relation1 = TableRelation.new(:foo) + @relation2 = TableRelation.new(:bar) + @attribute1 = Attribute.new(@relation1, :attribute_name) + @attribute2 = Attribute.new(@relation2, :attribute_name) + end + + describe BinaryPredicate, '==' do + before do + class ConcreteBinaryPredicate < BinaryPredicate + end + end + + it "obtains if attribute1 and attribute2 are identical" do + BinaryPredicate.new(@attribute1, @attribute2).should == BinaryPredicate.new(@attribute1, @attribute2) + BinaryPredicate.new(@attribute1, @attribute2).should_not == BinaryPredicate.new(@attribute1, @attribute1) + end + + it "obtains if the concrete type of the BinaryPredicates are identical" do + ConcreteBinaryPredicate.new(@attribute1, @attribute2).should == ConcreteBinaryPredicate.new(@attribute1, @attribute2) + BinaryPredicate.new(@attribute1, @attribute2).should_not == ConcreteBinaryPredicate.new(@attribute1, @attribute2) + end + end +end
\ No newline at end of file diff --git a/spec/predicates/equality_predicate_spec.rb b/spec/predicates/equality_predicate_spec.rb new file mode 100644 index 0000000000..18d3399193 --- /dev/null +++ b/spec/predicates/equality_predicate_spec.rb @@ -0,0 +1,25 @@ +require File.join(File.dirname(__FILE__), '..', 'spec_helper') + +describe EqualityPredicate do + before do + @relation1 = TableRelation.new(:foo) + @relation2 = TableRelation.new(:bar) + @attribute1 = Attribute.new(@relation1, :attribute_name) + @attribute2 = Attribute.new(@relation2, :attribute_name) + end + + describe EqualityPredicate, '==' do + it "obtains if attribute1 and attribute2 are identical" do + EqualityPredicate.new(@attribute1, @attribute2).should == EqualityPredicate.new(@attribute1, @attribute2) + EqualityPredicate.new(@attribute1, @attribute2).should_not == EqualityPredicate.new(@attribute1, @attribute1) + end + + it "obtains if the concrete type of the predicates are identical" do + EqualityPredicate.new(@attribute1, @attribute2).should_not == BinaryPredicate.new(@attribute1, @attribute2) + end + + it "is commutative on the attributes" do + EqualityPredicate.new(@attribute1, @attribute2).should == EqualityPredicate.new(@attribute2, @attribute1) + end + end +end
\ No newline at end of file diff --git a/spec/predicates/relation_inclusion_predicate_spec.rb b/spec/predicates/relation_inclusion_predicate_spec.rb new file mode 100644 index 0000000000..6cd37fafa8 --- /dev/null +++ b/spec/predicates/relation_inclusion_predicate_spec.rb @@ -0,0 +1,16 @@ +require File.join(File.dirname(__FILE__), '..', 'spec_helper') + +describe RelationInclusionPredicate do + before do + @relation1 = TableRelation.new(:foo) + @relation2 = TableRelation.new(:bar) + @attribute = @relation1[:baz] + end + + describe RelationInclusionPredicate, '==' do + it "obtains if attribute1 and attribute2 are identical" do + RelationInclusionPredicate.new(@attribute, @relation1).should == RelationInclusionPredicate.new(@attribute, @relation1) + RelationInclusionPredicate.new(@attribute, @relation1).should_not == RelationInclusionPredicate.new(@attribute, @relation2) + end + end +end
\ No newline at end of file |