From 8feaf2b8bd0c2c9fcc137c7f5fa5f30b74fa35ef Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Sat, 12 Apr 2008 18:36:43 -0400 Subject: Use a git-ignored database.yml file for test DB configuration --- .gitignore | 1 + config/database.yml.example | 6 ++++++ spec/spec_helper.rb | 12 +++--------- 3 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 config/database.yml.example diff --git a/.gitignore b/.gitignore index d6355b45d0..2bab52ab21 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ coverage/* +config/database.yml *.DS_Store diff --git a/config/database.yml.example b/config/database.yml.example new file mode 100644 index 0000000000..2230912f7d --- /dev/null +++ b/config/database.yml.example @@ -0,0 +1,6 @@ +test: + adapter: mysql + username: root + password: password + encoding: utf8 + database: sql_algebra_test diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 4b61ae8ca8..b633d17257 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -6,15 +6,9 @@ $LOAD_PATH.unshift "#{dir}/../lib" Dir["#{dir}/matchers/*"].each { |m| require "#{dir}/matchers/#{File.basename(m)}" } require 'active_relation' -ActiveRecord::Base.configurations = { - 'test' => { - :adapter => 'mysql', - :username => 'root', - :password => 'password', - :encoding => 'utf8', - :database => 'sql_algebra_test', - }, -} +FileUtils.cp("#{dir}/../config/database.yml.example", "#{dir}/../config/database.yml") unless File.exist?("#{dir}/../config/database.yml") + +ActiveRecord::Base.configurations = YAML::load(IO.read("#{dir}/../config/database.yml")) ActiveRecord::Base.establish_connection 'test' class Hash -- cgit v1.2.3 From bfcb7ca25d86491fb4e1edeb463a99006f6c7151 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Sun, 13 Apr 2008 16:24:51 -0400 Subject: Remove duplicate Insertion spec --- spec/active_relation/unit/relations/insertion_spec.rb | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/spec/active_relation/unit/relations/insertion_spec.rb b/spec/active_relation/unit/relations/insertion_spec.rb index e01e7792e2..7aca7f24c1 100644 --- a/spec/active_relation/unit/relations/insertion_spec.rb +++ b/spec/active_relation/unit/relations/insertion_spec.rb @@ -34,20 +34,6 @@ module ActiveRelation ") end end - - describe 'when given values whose types correspond to the type of the attribtues' do - before do - @insertion = Insertion.new(@relation, @relation[:name] => "nick") - end - - it 'manufactures sql inserting data' do - @insertion.to_sql.should be_like(" - INSERT - INTO `users` - (`users`.`name`) VALUES ('nick') - ") - end - end end describe '#call' do -- cgit v1.2.3 From 1215d8b0b9a44619ea1e77dbce723da12f7f73ea Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Sun, 13 Apr 2008 17:08:14 -0400 Subject: Un-pending a Table spec that passes now --- spec/active_relation/unit/relations/table_spec.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/active_relation/unit/relations/table_spec.rb b/spec/active_relation/unit/relations/table_spec.rb index 6286ea9de1..6b562cff89 100644 --- a/spec/active_relation/unit/relations/table_spec.rb +++ b/spec/active_relation/unit/relations/table_spec.rb @@ -68,7 +68,6 @@ module ActiveRelation describe '#reset' do it "reloads columns from the database" do - pending lambda { stub(@relation.engine).columns { [] } }.should_not change { @relation.attributes } lambda { @relation.reset }.should change { @relation.attributes } end -- cgit v1.2.3 From 968271f718929311797342e211f5ca29506463b9 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Sun, 13 Apr 2008 17:09:59 -0400 Subject: Some pending specs for Insertion, Deletion and Update relating to LIMITs, multiple values and multiple rows --- .../unit/relations/deletion_spec.rb | 10 +++++++++ .../unit/relations/insertion_spec.rb | 24 ++++++++++++++++++++++ spec/active_relation/unit/relations/update_spec.rb | 19 +++++++++++++++++ 3 files changed, 53 insertions(+) diff --git a/spec/active_relation/unit/relations/deletion_spec.rb b/spec/active_relation/unit/relations/deletion_spec.rb index 71ddd8d820..72f3f81b2a 100644 --- a/spec/active_relation/unit/relations/deletion_spec.rb +++ b/spec/active_relation/unit/relations/deletion_spec.rb @@ -21,6 +21,16 @@ module ActiveRelation WHERE `users`.`id` = 1 ") end + + it "manufactures sql deleting a ranged relation" do + pending do + Deletion.new(@relation[0..0]).to_sql.should be_like(" + DELETE + FROM `users` + LIMIT 1 + ") + end + end end describe '#call' do diff --git a/spec/active_relation/unit/relations/insertion_spec.rb b/spec/active_relation/unit/relations/insertion_spec.rb index 7aca7f24c1..e1718e3b25 100644 --- a/spec/active_relation/unit/relations/insertion_spec.rb +++ b/spec/active_relation/unit/relations/insertion_spec.rb @@ -7,6 +7,30 @@ module ActiveRelation end describe '#to_sql' do + it 'manufactures sql inserting data when given multiple rows' do + pending do + @insertion = Insertion.new(@relation, [@relation[:name] => "nick", @relation[:name] => "bryan"]) + + @insertion.to_sql.should be_like(" + INSERT + INTO `users` + (`users`.`name`) VALUES ('nick'), ('bryan') + ") + end + end + + it 'manufactures sql inserting data when given multiple values' do + pending do + @insertion = Insertion.new(@relation, @relation[:id] => "1", @relation[:name] => "nick") + + @insertion.to_sql.should be_like(" + INSERT + INTO `users` + (`users`.`name`, `users`.`id`) VALUES ('nick', 1) + ") + end + end + describe 'when given values whose types correspond to the types of the attributes' do before do @insertion = Insertion.new(@relation, @relation[:name] => "nick") diff --git a/spec/active_relation/unit/relations/update_spec.rb b/spec/active_relation/unit/relations/update_spec.rb index 5c234fe759..6634dc67d1 100644 --- a/spec/active_relation/unit/relations/update_spec.rb +++ b/spec/active_relation/unit/relations/update_spec.rb @@ -7,6 +7,25 @@ module ActiveRelation end describe '#to_sql' do + it "manufactures sql updating attributes when given multiple attributes" do + pending do + Update.new(@relation, @relation[:id] => 1, @relation[:name] => "nick").to_sql.should be_like(" + UPDATE `users` + SET `users`.`name` = 'nick', `users`.`id` = 1 + ") + end + end + + it "manufactures sql updating attributes when given a ranged relation" do + pending do + Update.new(@relation[0..0], @relation[:name] => "nick").to_sql.should be_like(" + UPDATE `users` + SET `users`.`name` = 'nick' + LIMIT 1 + ") + end + end + describe 'when given values whose types correspond to the types of the attributes' do before do @update = Update.new(@relation, @relation[:name] => "nick") -- cgit v1.2.3