diff options
author | Kir Shatrov <shatrov@me.com> | 2017-04-30 22:19:09 -0400 |
---|---|---|
committer | Kir Shatrov <shatrov@me.com> | 2017-05-01 08:21:58 -0400 |
commit | 5d6d14cb6be217abc04253da0fe49721d09e9575 (patch) | |
tree | b3ca61f5ff9a083f0b64611788554480d94d36dd /test | |
parent | 437aa3a4bb8ad4f3f4eba299dbb1112852f9c7ac (diff) | |
download | rails-5d6d14cb6be217abc04253da0fe49721d09e9575.tar.gz rails-5d6d14cb6be217abc04253da0fe49721d09e9575.tar.bz2 rails-5d6d14cb6be217abc04253da0fe49721d09e9575.zip |
Support multiple inserts
Diffstat (limited to 'test')
-rw-r--r-- | test/test_insert_manager.rb | 19 | ||||
-rw-r--r-- | test/test_table.rb | 4 | ||||
-rw-r--r-- | test/visitors/test_to_sql.rb | 2 |
3 files changed, 22 insertions, 3 deletions
diff --git a/test/test_insert_manager.rb b/test/test_insert_manager.rb index b9ee6f76ac..46549c1ae4 100644 --- a/test/test_insert_manager.rb +++ b/test/test_insert_manager.rb @@ -28,6 +28,25 @@ module Arel } end + it 'inserts multiple values' do + table = Table.new(:users) + manager = Arel::InsertManager.new + manager.into table + + manager.columns << table[:id] + manager.columns << table[:name] + + manager.values = manager.create_tuple([ + manager.create_values(%w{ 1 david }), + manager.create_values(%w{ 2 kirs }), + manager.create_values(["3", Arel.sql('DEFAULT')], []), + ]) + + manager.to_sql.must_be_like %{ + INSERT INTO \"users\" (\"id\", \"name\") VALUES ('1', 'david'), ('2', 'kirs'), ('3', DEFAULT) + } + end + it "inserts false" do table = Table.new(:users) manager = Arel::InsertManager.new diff --git a/test/test_table.rb b/test/test_table.rb index 9877d24541..e83d04d2bd 100644 --- a/test/test_table.rb +++ b/test/test_table.rb @@ -42,10 +42,10 @@ module Arel end it 'should return an insert manager' do - im = @relation.compile_insert 'VALUES(NULL)' + im = @relation.compile_insert '(NULL)' assert_kind_of Arel::InsertManager, im im.into Table.new(:users) - assert_equal "INSERT INTO \"users\" VALUES(NULL)", im.to_sql + assert_equal "INSERT INTO \"users\" VALUES (NULL)", im.to_sql end describe 'skip' do diff --git a/test/visitors/test_to_sql.rb b/test/visitors/test_to_sql.rb index 31279b0ae2..52f9855545 100644 --- a/test/visitors/test_to_sql.rb +++ b/test/visitors/test_to_sql.rb @@ -26,7 +26,7 @@ module Arel bp = Nodes::BindParam.new values = Nodes::Values.new([bp]) sql = compile values - sql.must_be_like 'VALUES (?)' + sql.must_be_like '(?)' end it 'can define a dispatch method' do |