require 'abstract_unit' class AdapterTest < Test::Unit::TestCase def setup @connection = ActiveRecord::Base.connection end def test_tables if @connection.respond_to?(:tables) tables = @connection.tables assert tables.include?("accounts") assert tables.include?("authors") assert tables.include?("tasks") assert tables.include?("topics") else warn "#{@connection.class} does not respond to #tables" end end def test_indexes if @connection.respond_to?(:indexes) idx_name = "accounts_idx" indexes = @connection.indexes("accounts") assert indexes.empty? @connection.add_index :accounts, :firm_id, :name => idx_name indexes = @connection.indexes("accounts") assert_equal "accounts", indexes.first.table assert_equal idx_name, indexes.first.name assert !indexes.first.unique assert_equal ["firm_id"], indexes.first.columns else warn "#{@connection.class} does not respond to #indexes" end 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_nothing_raised { sub.save! } end end end