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