/** * tests an upgrade package containing two schema upgrades * */ function test_upgradeSchemas() { $this->_deleteTestAppVarRecord('tables_core', ''); $this->assertEqual($this->_getTestAppVarValue('tables_core', ''), '', ''); $this->_createTestAppVarRecord('tables_core', '997'); $this->assertEqual($this->_getTestAppVarValue('tables_core', '997'), '997', ''); $this->_createTestAppVarRecord('oa_version', '2.3.00'); $oUpgrade->versionInitialSchema['tables_core'] = 997; $oUpgrade->versionInitialApplication = '2.3.00'; $oUpgrade = new OA_Upgrade(); $oUpgrade->upgradePath = MAX_PATH . '/lib/OA/Upgrade/tests/data/'; $oUpgrade->oDBUpgrader->path_changes = $oUpgrade->upgradePath; $oUpgrade->oDBUpgrader->path_schema = $oUpgrade->upgradePath; $input_file = 'openads_upgrade_2.3.00_to_2.3.02_beta.xml'; $oUpgrade->initDatabaseConnection(); $oUpgrade->_parseUpgradePackageFile($oUpgrade->upgradePath . $input_file); $this->assertTrue($oUpgrade->upgradeSchemas(), 'upgradeSchemas'); $this->_checkTablesUpgraded($oUpgrade); $this->assertEqual($this->_getTestAppVarValue('tables_core', '999'), '999', ''); // remove the fake application variable records $this->_deleteTestAppVarRecordAllNames('oa_version'); $this->_deleteTestAppVarRecordAllNames('tables_core'); TestEnv::restoreConfig(); TestEnv::restoreEnv(); }
function test_upgradeSchemasFail() { $oUpgrade = new OA_Upgrade(); Mock::generatePartial('OA_Version_Controller', $mockVersioner = 'OA_Version_Controller' . rand(), array('getSchemaVersion', 'putSchemaVersion')); $oUpgrade->oVersioner = new $mockVersioner($this); $oUpgrade->oVersioner->setReturnValueAt(0, 'getSchemaVersion', 1); $oUpgrade->oVersioner->expectCallCount('getSchemaVersion', 1); $oUpgrade->oVersioner->setReturnValue('putSchemaVersion', null); $oUpgrade->oVersioner->expectCallCount('putSchemaVersion', 0); Mock::generatePartial('OA_DB_Upgrade', $mockDBUpgrade = 'OA_DB_Upgrade' . rand(), array('init', 'upgrade', 'rollback', 'prepPrescript', 'prepPostcript', 'prepRollback')); $oUpgrade->oDBUpgrader = new $mockDBUpgrade($this); $oUpgrade->oDBUpgrader->setReturnValue('init', true); $oUpgrade->oDBUpgrader->expectCallCount('init', 1); $oUpgrade->oDBUpgrader->setReturnValue('prepPrescript', true); $oUpgrade->oDBUpgrader->expectCallCount('prepPrescript', 0); $oUpgrade->oDBUpgrader->setReturnValue('upgrade', false); $oUpgrade->oDBUpgrader->expectCallCount('upgrade', 1); Mock::generatePartial('OA_DB_UpgradeAuditor', $mockAuditor = 'OA_DB_UpgradeAuditor' . rand(), array('logAuditAction')); $oUpgrade->oAuditor->oDBAuditor = new $mockAuditor($this); $oUpgrade->oAuditor->oDBAuditor->setReturnValue('logAuditAction', true); $oUpgrade->aDBPackages = array(0 => array('version' => '2', 'schema' => 'test_tables', 'files' => '')); $this->assertFalse($oUpgrade->upgradeSchemas(), 'schema upgrade method failed (testing failure. it was supposed to fail and it didn\'t)'); $this->assertEqual($oUpgrade->versionInitialSchema['test_tables'], 1, 'error setting initial schema version'); $oUpgrade->oDBUpgrader->tally(); $oUpgrade->oVersioner->tally(); }