/** * @dataProvider getTimetableFromOptionValueTestCases */ public function testGetTimetableFromOptionValue($expectedTimetable, $option) { self::stubPiwikOption($option); $timetable = new Timetable(); $this->assertEquals($expectedTimetable, $timetable->getTimetable()); self::resetPiwikOption(); }
/** * @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(); }
/** * @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(); }