/** * Apply cache options from the fixture data * * @param array $data * @param string $key * @param EcomDev_PHPUnit_Model_FixtureInterface $fixture * * @return EcomDev_PHPUnit_Model_Fixture_Processor_Cache */ public function apply(array $data, $key, EcomDev_PHPUnit_Model_FixtureInterface $fixture) { $originalOptions = EcomDev_PHPUnit_Test_Case_Util::app()->getCacheOptions(); $fixture->setStorageData(self::STORAGE_KEY, $originalOptions); $data += $originalOptions; EcomDev_PHPUnit_Test_Case_Util::app()->setCacheOptions($data); return $this; }
/** * Discard applied scope models * * @param array[] $data * @param string $key * @param EcomDev_PHPUnit_Model_FixtureInterface $fixture * * @return EcomDev_PHPUnit_Model_Fixture_Processor_Scope */ public function discard(array $data, $key, EcomDev_PHPUnit_Model_FixtureInterface $fixture) { if ($fixture->getStorageData(self::STORAGE_KEY) === null) { return $this; } EcomDev_PHPUnit_Test_Case_Util::app()->disableEvents(); $scope = array_reverse($fixture->getStorageData(self::STORAGE_KEY)); foreach ($scope as $models) { foreach ($models as $model) { $model->delete(); } } $fixture->setStorageData(self::STORAGE_KEY, null); EcomDev_PHPUnit_Test_Case_Util::app()->getCache()->clean(Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG, array(Mage_Core_Model_Store::CACHE_TAG, Mage_Core_Model_Store_Group::CACHE_TAG, Mage_Core_Model_Website::CACHE_TAG)); EcomDev_PHPUnit_Test_Case_Util::app()->enableEvents(); EcomDev_PHPUnit_Test_Case_Util::app()->reinitStores(); return $this; }
/** * Sets back old singletons after tests * * @param array[] $data * @param string $key * @param EcomDev_PHPUnit_Model_FixtureInterface $fixture * * @return EcomDev_PHPUnit_Model_Fixture_ProcessorInterface */ public function discard(array $data, $key, EcomDev_PHPUnit_Model_FixtureInterface $fixture) { if ($fixture->getStorageData(self::STORAGE_KEY) === null) { return $this; } $oldRegistry = $fixture->getStorageData(self::STORAGE_KEY); foreach ($oldRegistry as $key => $value) { // Set old value to registry EcomDev_PHPUnit_Test_Case_Util::app()->replaceRegistry($key, $value); } $fixture->setStorageData(self::STORAGE_KEY, null); return $this; }
/** * Discard applied table records * * @param array[] $data * @param string $key * @param EcomDev_PHPUnit_Model_FixtureInterface $fixture * * @return EcomDev_PHPUnit_Model_Fixture_Processor_Tables */ public function discard(array $data, $key, EcomDev_PHPUnit_Model_FixtureInterface $fixture) { $restoreTableData = array(); // Data for tables used in shared fixture if ($fixture->isScopeLocal() && $fixture->getStorageData(self::STORAGE_KEY, EcomDev_PHPUnit_Model_FixtureInterface::SCOPE_SHARED)) { $restoreTableData = $fixture->getStorageData(self::STORAGE_KEY, EcomDev_PHPUnit_Model_FixtureInterface::SCOPE_SHARED); } $this->getResource()->beginTransaction(); foreach (array_reverse(array_keys($data)) as $tableEntity) { $this->getResource()->cleanTable($tableEntity); } foreach (array_keys($data) as $tableEntity) { if (isset($restoreTableData[$tableEntity])) { $this->getResource()->loadTableData($tableEntity, $restoreTableData[$tableEntity]); } } $this->getResource()->commit(); $fixture->setStorageData(self::STORAGE_KEY, null); return $this; }
/** * Discard applied virtual file system structure * * @param array[] $data * @param string $key * @param EcomDev_PHPUnit_Model_FixtureInterface $fixture * * @return EcomDev_PHPUnit_Model_Fixture_Processor_Cache */ public function discard(array $data, $key, EcomDev_PHPUnit_Model_FixtureInterface $fixture) { $fixture->getVfs()->discard(); $fixture->setStorageData(self::STORAGE_KEY, null); return $this; }