Skip to content

Commit

Permalink
Refactor testcase codes. It's repeated.
Browse files Browse the repository at this point in the history
  • Loading branch information
kennyj committed Jun 20, 2012
1 parent 323ee20 commit 4d68539
Showing 1 changed file with 38 additions and 132 deletions.
170 changes: 38 additions & 132 deletions activerecord/test/cases/database_tasks_test.rb
Expand Up @@ -10,31 +10,21 @@ def setup
end end
end end


ADAPTERS_TASKS = {
:mysql => :mysql_tasks,
:mysql2 => :mysql_tasks,
:postgresql => :postgresql_tasks,
:sqlite3 => :sqlite_tasks
}

class DatabaseTasksCreateTest < ActiveRecord::TestCase class DatabaseTasksCreateTest < ActiveRecord::TestCase
include DatabaseTasksSetupper include DatabaseTasksSetupper


def test_mysql_create ADAPTERS_TASKS.each do |k, v|
@mysql_tasks.expects(:create) define_method("test_#{k}_create") do

eval("@#{v}").expects(:create)
ActiveRecord::Tasks::DatabaseTasks.create 'adapter' => 'mysql' ActiveRecord::Tasks::DatabaseTasks.create 'adapter' => k
end end

def test_mysql2_create
@mysql_tasks.expects(:create)

ActiveRecord::Tasks::DatabaseTasks.create 'adapter' => 'mysql2'
end

def test_postgresql_create
@postgresql_tasks.expects(:create)

ActiveRecord::Tasks::DatabaseTasks.create 'adapter' => 'postgresql'
end

def test_sqlite_create
@sqlite_tasks.expects(:create)

ActiveRecord::Tasks::DatabaseTasks.create 'adapter' => 'sqlite3'
end end
end end


Expand Down Expand Up @@ -141,28 +131,11 @@ def test_establishes_connection_for_the_given_environment
class DatabaseTasksDropTest < ActiveRecord::TestCase class DatabaseTasksDropTest < ActiveRecord::TestCase
include DatabaseTasksSetupper include DatabaseTasksSetupper


def test_mysql_create ADAPTERS_TASKS.each do |k, v|
@mysql_tasks.expects(:drop) define_method("test_#{k}_drop") do

eval("@#{v}").expects(:drop)
ActiveRecord::Tasks::DatabaseTasks.drop 'adapter' => 'mysql' ActiveRecord::Tasks::DatabaseTasks.drop 'adapter' => k
end end

def test_mysql2_create
@mysql_tasks.expects(:drop)

ActiveRecord::Tasks::DatabaseTasks.drop 'adapter' => 'mysql2'
end

def test_postgresql_create
@postgresql_tasks.expects(:drop)

ActiveRecord::Tasks::DatabaseTasks.drop 'adapter' => 'postgresql'
end

def test_sqlite_create
@sqlite_tasks.expects(:drop)

ActiveRecord::Tasks::DatabaseTasks.drop 'adapter' => 'sqlite3'
end end
end end


Expand Down Expand Up @@ -255,115 +228,48 @@ def test_creates_test_database_when_environment_is_database
end end
end end



class DatabaseTasksPurgeTest < ActiveRecord::TestCase class DatabaseTasksPurgeTest < ActiveRecord::TestCase
include DatabaseTasksSetupper include DatabaseTasksSetupper


def test_mysql_create ADAPTERS_TASKS.each do |k, v|
@mysql_tasks.expects(:purge) define_method("test_#{k}_purge") do

eval("@#{v}").expects(:purge)
ActiveRecord::Tasks::DatabaseTasks.purge 'adapter' => 'mysql' ActiveRecord::Tasks::DatabaseTasks.purge 'adapter' => k
end end

def test_mysql2_create
@mysql_tasks.expects(:purge)

ActiveRecord::Tasks::DatabaseTasks.purge 'adapter' => 'mysql2'
end

def test_postgresql_create
@postgresql_tasks.expects(:purge)

ActiveRecord::Tasks::DatabaseTasks.purge 'adapter' => 'postgresql'
end

def test_sqlite_create
@sqlite_tasks.expects(:purge)

ActiveRecord::Tasks::DatabaseTasks.purge 'adapter' => 'sqlite3'
end end
end end


class DatabaseTasksCharsetTest < ActiveRecord::TestCase class DatabaseTasksCharsetTest < ActiveRecord::TestCase
include DatabaseTasksSetupper include DatabaseTasksSetupper


def test_mysql_charset ADAPTERS_TASKS.each do |k, v|
@mysql_tasks.expects(:charset) define_method("test_#{k}_charset") do

eval("@#{v}").expects(:charset)
ActiveRecord::Tasks::DatabaseTasks.charset 'adapter' => 'mysql' ActiveRecord::Tasks::DatabaseTasks.charset 'adapter' => k
end end

def test_mysql2_charset
@mysql_tasks.expects(:charset)

ActiveRecord::Tasks::DatabaseTasks.charset 'adapter' => 'mysql2'
end

def test_postgresql_charset
@postgresql_tasks.expects(:charset)

ActiveRecord::Tasks::DatabaseTasks.charset 'adapter' => 'postgresql'
end

def test_sqlite_charset
@sqlite_tasks.expects(:charset)

ActiveRecord::Tasks::DatabaseTasks.charset 'adapter' => 'sqlite3'
end end
end end


class DatabaseTasksStructureDumpTest < ActiveRecord::TestCase class DatabaseTasksStructureDumpTest < ActiveRecord::TestCase
include DatabaseTasksSetupper include DatabaseTasksSetupper


def test_mysql_structure_dump ADAPTERS_TASKS.each do |k, v|
@mysql_tasks.expects(:structure_dump).with("awesome-file.sql") define_method("test_#{k}_structure_dump") do

eval("@#{v}").expects(:structure_dump).with("awesome-file.sql")
ActiveRecord::Tasks::DatabaseTasks.structure_dump({'adapter' => 'mysql'}, "awesome-file.sql") ActiveRecord::Tasks::DatabaseTasks.structure_dump({'adapter' => k}, "awesome-file.sql")
end end

def test_mysql2_structure_dump
@mysql_tasks.expects(:structure_dump).with("awesome-file.sql")

ActiveRecord::Tasks::DatabaseTasks.structure_dump({'adapter' => 'mysql2'}, "awesome-file.sql")
end

def test_postgresql_structure_dump
@postgresql_tasks.expects(:structure_dump).with("awesome-file.sql")

ActiveRecord::Tasks::DatabaseTasks.structure_dump({'adapter' => 'postgresql'}, "awesome-file.sql")
end

def test_sqlite_structure_dump
@sqlite_tasks.expects(:structure_dump).with("awesome-file.sql")

ActiveRecord::Tasks::DatabaseTasks.structure_dump({'adapter' => 'sqlite3'}, "awesome-file.sql")
end end
end end


class DatabaseTasksStructureLoadTest < ActiveRecord::TestCase class DatabaseTasksStructureLoadTest < ActiveRecord::TestCase
include DatabaseTasksSetupper include DatabaseTasksSetupper


def test_mysql_structure_load ADAPTERS_TASKS.each do |k, v|
@mysql_tasks.expects(:structure_load).with("awesome-file.sql") define_method("test_#{k}_structure_load") do

eval("@#{v}").expects(:structure_load).with("awesome-file.sql")
ActiveRecord::Tasks::DatabaseTasks.structure_load({'adapter' => 'mysql'}, "awesome-file.sql") ActiveRecord::Tasks::DatabaseTasks.structure_load({'adapter' => k}, "awesome-file.sql")
end end

def test_mysql2_structure_load
@mysql_tasks.expects(:structure_load).with("awesome-file.sql")

ActiveRecord::Tasks::DatabaseTasks.structure_load({'adapter' => 'mysql2'}, "awesome-file.sql")
end

def test_postgresql_structure_load
@postgresql_tasks.expects(:structure_load).with("awesome-file.sql")

ActiveRecord::Tasks::DatabaseTasks.structure_load({'adapter' => 'postgresql'}, "awesome-file.sql")
end

def test_sqlite_structure_load
@sqlite_tasks.expects(:structure_load).with("awesome-file.sql")

ActiveRecord::Tasks::DatabaseTasks.structure_load({'adapter' => 'sqlite3'}, "awesome-file.sql")
end end
end end
end end

0 comments on commit 4d68539

Please sign in to comment.