/**
  * @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;
 }
예제 #2
0
 /**
  * @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));
 }