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