public function testSave() { $inputData = file_get_contents(dirname(__DIR__) . '/Data/crontabRead.txt'); $outputData = file_get_contents(dirname(__DIR__) . '/Data/crontabWrite.txt'); $crontab = $this->getCrontabWithMockedProcesses($this->getMockedProcessRead($inputData), $this->getMockedProcessWrite($outputData)); $jobs = $crontab->getJobs(); $jobs[0]->setCommand('changed command'); $newJob = new Job(); $newJob->setCommand('new command'); $newJob->setHour('5'); $newJob->setMinute('4'); $newJob->setDayOfMonth('3'); $newJob->setDayOfWeek('2'); $newJob->setMonth('1'); $crontab->addJob($newJob); $crontab->save(); }
/** * @param string $line * @return Job|null */ private function parseLine($line) { if (strlen($line) === 0) { return null; } if ($line[0] === '#') { // It's a comment return null; } $elements = explode(' ', $line, 6); if (count($elements) < 6) { throw ParserException::insufficientArgumentsForJob($line); } $job = new Job(); $job->setMinute($elements[0]); $job->setHour($elements[1]); $job->setDayOfMonth($elements[2]); $job->setMonth($elements[3]); $job->setDayOfWeek($elements[4]); $job->setCommand($elements[5]); return $job; }