public function test_onSiteDeleted_shouldRemoveRememberedArchiveReports() { $archive = new ArchiveInvalidator(); $archive->rememberToInvalidateArchivedReportsLater($this->siteId, Date::factory('2014-04-05')); $archive->rememberToInvalidateArchivedReportsLater($this->siteId, Date::factory('2014-04-06')); $archive->rememberToInvalidateArchivedReportsLater(4949, Date::factory('2014-04-05')); $expected = array('2014-04-05' => array($this->siteId, 4949), '2014-04-06' => array($this->siteId)); $this->assertEquals($expected, $archive->getRememberedArchivedReportsThatShouldBeInvalidated()); $this->manager->onSiteDeleted($this->siteId); $expected = array('2014-04-05' => array(4949)); $this->assertEquals($expected, $archive->getRememberedArchivedReportsThatShouldBeInvalidated()); }
public function test_getColumnNamesFromTable() { Fixture::createWebsite('2014-12-12 00:01:02'); Fixture::createWebsite('2014-12-12 00:01:02'); $ar = new ArchiveInvalidator(); $ar->rememberToInvalidateArchivedReportsLater(1, Date::factory('2014-04-05')); $ar->rememberToInvalidateArchivedReportsLater(2, Date::factory('2014-04-05')); $ar->rememberToInvalidateArchivedReportsLater(2, Date::factory('2014-04-06')); $api = API::getInstance(); $cronarchive = new TestCronArchive(Fixture::getRootUrl() . 'tests/PHPUnit/proxy/index.php'); $cronarchive->setApiToInvalidateArchivedReport($api); $cronarchive->init(); $expectedInvalidations = array(array(array(1, 2), '2014-04-05'), array(array(2), '2014-04-06')); $this->assertEquals($expectedInvalidations, $api->getInvalidatedReports()); }
private function markArchivedReportsAsInvalidIfArchiveAlreadyFinished() { $idSite = (int) $this->request->getIdSite(); $time = $this->request->getCurrentTimestamp(); $timezone = $this->getTimezoneForSite($idSite); if (!isset($timezone)) { return; } $date = Date::factory((int) $time, $timezone); if (!$date->isToday()) { // we don't have to handle in case date is in future as it is not allowed by tracker $this->invalidator->rememberToInvalidateArchivedReportsLater($idSite, $date); } }
private function rememberReport($idSite, $date) { $date = Date::factory($date); $this->invalidator->rememberToInvalidateArchivedReportsLater($idSite, $date); }