diff options
Diffstat (limited to 'spec/active_relation/unit/relations')
-rw-r--r-- | spec/active_relation/unit/relations/deletion_spec.rb | 10 | ||||
-rw-r--r-- | spec/active_relation/unit/relations/insertion_spec.rb | 32 | ||||
-rw-r--r-- | spec/active_relation/unit/relations/update_spec.rb | 19 |
3 files changed, 50 insertions, 11 deletions
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 e01e7792e2..e1718e3b25 100644 --- a/spec/active_relation/unit/relations/insertion_spec.rb +++ b/spec/active_relation/unit/relations/insertion_spec.rb @@ -7,44 +7,54 @@ module ActiveRelation end describe '#to_sql' do - describe 'when given values whose types correspond to the types of the attributes' do - before do - @insertion = Insertion.new(@relation, @relation[:name] => "nick") + 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") - it 'manufactures sql inserting data' do @insertion.to_sql.should be_like(" INSERT INTO `users` - (`users`.`name`) VALUES ('nick') + (`users`.`name`, `users`.`id`) VALUES ('nick', 1) ") end end - describe 'when given values whose types differ from from the types of the attributes' do + describe 'when given values whose types correspond to the types of the attributes' do before do - @insertion = Insertion.new(@relation, @relation[:id] => '1-asdf') + @insertion = Insertion.new(@relation, @relation[:name] => "nick") end it 'manufactures sql inserting data' do @insertion.to_sql.should be_like(" INSERT INTO `users` - (`users`.`id`) VALUES (1) + (`users`.`name`) VALUES ('nick') ") end end - describe 'when given values whose types correspond to the type of the attribtues' do + describe 'when given values whose types differ from from the types of the attributes' do before do - @insertion = Insertion.new(@relation, @relation[:name] => "nick") + @insertion = Insertion.new(@relation, @relation[:id] => '1-asdf') end it 'manufactures sql inserting data' do @insertion.to_sql.should be_like(" INSERT INTO `users` - (`users`.`name`) VALUES ('nick') + (`users`.`id`) VALUES (1) ") end end 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") |