public function testGetDataFormats()
 {
     $name = 'name';
     $table = new ModelTable('table');
     $formats = $table->getDataFormats(false);
     $this->assertTrue(is_array($formats));
     $this->assertEquals(0, count($formats));
     $formats = $table->getDataFormats(true);
     $this->assertTrue(is_array($formats));
     $this->assertEquals(1, count($formats));
     $this->assertTrue(array_key_exists(DataFormatter::FORMAT_TITLE, $formats));
     $table->setDataFormat(new DataFormat($name, 'format'));
     $formats = $table->getDataFormats(true);
     $this->assertTrue(is_array($formats));
     $this->assertEquals(2, count($formats));
     $this->assertTrue(array_key_exists(DataFormatter::FORMAT_TITLE, $formats));
     $this->assertTrue(array_key_exists($name, $formats));
     $formats = $table->getDataFormats(false);
     $this->assertTrue(is_array($formats));
     $this->assertEquals(1, count($formats));
     $this->assertFalse(array_key_exists(DataFormatter::FORMAT_TITLE, $formats));
     $this->assertTrue(array_key_exists($name, $formats));
     $table->setDataFormat(new DataFormat(DataFormatter::FORMAT_TITLE, 'format'));
     $formats = $table->getDataFormats(true);
     $this->assertTrue(is_array($formats));
     $this->assertEquals(2, count($formats));
     $this->assertTrue(array_key_exists(DataFormatter::FORMAT_TITLE, $formats));
     $this->assertTrue(array_key_exists($name, $formats));
     $formats = $table->getDataFormats(false);
     $this->assertTrue(is_array($formats));
     $this->assertEquals(2, count($formats));
     $this->assertTrue(array_key_exists(DataFormatter::FORMAT_TITLE, $formats));
     $this->assertTrue(array_key_exists($name, $formats));
 }
 /**
  * Copies a model table into another
  * @param zibo\library\orm\definition\ModelTable $source
  * @param zibo\library\orm\definition\ModelTable $destination
  * @return null
  */
 private function copyModel(ModelTable $source, ModelTable $destination)
 {
     $destination->setWillBlockDeleteWhenUsed($source->willBlockDeleteWhenUsed);
     $fields = $source->getFields();
     foreach ($fields as $field) {
         if ($field->getName() == ModelTable::PRIMARY_KEY) {
             continue;
         }
         $destination->addField($field);
     }
     $indexes = $source->getIndexes();
     foreach ($indexes as $index) {
         $destination->addIndex($index);
     }
     $dataFormats = $source->getDataFormats();
     foreach ($dataFormats as $name => $format) {
         $destination->setDataFormat($name, $format);
     }
 }
 /**
  * Sets the the title and teaser format to the model table
  * @param DOMElement $modelElement Element of the model
  * @param zibo\library\orm\definition\ModelTable $modelTable Model table which is being read
  * @return null
  */
 protected function setFormatsFromElement(DOMElement $modelElement, ModelTable $modelTable)
 {
     $formatElements = $modelElement->getElementsByTagName(self::TAG_FORMAT);
     foreach ($formatElements as $formatElement) {
         $name = $formatElement->getAttribute(self::ATTRIBUTE_NAME);
         $format = $formatElement->textContent;
         $modelTable->setDataFormat(new DataFormat($name, $format));
     }
 }