/** * @param WorkflowWizardForm $formModel */ protected function setCommonAttributes(WorkflowWizardForm $formModel) { $formModel->id = $this->workflow->getId(); $formModel->isActive = $this->workflow->getIsActive(); $formModel->description = $this->workflow->getDescription(); $formModel->moduleClassName = $this->workflow->getModuleClassName(); $formModel->name = $this->workflow->getName(); $formModel->triggerOn = $this->workflow->getTriggerOn(); $formModel->type = $this->workflow->getType(); $formModel->triggersStructure = $this->workflow->getTriggersStructure(); $formModel->timeTriggerAttribute = $this->workflow->getTimeTriggerAttribute(); if ($this->workflow->isNew()) { $formModel->setIsNew(); } $formModel->timeTrigger = $this->workflow->getTimeTrigger(); $formModel->triggers = $this->workflow->getTriggers(); $formModel->actions = $this->workflow->getActions(); $formModel->emailMessages = $this->workflow->getEmailMessages(); }
/** * @depends testGetWorkflowSupportedModulesClassNamesCurrentUserHasAccessTo */ public function testSetAndGetWorkflow() { $timeTrigger = new TimeTriggerForWorkflowForm('WorkflowsTestModule', 'WorkflowModelTestItem', Workflow::TYPE_ON_SAVE); $action = new ActionForWorkflowForm('WorkflowModelTestItem', Workflow::TYPE_ON_SAVE); $emailMessage = new EmailMessageForWorkflowForm('WorkflowModelTestItem', Workflow::TYPE_ON_SAVE); $trigger = new TriggerForWorkflowForm('WorkflowsTestModule', 'WorkflowModelTestItem', Workflow::TYPE_ON_SAVE); $workflow = new Workflow(); $workflow->setModuleClassName('SomeModule'); $workflow->setDescription('a description'); $workflow->setTriggersStructure('1 AND 2'); $workflow->setTimeTriggerAttribute('something'); $workflow->setId(5); $workflow->setIsActive(true); $workflow->setOrder(6); $workflow->setName('my workflow rule'); $workflow->setTriggerOn(Workflow::TRIGGER_ON_NEW); $workflow->setType(Workflow::TYPE_ON_SAVE); $workflow->setTimeTrigger($timeTrigger); $workflow->addTrigger($trigger); $workflow->addAction($action); $workflow->addEmailMessage($emailMessage); $this->assertEquals('SomeModule', $workflow->getModuleClassName()); $this->assertEquals('a description', $workflow->getDescription()); $this->assertEquals('1 AND 2', $workflow->getTriggersStructure()); $this->assertEquals('something', $workflow->getTimeTriggerAttribute()); $this->assertEquals(5, $workflow->getId()); $this->assertTrue($workflow->getIsActive()); $this->assertEquals(6, $workflow->getOrder()); $this->assertEquals('my workflow rule', $workflow->getName()); $this->assertEquals(Workflow::TRIGGER_ON_NEW, $workflow->getTriggerOn()); $this->assertEquals(Workflow::TYPE_ON_SAVE, $workflow->getType()); $this->assertEquals($timeTrigger, $workflow->getTimeTrigger()); $actions = $workflow->getActions(); $this->assertEquals($action, $actions[0]); $this->assertCount(1, $actions); $emailMessages = $workflow->getEmailMessages(); $this->assertEquals($emailMessage, $emailMessages[0]); $this->assertCount(1, $emailMessages); $triggers = $workflow->getTriggers(); $this->assertEquals($trigger, $triggers[0]); $this->assertCount(1, $triggers); $workflow->removeAllActions(); $actions = $workflow->getActions(); $this->assertCount(0, $actions); $workflow->removeAllEmailMessages(); $emailMessages = $workflow->getEmailMessages(); $this->assertCount(0, $emailMessages); $workflow->removeAllTriggers(); $triggers = $workflow->getTriggers(); $this->assertCount(0, $triggers); $workflow->removeTimeTrigger(); $this->assertNull($workflow->getTimeTrigger()); }
/** * @param Workflow $workflow * @param SavedWorkflow $savedWorkflow */ public static function resolveWorkflowToSavedWorkflow(Workflow $workflow, SavedWorkflow $savedWorkflow) { $savedWorkflow->description = $workflow->getDescription(); $savedWorkflow->isActive = $workflow->getIsActive(); $savedWorkflow->moduleClassName = $workflow->getModuleClassName(); $savedWorkflow->name = $workflow->getName(); $savedWorkflow->order = $workflow->getOrder(); $savedWorkflow->triggerOn = $workflow->getTriggerOn(); $savedWorkflow->type = $workflow->getType(); $data = array(); $data['triggersStructure'] = $workflow->getTriggersStructure(); $data[ComponentForWorkflowForm::TYPE_TRIGGERS] = self::makeArrayFromComponentFormsAttributesData($workflow->getTriggers()); $data[ComponentForWorkflowForm::TYPE_ACTIONS] = self::makeArrayFromActionForWorkflowFormAttributesData($workflow->getActions()); $data[ComponentForWorkflowForm::TYPE_EMAIL_MESSAGES] = self::makeArrayFromEmailMessageForWorkflowFormAttributesData($workflow->getEmailMessages()); if ($workflow->getTimeTrigger() != null) { $data[ComponentForWorkflowForm::TYPE_TIME_TRIGGER] = self::makeArrayFromTimeTriggerForWorkflowFormAttributesData($workflow->getTimeTrigger()); } $savedWorkflow->serializedData = serialize($data); }