/** * Test if the crontab file is parsed. */ public function testParseCrontab() { /* Create fake crontabAdapter */ $fakeCrontabAdapter = $this->getMock('TiBeN\\CrontabManager\\CrontabAdapter'); $fakeCrontabAdapter->expects($this->any())->method('readCrontab')->will($this->returnValue(file_get_contents($this->fixturesPath . 'testing_read_crontab.txt'))); /* Create expected crontabJobs */ $expectedCrontabJob1 = new CrontabJob(); $expectedCrontabJob1->minutes = '30'; $expectedCrontabJob1->hours = '23'; $expectedCrontabJob1->dayOfMonth = '*'; $expectedCrontabJob1->months = '*'; $expectedCrontabJob1->dayOfWeek = '*'; $expectedCrontabJob1->taskCommandLine = 'df >> /tmp/df.log'; $expectedCrontabJob1->comments = 'first crontabJob'; $expectedCrontabJob2 = new CrontabJob(); $expectedCrontabJob2->minutes = '0'; $expectedCrontabJob2->hours = '0'; $expectedCrontabJob2->dayOfMonth = '28-31'; $expectedCrontabJob2->months = '*'; $expectedCrontabJob2->dayOfWeek = '*'; $expectedCrontabJob2->taskCommandLine = '[ `/bin/date +\\%d` -gt `/bin/date +\\%d -d "1 day"` ] && df >> /tmp/df.log'; $expectedCrontabJob2->comments = 'second crontabJob'; $expectedCrontabJob3 = new CrontabJob(); $expectedCrontabJob3->shortCut = 'hourly'; $expectedCrontabJob3->taskCommandLine = 'df > /tmp/df_`date +\\%d_\\%m_\\%Y_\\%H_\\%M`.log'; $expectedCrontabJob3->comments = 'third crontabJob'; $expectedCrontabJobs = array($expectedCrontabJob1, $expectedCrontabJob2, $expectedCrontabJob3); $crontabRepository = new CrontabRepository($fakeCrontabAdapter); $crontabJobs = $crontabRepository->getJobs(); $this->assertEquals($expectedCrontabJobs, $crontabJobs); }