From 2e63ac91302e2df397a286fdaf9cea51635071a6 Mon Sep 17 00:00:00 2001 From: Nick Kallen Date: Sun, 13 Jan 2008 17:43:00 -0800 Subject: removed support for scalar select (will return later); added support for aliased tables --- spec/active_relation/relations/alias_spec.rb | 36 ++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 spec/active_relation/relations/alias_spec.rb (limited to 'spec/active_relation/relations/alias_spec.rb') diff --git a/spec/active_relation/relations/alias_spec.rb b/spec/active_relation/relations/alias_spec.rb new file mode 100644 index 0000000000..6f25df3ddb --- /dev/null +++ b/spec/active_relation/relations/alias_spec.rb @@ -0,0 +1,36 @@ +require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper') + +describe ActiveRelation::Relations::Alias do + before do + @relation = ActiveRelation::Relations::Table.new(:users) + @alias_relation = @relation.as(:foo) + end + + describe '#name' do + it 'returns the alias' do + @alias_relation.name.should == :foo + end + end + + describe '#attributes' do + it 'manufactures sql deleting a table relation' do + @alias_relation.attributes.should == @relation.attributes.collect { |a| ActiveRelation::Primitives::Attribute.new(@alias_relation, a.name) } + end + end + + describe '[]' do + it 'manufactures attributes associated with the aliased relation' do + @alias_relation[:id].relation.should == @alias_relation + @alias_relation[:does_not_exist].should be_nil + end + end + + describe '#to_sql' do + it "manufactures an aliased select query" do + @alias_relation.to_sql.should be_like(""" + SELECT `foo`.`name`, `foo`.`id` + FROM `users` AS `foo` + """) + end + end +end \ No newline at end of file -- cgit v1.2.3