/**
  * @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);
 }