コード例 #1
0
ファイル: WorkflowTest.php プロジェクト: ayoah/symfony
 public function testGetEnabledTransitions()
 {
     $definition = $this->createComplexWorkflow();
     $subject = new \stdClass();
     $subject->marking = null;
     $eventDispatcher = new EventDispatcher();
     $eventDispatcher->addListener('workflow.workflow_name.guard.t1', function (GuardEvent $event) {
         $event->setBlocked(true);
     });
     $workflow = new Workflow($definition, new PropertyAccessorMarkingStore(), $eventDispatcher, 'workflow_name');
     $this->assertEmpty($workflow->getEnabledTransitions($subject));
     $subject->marking = array('d' => true);
     $transitions = $workflow->getEnabledTransitions($subject);
     $this->assertCount(2, $transitions);
     $this->assertSame('t3', $transitions['t3']->getName());
     $this->assertSame('t4', $transitions['t4']->getName());
     $subject->marking = array('c' => true, 'e' => true);
     $transitions = $workflow->getEnabledTransitions($subject);
     $this->assertCount(1, $transitions);
     $this->assertSame('t5', $transitions['t5']->getName());
 }