public function testSuccess() { $subject = new JsonDataRowsCreator(); $result = $subject->getDataRows([['id' => 1, 'name' => 'Maker 1'], ['id' => 2, 'name' => 'Maker 2']]); static::assertTrue(is_array($result)); static::assertCount(2, $result); static::assertInstanceOf(DataRow::class, $result[0]); $dataColumns = $result[0]->getDataColumns(); static::assertTrue(is_array($dataColumns)); static::assertCount(2, $dataColumns); static::assertSame('id', $dataColumns[0]->getName()); static::assertSame(1, $dataColumns[0]->getValue()); static::assertSame('name', $dataColumns[1]->getName()); static::assertSame('Maker 1', $dataColumns[1]->getValue()); }
/** * @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; }