2009-09-14 06:21:24 -04:00
|
|
|
require 'spec_helper'
|
2008-05-27 00:02:23 -04:00
|
|
|
|
|
|
|
module Arel
|
|
|
|
describe Table do
|
|
|
|
before do
|
|
|
|
@relation = Table.new(:users)
|
|
|
|
end
|
2009-05-17 16:20:40 -04:00
|
|
|
|
2008-05-27 00:02:23 -04:00
|
|
|
describe '[]' do
|
|
|
|
describe 'when given a', Symbol do
|
|
|
|
it "manufactures an attribute if the symbol names an attribute within the relation" do
|
|
|
|
@relation[:id].should == Attribute.new(@relation, :id)
|
|
|
|
@relation[:does_not_exist].should be_nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe 'when given an', Attribute do
|
|
|
|
it "returns the attribute if the attribute is within the relation" do
|
|
|
|
@relation[@relation[:id]].should == @relation[:id]
|
|
|
|
end
|
2009-05-17 16:20:40 -04:00
|
|
|
|
2008-05-27 00:02:23 -04:00
|
|
|
it "returns nil if the attribtue is not within the relation" do
|
|
|
|
another_relation = Table.new(:photos)
|
|
|
|
@relation[another_relation[:id]].should be_nil
|
|
|
|
end
|
|
|
|
end
|
2009-05-17 16:20:40 -04:00
|
|
|
|
2008-05-27 00:02:23 -04:00
|
|
|
describe 'when given an', Expression do
|
|
|
|
before do
|
|
|
|
@expression = @relation[:id].count
|
|
|
|
end
|
2009-05-17 16:20:40 -04:00
|
|
|
|
2008-05-27 00:02:23 -04:00
|
|
|
it "returns the Expression if the Expression is within the relation" do
|
|
|
|
@relation[@expression].should be_nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2009-05-17 16:20:40 -04:00
|
|
|
end
|