diff options
Diffstat (limited to 'spec/attributes/header_spec.rb')
-rw-r--r-- | spec/attributes/header_spec.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/attributes/header_spec.rb b/spec/attributes/header_spec.rb new file mode 100644 index 0000000000..8fb4007003 --- /dev/null +++ b/spec/attributes/header_spec.rb @@ -0,0 +1,42 @@ +require 'spec_helper' + +module Arel + describe "Header" do + before :all do + @relation = Model.build do |r| + r.attribute :id, Attributes::Integer + r.attribute :name, Attributes::String + r.attribute :age, Attributes::Integer + end + + @other = Model.build do |r| + r.attribute :foo, Attributes::String + end + + @subset = Model.build do |r| + r.attribute :id, Attributes::Integer + end + end + + describe "attribute lookup" do + it "finds attributes by name" do + @relation.attributes[:name].should == Attributes::String.new(@relation, :name) + end + + it "returns nil if no attribute is found" do + @relation.attributes[:does_not_exist].should be_nil + @relation[:does_not_exist].should be_nil + end + end + + describe "#union" do + it "keeps all attributes from disjoint headers" do + (@relation.attributes.union @other.attributes).to_ary.should have(4).items + end + + it "keeps all attributes from both relations even if they seem like subsets" do + (@relation.attributes.union @subset.attributes).to_ary.should have(4).items + end + end + end +end
\ No newline at end of file |