/** * @param Array $inputPrefixData * @return array */ protected function resolveAttributeRowsForCreateTypes(array $inputPrefixData) { assert('is_array($inputPrefixData)'); $attributeRows = array(self::REQUIRED_ATTRIBUTES_INDEX => array(), self::NON_REQUIRED_ATTRIBUTES_INDEX => array()); foreach ($this->model->resolveAllRequiredActionAttributeFormsAndLabelsAndSort() as $attribute => $actionAttributeForm) { $elementAdapter = new WorkflowActionAttributeToElementAdapter($actionAttributeForm, $this->form, $this->model->type, array_merge($inputPrefixData, array($attribute)), true); $attributeRows[self::REQUIRED_ATTRIBUTES_INDEX][] = $elementAdapter->getContent(); } foreach ($this->model->resolveAllNonRequiredActionAttributeFormsAndLabelsAndSort() as $attribute => $actionAttributeForm) { $elementAdapter = new WorkflowActionAttributeToElementAdapter($actionAttributeForm, $this->form, $this->model->type, array_merge($inputPrefixData, array($attribute)), false); $attributeRows[self::NON_REQUIRED_ATTRIBUTES_INDEX][] = $elementAdapter->getContent(); } return $attributeRows; }
/** * @depends testResolveAllRequiredActionAttributeFormsAndLabelsAndSort */ public function testResolveAllNonRequiredActionAttributeFormsAndLabelsAndSort() { $form = new ActionForWorkflowForm('WorkflowModelTestItem2', Workflow::TYPE_ON_SAVE); $form->type = ActionForWorkflowForm::TYPE_UPDATE_RELATED; $form->relation = 'hasMany2'; $data = $form->resolveAllNonRequiredActionAttributeFormsAndLabelsAndSort(); $this->assertEquals(38, count($data)); //Test update a derived related model (this is like account's meetings) $form = new ActionForWorkflowForm('WorkflowModelTestItem', Workflow::TYPE_ON_SAVE); $form->type = ActionForWorkflowForm::TYPE_UPDATE_RELATED; $form->relation = 'model5ViaItem'; $data = $form->resolveAllNonRequiredActionAttributeFormsAndLabelsAndSort(); $this->assertEquals(2, count($data)); //Test update a inferred related model (this is like a meeting's accounts) $form = new ActionForWorkflowForm('WorkflowModelTestItem5', Workflow::TYPE_ON_SAVE); $form->type = ActionForWorkflowForm::TYPE_UPDATE_RELATED; $form->relation = 'WorkflowModelTestItem__workflowItems__Inferred'; $data = $form->resolveAllNonRequiredActionAttributeFormsAndLabelsAndSort(); $this->assertEquals(38, count($data)); //Test create a related, derived related model (this is like account's meetings) $form = new ActionForWorkflowForm('WorkflowModelTestItem2', Workflow::TYPE_ON_SAVE); $form->type = ActionForWorkflowForm::TYPE_CREATE_RELATED; $form->relation = 'hasMany2'; $form->relatedModelRelation = 'model5ViaItem'; $data = $form->resolveAllNonRequiredActionAttributeFormsAndLabelsAndSort(); $this->assertEquals(2, count($data)); //Test create a related, inferred related model (this is like a meeting's accounts) $form = new ActionForWorkflowForm('WorkflowModelTestItem7', Workflow::TYPE_ON_SAVE); $form->type = ActionForWorkflowForm::TYPE_CREATE_RELATED; $form->relation = 'model5'; $form->relatedModelRelation = 'WorkflowModelTestItem__workflowItems__Inferred'; $data = $form->resolveAllNonRequiredActionAttributeFormsAndLabelsAndSort(); $this->assertEquals(38, count($data)); }