class ActiveRecord::MySQLStructureDumpTest

Public Instance Methods

setup() click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 285
def setup
  @configuration = {
    "adapter"  => "mysql2",
    "database" => "test-db"
  }
end
test_structure_dump() click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 292
def test_structure_dump
  filename = "awesome-file.sql"
  Kernel.expects(:system).with("mysqldump", "--result-file", filename, "--no-data", "--routines", "--skip-comments", "test-db").returns(true)

  ActiveRecord::Tasks::DatabaseTasks.structure_dump(@configuration, filename)
end
test_structure_dump_with_extra_flags() click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 299
def test_structure_dump_with_extra_flags
  filename = "awesome-file.sql"
  expected_command = ["mysqldump", "--noop", "--result-file", filename, "--no-data", "--routines", "--skip-comments", "test-db"]

  assert_called_with(Kernel, :system, expected_command, returns: true) do
    with_structure_dump_flags(["--noop"]) do
      ActiveRecord::Tasks::DatabaseTasks.structure_dump(@configuration, filename)
    end
  end
end
test_structure_dump_with_ignore_tables() click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 310
def test_structure_dump_with_ignore_tables
  filename = "awesome-file.sql"
  ActiveRecord::SchemaDumper.expects(:ignore_tables).returns(["foo", "bar"])

  Kernel.expects(:system).with("mysqldump", "--result-file", filename, "--no-data", "--routines", "--skip-comments", "--ignore-table=test-db.foo", "--ignore-table=test-db.bar", "test-db").returns(true)

  ActiveRecord::Tasks::DatabaseTasks.structure_dump(@configuration, filename)
end
test_structure_dump_with_port_number() click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 331
def test_structure_dump_with_port_number
  filename = "awesome-file.sql"
  Kernel.expects(:system).with("mysqldump", "--port=10000", "--result-file", filename, "--no-data", "--routines", "--skip-comments", "test-db").returns(true)

  ActiveRecord::Tasks::DatabaseTasks.structure_dump(
    @configuration.merge("port" => 10000),
    filename)
end
test_structure_dump_with_ssl() click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 340
def test_structure_dump_with_ssl
  filename = "awesome-file.sql"
  Kernel.expects(:system).with("mysqldump", "--ssl-ca=ca.crt", "--result-file", filename, "--no-data", "--routines", "--skip-comments", "test-db").returns(true)

  ActiveRecord::Tasks::DatabaseTasks.structure_dump(
    @configuration.merge("sslca" => "ca.crt"),
    filename)
end
test_warn_when_external_structure_dump_command_execution_fails() click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 319
def test_warn_when_external_structure_dump_command_execution_fails
  filename = "awesome-file.sql"
  Kernel.expects(:system)
    .with("mysqldump", "--result-file", filename, "--no-data", "--routines", "--skip-comments", "test-db")
    .returns(false)

  e = assert_raise(RuntimeError) {
    ActiveRecord::Tasks::DatabaseTasks.structure_dump(@configuration, filename)
  }
  assert_match(/^failed to execute: `mysqldump`$/, e.message)
end

Private Instance Methods

with_structure_dump_flags(flags) { || ... } click to toggle source
# File activerecord/test/cases/tasks/mysql_rake_test.rb, line 350
def with_structure_dump_flags(flags)
  old = ActiveRecord::Tasks::DatabaseTasks.structure_dump_flags
  ActiveRecord::Tasks::DatabaseTasks.structure_dump_flags = flags
  yield
ensure
  ActiveRecord::Tasks::DatabaseTasks.structure_dump_flags = old
end