/**
  * @depends testCreateRelatedHasOnesDerivedNonOwned
  * Similar to an account updating all related tasks.
  */
 public function testCreateRelatedDerivedsHasOneNonOwned()
 {
     $this->assertEquals(0, WorkflowModelTestItem5::getCount());
     $action = new ActionForWorkflowForm('WorkflowModelTestItem', Workflow::TYPE_ON_SAVE);
     $action->type = ActionForWorkflowForm::TYPE_CREATE_RELATED;
     $action->relation = 'model5ViaItem';
     $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 WorkflowModelTestItem();
     $model->lastName = 'lastName';
     $model->string = 'string';
     $saved = $model->save();
     $this->assertTrue($saved);
     $relatedModel = new WorkflowModelTestItem5();
     $relatedModel->name = 'my derived model';
     $relatedModel->workflowItems->add($model);
     $saved = $relatedModel->save();
     $this->assertTrue($saved);
     $helper = new WorkflowActionProcessingHelper(88, 'some name', $action, $model, Yii::app()->user->userModel);
     $helper->processNonUpdateSelfAction();
     $derivedModels = WorkflowModelTestItem5::getAll();
     $this->assertEquals(1, count($derivedModels));
     $this->assertEquals('some new model 2', $derivedModels[0]->hasOne->name);
     $deleted = $derivedModels[0]->delete();
     $this->assertTrue($deleted);
 }
 /**
  * @depends testCreateInferred
  * Similar to a meeting updating its related contacts
  */
 public function testCreateRelatedHasOnesInferredNonOwned()
 {
     $this->assertEquals(0, count(WorkflowModelTestItem5::getAll()));
     $action = new ActionForWorkflowForm('WorkflowModelTestItem9', Workflow::TYPE_ON_SAVE);
     $action->type = ActionForWorkflowForm::TYPE_CREATE_RELATED;
     $action->relation = 'hasOne2';
     $action->relatedModelRelation = 'WorkflowModelTestItem__workflowItems__Inferred';
     $attributes = array('string' => array('shouldSetValue' => '1', 'type' => WorkflowActionAttributeForm::TYPE_STATIC, 'value' => 'a new derived name'), 'lastName' => array('shouldSetValue' => '1', 'type' => WorkflowActionAttributeForm::TYPE_STATIC, 'value' => 'a new last name'));
     $action->setAttributes(array(ActionForWorkflowForm::ACTION_ATTRIBUTES => $attributes));
     $model = new WorkflowModelTestItem9();
     $saved = $model->save();
     $this->assertTrue($saved);
     $relatedModel = new WorkflowModelTestItem5();
     $saved = $relatedModel->save();
     $this->assertTrue($saved);
     $model->hasOne2 = $relatedModel;
     $saved = $model->save();
     $this->assertTrue($saved);
     $this->assertEquals(0, $model->hasOne2->workflowItems->count());
     $helper = new WorkflowActionProcessingHelper($action, $model, Yii::app()->user->userModel);
     $helper->processNonUpdateSelfAction();
     $this->assertEquals(1, $model->hasOne2->workflowItems->count());
     $this->assertEquals('a new derived name', $model->hasOne2->workflowItems[0]->string);
 }