oracle.test in Migrate 7.2
Tests for the Oracle source plugin.
File
tests/plugins/sources/oracle.testView source
<?php
/**
* @file
* Tests for the Oracle source plugin.
*/
/**
* Test migration from Oracle.
*
* NOTE: Test won't run correctly due to http://drupal.org/node/362373, enable
* when that is fixed.
*/
class MigrateOracleUnitTest extends DrupalWebTestCase {
public static function getInfo() {
return array(
'name' => 'Oracle migration',
'description' => 'Test migration from an Oracle source',
'group' => 'Migrate',
);
}
function setUp() {
global $conf;
if (empty($conf['oracle_db']) || empty($conf['oracle_db']['username']) || empty($conf['oracle_db']['password']) || empty($conf['oracle_db']['connection_string'])) {
parent::setUp();
}
else {
parent::setUp('features', 'migrate', 'migrate_example_oracle');
}
// Make sure the migrations are registered.
migrate_static_registration();
}
function testOracleImport() {
global $conf;
if (empty($conf['oracle_db'])) {
$this
->pass(t('To run the Oracle test, you need to defined $conf[\'oracle_db\']
in settings.php - see migrate_example_oracle.migrate.inc.'));
}
$migration = Migration::getInstance('MigrateExampleOracle');
$result = $migration
->processImport();
$this
->assertEqual($result, Migration::RESULT_COMPLETED, t('Region term import returned RESULT_COMPLETED'));
// Gather destination nodes, and their corresponding input data
$rawnodes = node_load_multiple(FALSE, array(
'type' => 'migrate_example_oracle',
), TRUE);
$data = migrate_example_oracle_sample_data();
$this
->assertEqual(count($rawnodes), count($data), t('Counts of nodes and input rows match'));
// Index nodes by title
$nodes = array();
foreach ($rawnodes as $node) {
$nodes[$node->title] = $node;
}
// Test each value
foreach ($data as $row) {
$node = $nodes[$row['title']];
if (!$this
->assertEqual($node->title, $row['title'], 'Titles match')) {
$this
->error(t('Source title !source does not match node title !destination', array(
'!source' => $row['title'],
'!destination' => $node->title,
)));
}
if (!$this
->assertEqual($node->body[LANGUAGE_NONE][0]['value'], $row['body'], 'Bodies match')) {
$this
->error(t('Source body !source does not match node body !destination', array(
'!source' => $row['body'],
'!destination' => $node->body,
)));
}
$created = format_date($node->created, 'custom', 'Y/m/d H:i:s');
if (!$this
->assertEqual($created, $row['created'], 'Created timestamps match')) {
$this
->error(t('Source created !source does not match node created !destination', array(
'!source' => $row['created'],
'!destination' => $created,
)));
}
$updated = format_date($node->changed, 'custom', 'Y/m/d H:i:s');
if (!$this
->assertEqual($updated, $row['updated'], 'Updated timestamps match')) {
$this
->error(t('Source updated !source does not match node changed !destination', array(
'!source' => $row['updated'],
'!destination' => $updated,
)));
}
}
// Test rollback
$result = $migration
->processRollback();
$this
->assertEqual($result, Migration::RESULT_COMPLETED, t('Node rollback returned RESULT_COMPLETED'));
$rawnodes = node_load_multiple(FALSE, array(
'type' => 'migrate_example_oracle',
), TRUE);
$this
->assertEqual(count($rawnodes), 0, t('All nodes deleted'));
$count = db_select('migrate_map_migrateexampleoracle', 'map')
->fields('map', array(
'sourceid1',
))
->countQuery()
->execute()
->fetchField();
$this
->assertEqual($count, 0, t('Map cleared'));
$count = db_select('migrate_message_migrateexampleoracle', 'msg')
->fields('msg', array(
'sourceid1',
))
->countQuery()
->execute()
->fetchField();
$this
->assertEqual($count, 0, t('Messages cleared'));
}
}
Classes
Name | Description |
---|---|
MigrateOracleUnitTest | Test migration from Oracle. |