public function test()
 {
     $subject = new ForeignKey();
     $subject->setTableName('table1')->setColumnName('column1');
     static::assertSame('table1', $subject->getTableName());
     static::assertSame('column1', $subject->getColumnName());
 }
 /**
  * @param array $columnData
  * @return $this
  */
 private function addForeignKey(array $columnData)
 {
     if (true === array_key_exists('foreign_key', $columnData)) {
         $foreignKey = new ForeignKey();
         $foreignKey->setTableName($columnData['foreign_key']['table_name'])->setColumnName($columnData['foreign_key']['column_name']);
         $this->column->setForeignKey($foreignKey);
     }
     return $this;
 }
 /**
  * @inheritdoc
  */
 protected function setForeignKeys()
 {
     $statement = $this->connection->prepare('SELECT COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME ' . 'FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = :table AND REFERENCED_COLUMN_NAME IS NOT NULL');
     $statement->setFetchMode(\PDO::FETCH_ASSOC);
     $statement->execute([':table' => $this->table->getName()]);
     foreach ($statement as $item) {
         foreach ($this->columns as $column) {
             if ($column->getName() === $item['COLUMN_NAME']) {
                 $foreignKey = new ForeignKey();
                 $column->setForeignKey($foreignKey->setTableName($item['REFERENCED_TABLE_NAME'])->setColumnName($item['REFERENCED_COLUMN_NAME']));
             }
         }
     }
     return $this;
 }
 public function test()
 {
     $foreignKey = new ForeignKey();
     $foreignKey->setTableName('table1')->setColumnName('column1');
     $subject = new Column('name');
     $subject->setForeignKey($foreignKey)->setTable(new Table('test_table'));
     static::assertSame('name', $subject->getName());
     static::assertInstanceOf(ForeignKey::class, $subject->getForeignKey());
     $subject->removeForeignKey();
     static::assertSame(null, $subject->getForeignKey());
     static::assertFalse($subject->isAutoIncrement());
     $subject->setAutoIncrement(true);
     static::assertTrue($subject->isAutoIncrement());
     static::assertSame('test_table', $subject->getTable()->getName());
 }