aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activerecord/test/adapter_test.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/activerecord/test/adapter_test.rb b/activerecord/test/adapter_test.rb
index 4496da8585..7d427cda50 100644
--- a/activerecord/test/adapter_test.rb
+++ b/activerecord/test/adapter_test.rb
@@ -35,4 +35,24 @@ class AdapterTest < Test::Unit::TestCase
ensure
@connection.remove_index :accounts, :firm_id rescue nil
end
+
+ # test resetting sequences in odd tables in postgreSQL
+ if ActiveRecord::Base.connection.respond_to?(:reset_pk_sequence!)
+ require 'fixtures/movie'
+ require 'fixtures/subscriber'
+ def test_reset_empty_table_with_custom_pk
+ Movie.delete_all
+ Movie.connection.reset_pk_sequence! 'movies'
+ assert_equal 1, Movie.create(:name => 'fight club').id
+ end
+
+ def test_reset_table_with_non_integer_pk
+ Subscriber.delete_all
+ Subscriber.connection.reset_pk_sequence! 'subscribers'
+
+ sub = Subscriber.new(:name => 'robert drake')
+ sub.id = 'bob drake'
+ assert sub.save!
+ end
+ end
end