/**
* @test
*/
public function scheduleJobAndRunCron()
{
$sameRequest = false;
if ($sameRequest) {
// dispatch event
$event = new Varien_Event_Observer(array('include_groups' => array($this->groups['groupA'])));
$observer = new Aoe_Scheduler_Model_Observer();
$observer->dispatch($event);
} else {
$this->exec('cd ' . Mage::getBaseDir() . '/shell && /usr/bin/php scheduler.php --action cron --mode always --includeGroups ' . $this->groups['groupA']);
}
$schedulesJobWithGroupA = Mage::getModel('cron/schedule')->getCollection()->addFieldToFilter('job_code', $this->jobs['jobWithGroupA']->getJobCode());
$this->assertCount(1, $schedulesJobWithGroupA);
foreach ($schedulesJobWithGroupA as $schedule) {
/* @var $schedule Aoe_Scheduler_Model_Schedule */
$this->assertEquals(Aoe_Scheduler_Model_Schedule::STATUS_SUCCESS, $schedule->getStatus());
}
$schedulesJobWithGroupB = Mage::getModel('cron/schedule')->getCollection()->addFieldToFilter('job_code', $this->jobs['jobWithGroupB']->getJobCode());
$this->assertCount(0, $schedulesJobWithGroupB);
$schedulesJobWithGroupAandB = Mage::getModel('cron/schedule')->getCollection()->addFieldToFilter('job_code', $this->jobs['jobWithGroupAandB']->getJobCode());
$this->assertCount(1, $schedulesJobWithGroupAandB);
foreach ($schedulesJobWithGroupAandB as $schedule) {
/* @var $schedule Aoe_Scheduler_Model_Schedule */
$this->assertEquals(Aoe_Scheduler_Model_Schedule::STATUS_SUCCESS, $schedule->getStatus());
}
}