From e26006fb877f8b9e75d814f3499c7e3dd7dc47b7 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Wed, 28 Jul 2010 14:03:20 -0700 Subject: adding tests for the christener --- spec/sql/christener_spec.rb | 78 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 spec/sql/christener_spec.rb (limited to 'spec') diff --git a/spec/sql/christener_spec.rb b/spec/sql/christener_spec.rb new file mode 100644 index 0000000000..d50cb56261 --- /dev/null +++ b/spec/sql/christener_spec.rb @@ -0,0 +1,78 @@ +require 'spec_helper' + +module Arel + module Sql + describe "Christener" do + it "returns the same name with two table objects" do + christener = Christener.new + table = Table.new 'users' + table2 = Table.new 'users' + christener.name_for(table).should == 'users' + christener.name_for(table2).should == 'users' + end + + it "returns the first name" do + christener = Christener.new + table = Table.new 'users' + table2 = Table.new 'pictures' + christener.name_for(table).should == 'users' + christener.name_for(table2).should == 'pictures' + christener.name_for(table).should == 'users' + end + + it "returns a unique name for an alias" do + christener = Christener.new + table = Table.new 'users' + table2 = Table.new 'users', :as => 'friends' + christener.name_for(table).should == 'users' + christener.name_for(table2).should == 'friends' + end + + it "returns a unique name for an alias with same name" do + christener = Christener.new + table = Table.new 'users' + table2 = Table.new 'friends', :as => 'users' + christener.name_for(table).should == 'users' + christener.name_for(table2).should == 'users_2' + end + + it "returns alias name" do + christener = Christener.new + table = Table.new 'users' + aliaz = Alias.new table + + christener.name_for(table).should == 'users' + christener.name_for(aliaz).should == 'users_2' + end + + it "returns alias first" do + christener = Christener.new + table = Table.new 'users' + aliaz = Alias.new table + + christener.name_for(aliaz).should == 'users' + christener.name_for(table).should == 'users_2' + end + + it "returns externalization name" do + christener = Christener.new + table = Table.new 'users' + ext = Externalization.new table + + christener.name_for(table).should == 'users' + christener.name_for(ext).should == 'users_external' + end + + it "returns aliases externalizations and tables" do + christener = Christener.new + table = Table.new 'users' + aliaz = Alias.new table + ext = Externalization.new table + + christener.name_for(table).should == 'users' + christener.name_for(aliaz).should == 'users_2' + christener.name_for(ext).should == 'users_external' + end + end + end +end -- cgit v1.2.3