/** * @depends testMakeRecipientsForADerivedRelation */ public function testMakeRecipientsForAnInferredRelation() { $form = new DynamicTriggeredModelRelationUserWorkflowEmailMessageRecipientForm('WorkflowModelTestItem5', Workflow::TYPE_ON_SAVE); $form->relation = 'WorkflowModelTestItem__workflowItems__Inferred'; $form->dynamicUserType = DynamicTriggeredModelRelationUserWorkflowEmailMessageRecipientForm::DYNAMIC_USER_TYPE_OWNER; //Test without any related model $recipients = $form->makeRecipients(new WorkflowModelTestItem5(), self::$sarah); $this->assertEquals(0, count($recipients)); //Test with a related model $model = new WorkflowModelTestItem(); $model->lastName = 'lastName'; $model->string = 'string'; $this->assertTrue($model->save()); $model5 = new WorkflowModelTestItem5(); $model5->name = 'model 5'; $model5->owner = self::$sarah; $model5->workflowItems->add($model); $this->assertTrue($model5->save()); $this->assertTrue($model5->id > 0); $recipients = $form->makeRecipients($model5, self::$sarah); $this->assertEquals(1, count($recipients)); $this->assertTrue($recipients[0]->personOrAccount->isSame(self::$super)); }
/** * @depends testCreateRelatedHasOnesInferredNonOwned * Similar to a meeting updating its related contacts */ public function testCreateRelatedInferredsHasOneNonOwned() { $action = new ActionForWorkflowForm('WorkflowModelTestItem5', Workflow::TYPE_ON_SAVE); $action->type = ActionForWorkflowForm::TYPE_CREATE_RELATED; $action->relation = 'WorkflowModelTestItem__workflowItems__Inferred'; $action->relatedModelRelation = 'hasOne'; $attributes = array('name' => array('shouldSetValue' => '1', 'type' => WorkflowActionAttributeForm::TYPE_STATIC, 'value' => 'some new model 2')); $action->setAttributes(array(ActionForWorkflowForm::ACTION_ATTRIBUTES => $attributes)); $model = new WorkflowModelTestItem5(); $relatedModel = new WorkflowModelTestItem(); $relatedModel->lastName = 'lastName'; $relatedModel->string = 'string'; $saved = $relatedModel->save(); $this->assertTrue($saved); $model->workflowItems->add($relatedModel); $saved = $model->save(); $this->assertTrue($saved); $this->assertTrue($model->workflowItems[0]->hasOne->id < 0); $helper = new WorkflowActionProcessingHelper(88, 'some name', $action, $model, Yii::app()->user->userModel); $helper->processNonUpdateSelfAction(); $this->assertTrue($model->workflowItems[0]->hasOne->id > 0); $this->assertEquals('some new model 2', $model->workflowItems[0]->hasOne->name); }