コード例 #1
0
 public function testGetPreviousActivities()
 {
     /*
      *  activity > connector1(COND)
      *  -> THEN  > thenConnector(SQ)
      *  -> ELSE > elseConnector (SQ)
      *  -> Act3 > connector2(PARA)
      *  -> Act4 > connector3(JOIN)
      *  -> Act5 > connector4(JOIN)
      * 	-> Acto6
      *
      */
     $connector1 = $this->authoringService->createConnector($this->activity);
     $then = $this->authoringService->createConditionalActivity($connector1, 'then');
     //create "Activity_2"
     $thenConnector = $this->authoringService->createConnector($then, 'then Connector');
     //create "Activity_2"
     $else = $this->authoringService->createConditionalActivity($connector1, 'else', null, '', true);
     //create another connector
     $elseConnector = $this->authoringService->createConnector($else, 'else Connector');
     //create "Activity_2"
     $activity3 = $this->authoringService->createSequenceActivity($thenConnector, null, 'Act3');
     $this->authoringService->createSequenceActivity($elseConnector, $activity3);
     $connector1PrevAct = $this->service->getPreviousActivities($connector1);
     $this->assertInternalType('array', $connector1PrevAct);
     $this->assertTrue(sizeof($connector1PrevAct) == 1);
     if (isset($connector1PrevAct[0]) && $connector1PrevAct[0] instanceof core_kernel_classes_Resource) {
         $this->assertTrue($connector1PrevAct[0]->getUri() == $this->activity->getUri());
     }
     $elsePrevAct = $this->service->getPreviousActivities($elseConnector);
     $this->assertInternalType('array', $elsePrevAct);
     $this->assertTrue(sizeof($elsePrevAct) == 1);
     if (isset($elsePrevAct[0]) && $elsePrevAct[0] instanceof core_kernel_classes_Resource) {
         $this->assertTrue($elsePrevAct[0]->getUri() == $else->getUri());
     }
     $thenPrevAct = $this->service->getPreviousActivities($thenConnector);
     $this->assertInternalType('array', $thenPrevAct);
     $this->assertTrue(sizeof($thenPrevAct) == 1);
     if (isset($thenPrevAct[0]) && $thenPrevAct[0] instanceof core_kernel_classes_Resource) {
         $this->assertTrue($thenPrevAct[0]->getUri() == $then->getUri());
     }
     $myProcessVar1 = $this->variableService->getProcessVariable('myProcessVarCode1', true);
     $transitionRule = $this->authoringService->createTransitionRule($connector1, '^myProcessVarCode1 == 1');
     $connector2 = $this->authoringService->createConnector($activity3);
     $activity4 = $this->authoringService->createActivity($this->processDefinition, 'activity4 for interactive service unit test');
     $connector3 = $this->authoringService->createConnector($activity4);
     $activity5 = $this->authoringService->createActivity($this->processDefinition, 'activity5 for interactive service unit test');
     $connector4 = $this->authoringService->createConnector($activity5);
     $newActivitiesArray = array($activity4->getUri() => 2, $activity5->getUri() => 3);
     $this->authoringService->setParallelActivities($connector2, $newActivitiesArray);
     $activity6 = $this->authoringService->createActivity($this->processDefinition);
     $connector3 = wfAuthoring_models_classes_ConnectorService::singleton()->createJoin(array($activity4, $activity5), $activity6);
     /*
             $activity6 = $this->authoringService->createJoinActivity($connector3, null, '', $activity4);
     $activity7 = $this->authoringService->createJoinActivity($connector4, $activity6, '', $activity5);
     */
     $this->assertEquals(count($this->service->getNextActivities($connector2)), 2);
     $activity3PrevActi = $this->service->getPreviousActivities($connector2);
     $this->assertInternalType('array', $activity3PrevActi);
     $this->assertTrue(sizeof($activity3PrevActi) == 1);
     if (isset($activity3PrevActi[0]) && $activity3PrevActi[0] instanceof core_kernel_classes_Resource) {
         $this->assertTrue($activity3PrevActi[0]->getUri() == $activity3->getUri());
     }
     $activity4PrevActi = $this->service->getPreviousSteps($connector3);
     $this->assertInternalType('array', $activity4PrevActi);
     $this->assertEquals(sizeof($activity4PrevActi), 2);
     $cardinalityService = wfEngine_models_classes_ActivityCardinalityService::singleton();
     $prevActivitiesarrayCount = array();
     foreach ($activity4PrevActi as $cardinality) {
         $this->assertTrue($cardinalityService->isCardinality($cardinality));
         $activities = $cardinalityService->getPreviousSteps($cardinality);
         $this->assertEquals(count($activities), 1);
         $activity = current($activities);
         $keyExists = array_key_exists($activity->getUri(), $newActivitiesArray);
         $this->assertTrue($keyExists);
         if ($keyExists) {
             $prevActivitiesarrayCount[$activity->getUri()] = $cardinalityService->getCardinality($cardinality);
         }
     }
     $this->assertEquals($prevActivitiesarrayCount, $newActivitiesArray);
     $then->delete(true);
     $else->delete(true);
     $activity3->delete(true);
     $activity4->delete(true);
     $activity5->delete(true);
     $activity6->delete(true);
     $transitionRule->delete(true);
     $connector1->delete(true);
     $connector2->delete(true);
     $connector3->delete(true);
     $connector4->delete(true);
 }