diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2017-06-15 12:18:03 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-15 12:18:03 -0400 |
commit | 67a51c62f4e19390cd8eb408596ca48bb0806362 (patch) | |
tree | 8f8b8fa1edb2db071dc9df360f37418138fd484d /test | |
parent | de0a83e11cae11ba0674bd197296326e53354597 (diff) | |
parent | 5e6312e1745dc278ba0a99bf2bc7b78977785d35 (diff) | |
download | rails-67a51c62f4e19390cd8eb408596ca48bb0806362.tar.gz rails-67a51c62f4e19390cd8eb408596ca48bb0806362.tar.bz2 rails-67a51c62f4e19390cd8eb408596ca48bb0806362.zip |
Merge pull request #484 from kirs/multiple-insert-v2
Support INSERT with multiple values (v2)
Diffstat (limited to 'test')
-rw-r--r-- | test/test_insert_manager.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/test/test_insert_manager.rb b/test/test_insert_manager.rb index 97317791fe..8b61a2791e 100644 --- a/test/test_insert_manager.rb +++ b/test/test_insert_manager.rb @@ -28,6 +28,60 @@ module Arel } end + it 'works with 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_values_list([ + %w{1 david}, + %w{2 kir}, + ["3", Arel.sql('DEFAULT')], + ]) + + manager.to_sql.must_be_like %{ + INSERT INTO \"users\" (\"id\", \"name\") VALUES ('1', 'david'), ('2', 'kir'), ('3', DEFAULT) + } + end + + it 'literals in multiple values are not escaped' do + table = Table.new(:users) + manager = Arel::InsertManager.new + manager.into table + + manager.columns << table[:name] + + manager.values = manager.create_values_list([ + [Arel.sql('*')], + [Arel.sql('DEFAULT')], + ]) + + manager.to_sql.must_be_like %{ + INSERT INTO \"users\" (\"name\") VALUES (*), (DEFAULT) + } + end + + it 'works with multiple single values' do + table = Table.new(:users) + manager = Arel::InsertManager.new + manager.into table + + manager.columns << table[:name] + + manager.values = manager.create_values_list([ + %w{david}, + %w{kir}, + [Arel.sql('DEFAULT')], + ]) + + manager.to_sql.must_be_like %{ + INSERT INTO \"users\" (\"name\") VALUES ('david'), ('kir'), (DEFAULT) + } + end + it "inserts false" do table = Table.new(:users) manager = Arel::InsertManager.new |