public function testRun() { //Create workflow $workflow = new Workflow(); $workflow->setDescription('aDescription'); $workflow->setIsActive(true); $workflow->setOrder(5); $workflow->setModuleClassName('WorkflowsTest2Module'); $workflow->setName('myFirstWorkflow'); $workflow->setTriggerOn(Workflow::TRIGGER_ON_NEW_AND_EXISTING); $workflow->setType(Workflow::TYPE_ON_SAVE); $workflow->setTriggersStructure('1'); //Add action that is missing required owner $action = new ActionForWorkflowForm('WorkflowModelTestItem2', Workflow::TYPE_ON_SAVE); $action->type = ActionForWorkflowForm::TYPE_CREATE; $action->relation = 'hasMany2'; $attributes = array('string' => array('shouldSetValue' => '1', 'type' => WorkflowActionAttributeForm::TYPE_STATIC, 'value' => 'jason'), 'lastName' => array('shouldSetValue' => '1', 'type' => WorkflowActionAttributeForm::TYPE_STATIC, 'value' => 'jason')); $action->setAttributes(array(ActionForWorkflowForm::ACTION_ATTRIBUTES => $attributes)); $workflow->addAction($action); //Create the saved Workflow $savedWorkflow = new SavedWorkflow(); SavedWorkflowToWorkflowAdapter::resolveWorkflowToSavedWorkflow($workflow, $savedWorkflow); $saved = $savedWorkflow->save(); $this->assertTrue($saved); $this->assertEquals(0, count(Notification::getAll())); $job = new WorkflowValidityCheckJob(); $this->assertTrue($job->run()); $notifications = Notification::getAll(); $this->assertEquals(1, count($notifications)); }
public function testRunWithMissingTriggerMultiselectPicklistValue() { $this->clearNotificationsWorkflowsAndEmailMessages(); $this->createStageValues(); //Create workflow $workflow = new Workflow(); $workflow->setDescription('bDescription'); $workflow->setIsActive(true); $workflow->setOrder(5); $workflow->setModuleClassName('OpportunitiesModule'); $workflow->setName('mySecondWorkflow'); $workflow->setTriggerOn(Workflow::TRIGGER_ON_NEW_AND_EXISTING); $workflow->setType(Workflow::TYPE_ON_SAVE); $workflow->setTriggersStructure('1'); $trigger = new TriggerForWorkflowForm('OpportunitiesModule', 'Opportunity', Workflow::TYPE_ON_SAVE); $trigger->attributeIndexOrDerivedType = 'stage'; $trigger->value = 'Closed Won,Negotiating'; $trigger->operator = OperatorRules::TYPE_ONE_OF; $trigger->relationFilter = TriggerForWorkflowForm::RELATION_FILTER_ANY; $workflow->addTrigger($trigger); //Create the saved Workflow $savedWorkflow = new SavedWorkflow(); SavedWorkflowToWorkflowAdapter::resolveWorkflowToSavedWorkflow($workflow, $savedWorkflow); $saved = $savedWorkflow->save(); $this->assertTrue($saved); $this->assertEquals(0, Notification::getCount()); $this->assertEquals(0, EmailMessage::getCount()); $job = new WorkflowValidityCheckJob(); $this->assertTrue($job->run()); $this->assertEquals(0, Notification::getCount()); $this->assertEquals(0, EmailMessage::getCount()); $this->clearNotificationsWorkflowsAndEmailMessages(); $workflow = new Workflow(); $workflow->setDescription('cDescription'); $workflow->setIsActive(true); $workflow->setOrder(5); $workflow->setModuleClassName('OpportunitiesModule'); $workflow->setName('mySecondWorkflow'); $workflow->setTriggerOn(Workflow::TRIGGER_ON_NEW_AND_EXISTING); $workflow->setType(Workflow::TYPE_ON_SAVE); $workflow->setTriggersStructure('1'); $trigger = new TriggerForWorkflowForm('OpportunitiesModule', 'Opportunity', Workflow::TYPE_ON_SAVE); $trigger->attributeIndexOrDerivedType = 'stage'; $trigger->value = 'Closed Won,Unexisting state'; $trigger->operator = OperatorRules::TYPE_BECOMES; $trigger->relationFilter = TriggerForWorkflowForm::RELATION_FILTER_ANY; $workflow->addTrigger($trigger); //Create the saved Workflow $savedWorkflow = new SavedWorkflow(); SavedWorkflowToWorkflowAdapter::resolveWorkflowToSavedWorkflow($workflow, $savedWorkflow); $saved = $savedWorkflow->save(); $this->assertTrue($saved); $this->assertEquals(0, Notification::getCount()); $this->assertEquals(0, EmailMessage::getCount()); $job = new WorkflowValidityCheckJob(); $this->assertTrue($job->run()); $this->assertEquals(1, Notification::getCount()); $this->assertEquals(1, EmailMessage::getCount()); }