/**
  * Tests if a task can be saved.
  */
 public function testSaveTask()
 {
     $this->testClearQueue();
     $request = new Zend_Controller_Request_Simple();
     $request->setControllerName('Tinebase_Alarm');
     $request->setActionName('sendPendingAlarms');
     $request->setParam('eventName', 'Tinebase_Event_Async_Minutely');
     $task = Zend_Scheduler_Task::getTask()->setMonths("Jan-Dec")->setWeekdays("Sun-Sat")->setDays("1-31")->setHours("0-23")->setMinutes("0/1")->setRequest($request);
     $this->_scheduler->addTask('Tinebase_Alarm_Test', $task);
     $this->_scheduler->saveTask();
     $tasks = $this->_scheduler->getBackend()->loadQueue();
     $this->assertEquals(1, count($tasks));
 }
 /**
  * Tests any given backend.
  *
  * @param Zend_Scheduler $scheduler
  * @param Zend_Scheduler_Backend_Abstract $backend
  */
 protected function _canUseBackend(Zend_Scheduler_Backend_Abstract $backend)
 {
     $controller = Zend_Controller_Front_Mock::getInstance();
     $controller->returnResponse(true);
     $controller->throwExceptions(true);
     $scheduler = new Zend_Scheduler($backend);
     $scheduler->setController($controller);
     $scheduler->setLimit(1);
     // Only execute one task
     $task = new Zend_Scheduler_Task();
     $task->addRequest('scheduled', 'task1');
     $task->addRequest('scheduled', 'task2');
     $scheduler->addTask('test1', $task);
     $task = new Zend_Scheduler_Task();
     $task->setRequest('scheduled', 'task3');
     $scheduler->addTask('test2', $task);
     $task = new Zend_Scheduler_Task();
     $task->setRequest('scheduled', 'task4');
     $scheduler->addTask('test3', $task);
     try {
         $scheduler->run();
     } catch (Zend_Scheduler_Exception $e) {
         $this->fail('Could not execute tasks: ' . $e->getMessage());
     }
     try {
         $tasks = $backend->loadQueue();
     } catch (Zend_Scheduler_Exception $e) {
         $this->fail('Could not load task queue');
     }
     $taskCount = count($tasks);
     $this->assertEquals(2, $taskCount, "Expected 2 tasks in queue, received {$taskCount}");
     $tasksFound = isset($tasks['test2']) and isset($tasks['test3']);
     $this->assertTrue($tasksFound, 'Did not find expected tasks in queue');
     $this->assertType('Zend_Scheduler_Task', $tasks['test2'], 'Received task did not match type');
 }
 /**
  * Tests if a task can be successfully dispatched.
  *
  * @see Zend_Controller_Front_Mock
  */
 public function testCanDispatchTask()
 {
     $controller = Zend_Controller_Front::getInstance();
     $controller->setControllerDirectory(dirname(__FILE__) . '/controllers');
     $controller->returnResponse(true);
     $controller->throwExceptions(true);
     $request = new Zend_Controller_Request_Http();
     $request->setControllerName('index');
     $request->setActionName('index');
     $scheduler = new Zend_Scheduler();
     $task = new Zend_Scheduler_Task();
     $task->setFrontController($controller);
     $task->setRequest($request);
     $scheduler->addTask('test', $task);
     $responses = $scheduler->run();
     $this->assertTrue(isset($responses['test']), 'Received empty response');
 }