/**
  * @test
  */
 public function addAddsOnlyOneSqlString()
 {
     $this->subject->add('text_extension_a', $this->tables['first'], 'categories1');
     $this->subject->add('text_extension_b', $this->tables['first'], 'categories1', array(), true);
     $sqlData = $this->subject->addExtensionCategoryDatabaseSchemaToTablesDefinition(array(), 'text_extension_a');
     $this->assertEmpty($sqlData['sqlString'][0]);
 }
 /**
  * @test
  */
 public function tabIsAddedOnlyOncePerTable()
 {
     $this->subject->add('text_extension_a', $this->tables['first'], 'categories1');
     $this->subject->add('text_extension_a', $this->tables['first'], 'categories2');
     $this->subject->applyTcaForPreRegisteredTables();
     foreach ($GLOBALS['TCA'][$this->tables['first']]['types'] as $typeConfig) {
         $this->assertSame(1, substr_count($typeConfig['showitem'], '--div--;LLL:EXT:lang/locallang_tca.xlf:sys_category.tabs.category'));
     }
 }
 /**
  * @test
  */
 public function areDatabaseDefinitionsOfParticularExtensionAvailable()
 {
     $this->fixture->add('test_extension_a', $this->tables['first'], 'categories');
     $this->fixture->add('test_extension_b', $this->tables['second'], 'categories');
     $definitions = $this->fixture->getDatabaseTableDefinition('test_extension_a');
     $matches = array();
     preg_match_all('#CREATE TABLE\\s*([^ (]+)\\s*\\(\\s*([^ )]+)\\s+int\\(11\\)[^)]+\\);#mis', $definitions, $matches);
     $this->assertEquals(1, count($matches[0]));
     $this->assertEquals($matches[1][0], $this->tables['first']);
     $this->assertEquals($matches[2][0], 'categories');
 }