/** * Supports setting metadata on both models. The MyListForm model and the SearchModel * @see ModalConfigEditView::setMetadataFromPost() */ public function setMetadataFromPost($postArray) { parent::setMetadataFromPost($postArray); $sanitizedPostArray = PostUtil::sanitizePostByDesignerTypeForSavingModel($this->searchModel, ArrayUtil::getArrayValue($_POST, $this->getSearchModelPostArrayName())); $searchAttributes = SearchUtil::getSearchAttributesFromSearchArrayForSavingExistingSearchCriteria($sanitizedPostArray); $searchAttributesAdaptedToSetInModel = SearchUtil::adaptSearchAttributesToSetInRedBeanModel($searchAttributes, $this->searchModel); $this->searchAttributes = $searchAttributesAdaptedToSetInModel; }
public function testGetSearchAttributesFromSearchArrayForSavingExistingSearchCriteria() { $searchArray = array('a' => 'apple', 'b' => ''); $testArray = array('a' => 'apple', 'b' => null); $newArray = SearchUtil::getSearchAttributesFromSearchArrayForSavingExistingSearchCriteria($searchArray); $this->assertEquals($testArray, $newArray); $searchArray = array('a' => 'apple', 'b' => ''); $newArray = SearchUtil::getSearchAttributesFromSearchArrayForSavingExistingSearchCriteria($searchArray); $this->assertEquals($testArray, $newArray); //Now test various empty and 0 combinations $searchArray = array('a' => null); $newArray = SearchUtil::getSearchAttributesFromSearchArrayForSavingExistingSearchCriteria($searchArray); $this->assertEquals(array('a' => null), $newArray); $searchArray = array('a' => ''); $newArray = SearchUtil::getSearchAttributesFromSearchArrayForSavingExistingSearchCriteria($searchArray); $this->assertEquals(array('a' => null), $newArray); $searchArray = array('a' => 0); $newArray = SearchUtil::getSearchAttributesFromSearchArrayForSavingExistingSearchCriteria($searchArray); $this->assertEquals(array('a' => 0), $newArray); $searchArray = array('a' => '0'); $newArray = SearchUtil::getSearchAttributesFromSearchArrayForSavingExistingSearchCriteria($searchArray); $this->assertEquals(array('a' => '0'), $newArray); $searchArray = array('a' => array('values' => array(0 => ''))); $newArray = SearchUtil::getSearchAttributesFromSearchArrayForSavingExistingSearchCriteria($searchArray); $this->assertEquals(array(), $newArray); $searchArray = array('a' => array('value' => array(0 => ''))); $newArray = SearchUtil::getSearchAttributesFromSearchArrayForSavingExistingSearchCriteria($searchArray); $this->assertEquals(array(), $newArray); $searchArray = array('a' => array('values' => array(0 => null))); $newArray = SearchUtil::getSearchAttributesFromSearchArrayForSavingExistingSearchCriteria($searchArray); $this->assertEquals(array(), $newArray); $searchArray = array('a' => array('value' => array(0 => null))); $newArray = SearchUtil::getSearchAttributesFromSearchArrayForSavingExistingSearchCriteria($searchArray); $this->assertEquals(array(), $newArray); $searchArray = array('a' => array('value' => array(0 => null, 1 => 'xyz'))); $newArray = SearchUtil::getSearchAttributesFromSearchArrayForSavingExistingSearchCriteria($searchArray); $this->assertEquals(array('a' => array('value' => array(0 => 'xyz'))), $newArray); }