setStep('final', new WorkflowTransitionContextDTO($entityWorkflow)); $entityWorkflow->getCurrentStep()->setIsFinal(true); $this->assertTrue($entityWorkflow->isFinal()); } public function testIsFinalizeWith4Steps() { $entityWorkflow = new EntityWorkflow(); $this->assertFalse($entityWorkflow->isFinal()); $entityWorkflow->setStep('two', new WorkflowTransitionContextDTO($entityWorkflow)); $this->assertFalse($entityWorkflow->isFinal()); $entityWorkflow->setStep('previous_final', new WorkflowTransitionContextDTO($entityWorkflow)); $this->assertFalse($entityWorkflow->isFinal()); $entityWorkflow->getCurrentStep()->setIsFinal(true); $entityWorkflow->setStep('final', new WorkflowTransitionContextDTO($entityWorkflow)); $this->assertTrue($entityWorkflow->isFinal()); } public function testIsFreeze() { $entityWorkflow = new EntityWorkflow(); $this->assertFalse($entityWorkflow->isFreeze()); $entityWorkflow->setStep('step_one', new WorkflowTransitionContextDTO($entityWorkflow)); $this->assertFalse($entityWorkflow->isFreeze()); $entityWorkflow->setStep('step_three', new WorkflowTransitionContextDTO($entityWorkflow)); $this->assertFalse($entityWorkflow->isFreeze()); $entityWorkflow->setStep('freezed', new WorkflowTransitionContextDTO($entityWorkflow)); $entityWorkflow->getCurrentStep()->setFreezeAfter(true); $this->assertTrue($entityWorkflow->isFreeze()); $entityWorkflow->setStep('after_freeze', new WorkflowTransitionContextDTO($entityWorkflow)); $this->assertTrue($entityWorkflow->isFreeze()); $this->assertTrue($entityWorkflow->getCurrentStep()->isFreezeAfter()); } }