/** * @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']]); }