blob: 6d6ede354d505265aa0dbcc0e47d314a5c12bb0a (
plain) (
tree)
|
|
require 'cases/helper'
module ActiveRecord
class PostgreSQLDBCreateTest < ActiveRecord::TestCase
def setup
@connection = stub(:create_database => true)
@configuration = {
'adapter' => 'postgresql',
'database' => 'my-app-db'
}
ActiveRecord::Base.stubs(:connection).returns(@connection)
ActiveRecord::Base.stubs(:establish_connection).returns(true)
end
def test_establishes_connection_to_postgresql_database
ActiveRecord::Base.expects(:establish_connection).with(
'adapter' => 'postgresql',
'database' => 'postgres',
'schema_search_path' => 'public'
)
ActiveRecord::Tasks::DatabaseTasks.create @configuration
end
def test_creates_database_with_default_encoding
@connection.expects(:create_database).
with('my-app-db', @configuration.merge('encoding' => 'utf8'))
ActiveRecord::Tasks::DatabaseTasks.create @configuration
end
def test_creates_database_with_given_encoding
@connection.expects(:create_database).
with('my-app-db', @configuration.merge('encoding' => 'latin'))
ActiveRecord::Tasks::DatabaseTasks.create @configuration.
merge('encoding' => 'latin')
end
def test_establishes_connection_to_new_database
ActiveRecord::Base.expects(:establish_connection).with(@configuration)
ActiveRecord::Tasks::DatabaseTasks.create @configuration
end
def test_db_create_with_error_prints_message
ActiveRecord::Base.stubs(:establish_connection).raises(Exception)
$stderr.stubs(:puts).returns(true)
$stderr.expects(:puts).
with("Couldn't create database for #{@configuration.inspect}")
ActiveRecord::Tasks::DatabaseTasks.create @configuration
end
end
class PostgreSQLDBDropTest < ActiveRecord::TestCase
def setup
@connection = stub(:drop_database => true)
@configuration = {
'adapter' => 'postgresql',
'database' => 'my-app-db'
}
ActiveRecord::Base.stubs(:connection).returns(@connection)
ActiveRecord::Base.stubs(:establish_connection).returns(true)
end
def test_establishes_connection_to_postgresql_database
ActiveRecord::Base.expects(:establish_connection).with(
'adapter' => 'postgresql',
'database' => 'postgres',
'schema_search_path' => 'public'
)
ActiveRecord::Tasks::DatabaseTasks.drop @configuration
end
def test_drops_database
@connection.expects(:drop_database).with('my-app-db')
ActiveRecord::Tasks::DatabaseTasks.drop @configuration
end
end
class PostgreSQLPurgeTest < ActiveRecord::TestCase
def setup
@connection = stub(:create_database => true, :drop_database => true)
@configuration = {
'adapter' => 'postgresql',
'database' => 'my-app-db'
}
ActiveRecord::Base.stubs(:connection).returns(@connection)
ActiveRecord::Base.stubs(:clear_active_connections!).returns(true)
ActiveRecord::Base.stubs(:establish_connection).returns(true)
end
def test_clears_active_connections
ActiveRecord::Base.expects(:clear_active_connections!)
ActiveRecord::Tasks::DatabaseTasks.purge @configuration
end
def test_establishes_connection_to_postgresql_database
ActiveRecord::Base.expects(:establish_connection).with(
'adapter' => 'postgresql',
'database' => 'postgres',
'schema_search_path' => 'public'
)
ActiveRecord::Tasks::DatabaseTasks.purge @configuration
end
def test_drops_database
@connection.expects(:drop_database).with('my-app-db')
ActiveRecord::Tasks::DatabaseTasks.purge @configuration
end
def test_creates_database
@connection.expects(:create_database).
with('my-app-db', @configuration.merge('encoding' => 'utf8'))
ActiveRecord::Tasks::DatabaseTasks.purge @configuration
end
def test_establishes_connection
ActiveRecord::Base.expects(:establish_connection).with(@configuration)
ActiveRecord::Tasks::DatabaseTasks.purge @configuration
end
end
end
|