/**
  * @return multitype:Ambigous <number, unknown>
  */
 private function sanitizeProject()
 {
     // Info Project
     $minDate = 0;
     // Browse all tasks
     $arrTasks = $this->phpProject->getAllTasks();
     foreach ($arrTasks as $oTask) {
         if ($oTask->getTaskCount() == 0) {
             $this->sanitizeTask($oTask);
         } else {
             $this->sanitizeTaskParent($oTask);
         }
         $tStartDate = $oTask->getStartDate();
         if ($minDate == 0 || $tStartDate < $minDate) {
             $minDate = $tStartDate;
         }
     }
     // Browse all Resources
     $numResource = 0;
     foreach ($this->phpProject->getAllResources() as $oResource) {
         $oResource->setIndex($numResource);
         $numResource++;
     }
     return array('date_start' => (int) $minDate);
 }
 public function testTask()
 {
     $object = new PhpProject();
     // Start
     $this->assertEquals(0, $object->getTaskCount());
     $this->assertNull($object->getActiveTaskIndex());
     $this->assertCount(0, $object->getAllTasks());
     $this->assertInternalType('array', $object->getAllTasks());
     $this->assertNull($object->getActiveTask());
     // Add a task
     $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->createTask());
     $this->assertEquals(1, $object->getTaskCount());
     $this->assertCount(1, $object->getAllTasks());
     $this->assertEquals(0, $object->getActiveTaskIndex());
     $this->assertInternalType('array', $object->getAllTasks());
     $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->getActiveTask());
     // Add a task
     $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->createTask());
     $this->assertEquals(2, $object->getTaskCount());
     $this->assertCount(2, $object->getAllTasks());
     $this->assertEquals(1, $object->getActiveTaskIndex());
     $this->assertInternalType('array', $object->getAllTasks());
     $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->getActiveTask());
     // Active Task
     $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->setActiveTaskIndex(0));
     $this->assertEquals(0, $object->getActiveTaskIndex());
     $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->setActiveTaskIndex(1));
     $this->assertEquals(1, $object->getActiveTaskIndex());
     // Remove Task
     $object->removeTaskByIndex(0);
     $this->assertEquals(1, $object->getTaskCount());
     $this->assertCount(1, $object->getAllTasks());
     $this->assertEquals(0, $object->getActiveTaskIndex());
     $this->assertInternalType('array', $object->getAllTasks());
     $this->assertInstanceOf('PhpOffice\\PhpProject\\Task', $object->getActiveTask());
 }