blob: 5f840febbc0b85b015e6108860233c795c2e538c (
plain) (
tree)
|
|
require 'cases/helper'
module ActiveRecord
module OracleSetupper
def setup
@database = 'db.oracle'
@connection = stub :connection
@configuration = {
'adapter' => 'oracle',
'database' => @database
}
ActiveRecord::Base.stubs(:connection).returns(@connection)
ActiveRecord::Base.stubs(:establish_connection).returns(true)
@tasks = Class.new(ActiveRecord::Tasks::OracleDatabaseTasks) do
def initialize(configuration)
ActiveSupport::Deprecation.silence { super }
end
end
ActiveRecord::Tasks::DatabaseTasks.stubs(:class_for_adapter).returns(@tasks) unless defined? ActiveRecord::ConnectionAdapters::OracleAdapter
end
end
class OracleDBCreateTest < ActiveRecord::TestCase
include OracleSetupper
def test_db_retrieves_create
message = capture(:stderr) do
ActiveRecord::Tasks::DatabaseTasks.create @configuration
end
assert_match(/not supported/, message)
end
end
class OracleDBDropTest < ActiveRecord::TestCase
include OracleSetupper
def test_db_retrieves_drop
message = capture(:stderr) do
ActiveRecord::Tasks::DatabaseTasks.drop @configuration
end
assert_match(/not supported/, message)
end
end
class OracleDBCharsetAndCollationTest < ActiveRecord::TestCase
include OracleSetupper
def test_db_retrieves_collation
assert_raise NoMethodError do
ActiveRecord::Tasks::DatabaseTasks.collation @configuration
end
end
def test_db_retrieves_charset
message = capture(:stderr) do
ActiveRecord::Tasks::DatabaseTasks.charset @configuration
end
assert_match(/not supported/, message)
end
end
class OracleStructureDumpTest < ActiveRecord::TestCase
include OracleSetupper
def setup
super
@connection.stubs(:structure_dump).returns("select sysdate from dual;")
end
def test_structure_dump
filename = "oracle.sql"
ActiveRecord::Tasks::DatabaseTasks.structure_dump(@configuration, filename)
assert File.exists?(filename)
ensure
FileUtils.rm_f(filename)
end
end
class OracleStructureLoadTest < ActiveRecord::TestCase
include OracleSetupper
def test_structure_load
filename = "oracle.sql"
open(filename, 'w') { |f| f.puts("select sysdate from dual;") }
@connection.stubs(:execute).with("select sysdate from dual;\n")
ActiveRecord::Tasks::DatabaseTasks.structure_load(@configuration, filename)
ensure
FileUtils.rm_f(filename)
end
end
end
|