/**
  * @throws \InvalidArgumentException
  * @return \DatabaseExporterImporter\Entity\Table[]
  */
 private function createTables()
 {
     $tables = [];
     foreach ($this->parsedData as $tableName => $tableData) {
         $table = new Table($tableName);
         if (false === is_array($tableData)) {
             throw new \InvalidArgumentException('The data structure is incorrect.');
         }
         if (false === array_key_exists('columns', $tableData)) {
             throw new \InvalidArgumentException("The data structure is incorrect: 'columns' key is absent.");
         }
         foreach ($this->columnsCreator->getColumns($tableData['columns']) as $column) {
             $table->addColumn($column);
         }
         foreach ($this->dataRowsCreator->getDataRows($tableData['data_rows']) as $dataRow) {
             $table->addDataRow($dataRow);
         }
         $tables[] = $table;
     }
     return $tables;
 }
 public function testMissingColumnName()
 {
     $subject = new JsonColumnsCreator();
     $this->setExpectedExceptionRegExp(\InvalidArgumentException::class, "/The column data structure is incorrect: 'name' index is missing/");
     $subject->getColumns([['abc']]);
 }