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());
 }
Example #2
0
 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());
 }
Example #3
0
 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);
 }