From 960bbcb3ce4a82cf4f031d1c6682ce4c1a04474d Mon Sep 17 00:00:00 2001 From: Nick Kallen Date: Sun, 30 Dec 2007 11:35:44 -0800 Subject: initial import --- spec/predicates/binary_predicate_spec.rb | 27 ++++++++++++++++++++++ spec/predicates/equality_predicate_spec.rb | 25 ++++++++++++++++++++ .../relation_inclusion_predicate_spec.rb | 16 +++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 spec/predicates/binary_predicate_spec.rb create mode 100644 spec/predicates/equality_predicate_spec.rb create mode 100644 spec/predicates/relation_inclusion_predicate_spec.rb (limited to 'spec/predicates') 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 -- cgit v1.2.3