Esempio n. 1
0
 /**
  *  O -> [A] -> O -> [B] -> O
  * in          p1          out
  */
 public function testSequentialPattern()
 {
     $handler = new TestHandler();
     $logger = new Logger('test', array($handler));
     $workflow = WorkflowCommon::createWorkflow($logger);
     // create sequence
     $a = new AutoA();
     $workflow->addNode($a, 'a');
     $place = WorkflowCommon::createPlace();
     $workflow->addNode($place, 'p1');
     $b = new AutoB();
     $workflow->addNode($b, 'b');
     $workflow->connectToStart('a');
     $workflow->connect('a', 'p1');
     $workflow->connect('p1', 'b');
     $workflow->connectToFinish('b');
     $token = WorkflowCommon::createToken();
     $workflow->accept($token);
     $expected = array('Token accepted into workflow', 'Token advanced into workflow.start', 'Token advanced into a', 'Token advanced into p1', 'Token advanced into b', 'Token advanced into workflow.finish');
     foreach ($expected as $logEntry) {
         $this->assertTrue($handler->hasInfo($logEntry), "failed log entry {$logEntry}");
     }
 }