| 
<?php/**
 * @author stev leibelt <[email protected]>
 * @since 2014-07-28
 */
 
 namespace Test\Net\Bazzline\Component\ProcessForkManager;
 
 use Net\Bazzline\Component\ProcessForkManager\TaskManager;
 
 /**
 * Class TaskManagerTest
 * @package Test\Net\Bazzline\Component\ProcessForkManager
 */
 class TaskManagerTest extends ForkManagerTestCase
 {
 public function testOpenTasks()
 {
 $manager = $this->getNewTaskManager();
 $task = $this->getMockOfAbstractTask();
 
 //no tasks available
 $this->assertFalse($manager->areThereOpenTasksLeft());
 
 //add a task as open
 $manager->addOpenTask($task);
 $this->assertTrue($manager->areThereOpenTasksLeft());
 
 //fetch available open task
 $this->assertEquals($task, $manager->getOpenTask());
 
 //try to fetch available open task
 $this->assertFalse($manager->areThereOpenTasksLeft());
 $this->assertNull($manager->getOpenTask());
 }
 
 public function testMarkOpenTaskAsRunning()
 {
 $manager = $this->getNewTaskManager();
 $task = $this->getMockOfAbstractTask();
 
 $task->shouldReceive('markAsRunning')
 ->once();
 
 //get task as running
 $manager->addOpenTask($task);
 $manager->getOpenTask();
 $manager->markOpenTaskAsRunning($task);
 }
 
 public function testMarkRunningTaskAsAborted()
 {
 $manager = $this->getNewTaskManager();
 $task = $this->getMockOfAbstractTask();
 
 $task->shouldReceive('markAsRunning')
 ->once();
 $task->shouldReceive('markAsAborted')
 ->once();
 
 //get task as running
 $manager->addOpenTask($task);
 $manager->getOpenTask();
 $manager->markOpenTaskAsRunning($task);
 
 $manager->markRunningTaskAsAborted($task);
 }
 
 public function testMarkRunningTaskAsFinished()
 {
 $manager = $this->getNewTaskManager();
 $task = $this->getMockOfAbstractTask();
 
 $task->shouldReceive('markAsRunning')
 ->once();
 $task->shouldReceive('markAsFinished')
 ->once();
 
 //get task as running
 $manager->addOpenTask($task);
 $manager->getOpenTask();
 $manager->markOpenTaskAsRunning($task);
 
 $manager->markRunningTaskAsFinished($task);
 }
 
 /**
 * @return TaskManager
 */
 private function getNewTaskManager()
 {
 return new TaskManager();
 }
 }
 
 |