/**
  * Create custom entity tables
  *
  * @param Schema $schema
  *
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  */
 protected function createTestCustomEntityTables(Schema $schema)
 {
     $table1 = $this->extendExtension->createCustomEntityTable($schema, 'TestEntity1');
     $table1->addColumn('name', 'string', ['length' => 255, OroOptions::KEY => ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]]);
     $table2 = $this->extendExtension->createCustomEntityTable($schema, 'TestEntity2');
     $table2->addColumn('name', 'string', ['length' => 255, OroOptions::KEY => ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]]);
     // unidirectional many-to-one
     $this->extendExtension->addManyToOneRelation($schema, $table1, 'uniM2OTarget', $table2, 'name', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]);
     // bidirectional many-to-one
     $this->extendExtension->addManyToOneRelation($schema, $table1, 'biM2OTarget', $table2, 'name', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]);
     $this->extendExtension->addManyToOneInverseRelation($schema, $table1, 'biM2OTarget', $table2, 'biM2OOwners', ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]);
     // unidirectional many-to-many
     $this->extendExtension->addManyToManyRelation($schema, $table1, 'uniM2MTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]);
     // unidirectional many-to-many without default
     $this->extendExtension->addManyToManyRelation($schema, $table1, 'uniM2MNDTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM, 'without_default' => true]]);
     // bidirectional many-to-many
     $this->extendExtension->addManyToManyRelation($schema, $table1, 'biM2MTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]);
     $this->extendExtension->addManyToManyInverseRelation($schema, $table1, 'biM2MTargets', $table2, 'biM2MOwners', ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]);
     // bidirectional many-to-many without default
     $this->extendExtension->addManyToManyRelation($schema, $table1, 'biM2MNDTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM, 'without_default' => true]]);
     $this->extendExtension->addManyToManyInverseRelation($schema, $table1, 'biM2MNDTargets', $table2, 'biM2MNDOwners', ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]);
     // unidirectional one-to-many
     $this->extendExtension->addOneToManyRelation($schema, $table1, 'uniO2MTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]);
     // unidirectional one-to-many without default
     $this->extendExtension->addOneToManyRelation($schema, $table1, 'uniO2MNDTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM, 'without_default' => true]]);
     // bidirectional one-to-many
     $this->extendExtension->addOneToManyRelation($schema, $table1, 'biO2MTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]);
     $this->extendExtension->addOneToManyInverseRelation($schema, $table1, 'biO2MTargets', $table2, 'biO2MOwner', 'name', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]);
     // bidirectional one-to-many without default
     $this->extendExtension->addOneToManyRelation($schema, $table1, 'biO2MNDTargets', $table2, ['name'], ['name'], ['name'], ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM, 'without_default' => true]]);
     $this->extendExtension->addOneToManyInverseRelation($schema, $table1, 'biO2MNDTargets', $table2, 'biO2MNDOwner', 'name', ['extend' => ['owner' => ExtendScope::OWNER_CUSTOM]]);
 }