Пример #1
0
 /**
  * @dataProvider getTimetableFromOptionValueTestCases
  */
 public function testGetTimetableFromOptionValue($expectedTimetable, $option)
 {
     self::stubPiwikOption($option);
     $timetable = new Timetable();
     $this->assertEquals($expectedTimetable, $timetable->getTimetable());
     self::resetPiwikOption();
 }
Пример #2
0
 /**
  * @dataProvider runDataProvider
  */
 public function testRun($expectedTimetable, $expectedExecutedTasks, $timetableBeforeTaskExecution, $configuredTasks)
 {
     $taskLoader = $this->getMock('Piwik\\Scheduler\\TaskLoader');
     $taskLoader->expects($this->atLeastOnce())->method('loadTasks')->willReturn($configuredTasks);
     // stub the piwik option object to control the returned option value
     self::stubPiwikOption(serialize($timetableBeforeTaskExecution));
     $scheduler = new Scheduler($taskLoader, new NullLogger());
     // execute tasks
     $executionResults = $scheduler->run();
     // assert methods are executed
     $executedTasks = array();
     foreach ($executionResults as $executionResult) {
         $executedTasks[] = $executionResult['task'];
         $this->assertNotEmpty($executionResult['output']);
     }
     $this->assertEquals($expectedExecutedTasks, $executedTasks);
     // assert the timetable is correctly updated
     $timetable = new Timetable();
     $this->assertEquals($expectedTimetable, $timetable->getTimetable());
     self::resetPiwikOption();
 }
Пример #3
0
 /**
  * @dataProvider runDataProvider
  */
 public function testRunTaskNow($expectedTimetable, $expectedExecutedTasks, $timetableBeforeTaskExecution, $configuredTasks)
 {
     $taskLoader = $this->getMock('Piwik\\Scheduler\\TaskLoader');
     $taskLoader->expects($this->atLeastOnce())->method('loadTasks')->willReturn($configuredTasks);
     // stub the piwik option object to control the returned option value
     self::stubPiwikOption(serialize($timetableBeforeTaskExecution));
     $timetable = new Timetable();
     $initialTimetable = $timetable->getTimetable();
     $scheduler = new Scheduler($taskLoader, new NullLogger());
     foreach ($configuredTasks as $task) {
         /** @var Task $task */
         $result = $scheduler->runTaskNow($task->getName());
         $this->assertNotEmpty($result);
     }
     // assert the timetable is NOT updated
     $this->assertSame($initialTimetable, $timetable->getTimetable());
     self::resetPiwikOption();
 }