diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2016-01-05 22:39:50 -0200 |
---|---|---|
committer | Rafael França <rafaelmfranca@gmail.com> | 2016-01-05 22:39:50 -0200 |
commit | 91ceac3728e1fc0ea3bf757c592939758defd27b (patch) | |
tree | 68544c2f36028666be4f2721d63edc86212b8514 /activerecord/test | |
parent | b7b508aa7908efb1c6ef6667e3087f4f6a4b508f (diff) | |
parent | 326b12ae528433238b41941843849447fdbe7435 (diff) | |
download | rails-91ceac3728e1fc0ea3bf757c592939758defd27b.tar.gz rails-91ceac3728e1fc0ea3bf757c592939758defd27b.tar.bz2 rails-91ceac3728e1fc0ea3bf757c592939758defd27b.zip |
Merge pull request #22920 from kamipo/fix_connection_create
Fix `connection#create` in PG adapter
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/database_statements_test.rb | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/activerecord/test/cases/database_statements_test.rb b/activerecord/test/cases/database_statements_test.rb index c689e97d83..ba085991e0 100644 --- a/activerecord/test/cases/database_statements_test.rb +++ b/activerecord/test/cases/database_statements_test.rb @@ -6,14 +6,23 @@ class DatabaseStatementsTest < ActiveRecord::TestCase end def test_insert_should_return_the_inserted_id + assert_not_nil return_the_inserted_id(method: :insert) + end + + def test_create_should_return_the_inserted_id + assert_not_nil return_the_inserted_id(method: :create) + end + + private + + def return_the_inserted_id(method:) # Oracle adapter uses prefetched primary key values from sequence and passes them to connection adapter insert method if current_adapter?(:OracleAdapter) sequence_name = "accounts_seq" id_value = @connection.next_sequence_value(sequence_name) - id = @connection.insert("INSERT INTO accounts (id, firm_id,credit_limit) VALUES (accounts_seq.nextval,42,5000)", nil, :id, id_value, sequence_name) + @connection.send(method, "INSERT INTO accounts (id, firm_id,credit_limit) VALUES (accounts_seq.nextval,42,5000)", nil, :id, id_value, sequence_name) else - id = @connection.insert("INSERT INTO accounts (firm_id,credit_limit) VALUES (42,5000)") + @connection.send(method, "INSERT INTO accounts (firm_id,credit_limit) VALUES (42,5000)") end - assert_not_nil id end end |