/**
  * There previously was a problem with a model being created, then a new custom field added, then if you try
  * to access the available CustomFieldData it was not available on that model.  Since performance3 work
  * this has been resolve and this test confirms it works ok
  */
 public function testConstructIncompleteIsNotNeeded()
 {
     //First create AAA model and save
     $aaa = new AAA();
     $aaa->aaaMember = 'test';
     $saved = $aaa->save();
     $this->assertTrue($saved);
     $aaaId = $aaa->id;
     $aaa->forget();
     unset($aaa);
     //Second create customFieldData
     $values = array('Item 1', 'Item 2', 'Item 3');
     $labels = array('fr' => 'Item 1 fr', 'fr' => 'Item 2 fr', 'fr' => 'Item 3 fr');
     $customFieldData = CustomFieldData::getByName('Items');
     $customFieldData->serializedData = serialize($values);
     $customFieldData->serializedLabels = serialize($labels);
     $this->assertTrue($customFieldData->save());
     $id = $customFieldData->id;
     unset($customFieldData);
     //Third create a CustomField on AAA
     $metadata = AAA::getMetadata();
     $metadata['AAA']['customFields']['newCustomField'] = 'Items';
     $metadata['AAA']['relations']['newCustomField'] = array(RedBeanModel::HAS_ONE, 'CustomField');
     AAA::setMetadata($metadata);
     //Fourth make sure AAA can utilize CustomFieldData after being constructed
     $aaa = AAA::GetById($aaaId);
     $this->assertTrue($aaa->isAnAttribute('newCustomField'));
     $dropDownArray = unserialize($aaa->newCustomField->data->serializedData);
     $this->assertCount(3, $dropDownArray);
     //Fifth make sure a new model has the data available
     $aaa = new AAA();
     $this->assertTrue($aaa->isAnAttribute('newCustomField'));
     $dropDownArray = unserialize($aaa->newCustomField->data->serializedData);
     $this->assertCount(3, $dropDownArray);
 }