$state */ #[DataProvider('fromArrayProvider')] public function testFromArray( int $id, string $username, ExportType $exportType, string $name, string $data, array $state, ): void { $template = Template::fromArray($state); self::assertSame($id, $template->getId()); self::assertSame($username, $template->getUsername()); self::assertSame($exportType, $template->getExportType()); self::assertSame($name, $template->getName()); self::assertSame($data, $template->getData()); } /** @return iterable}> */ public static function fromArrayProvider(): iterable { yield [0, '', ExportType::Server, '', '', ['username' => '', 'data' => '']]; yield [0, '', ExportType::Server, '', '', ['username' => '', 'data' => '', 'exportType' => 'server']]; yield [0, '', ExportType::Server, '', '', ['username' => '', 'data' => '', 'exportType' => 'invalid']]; yield [0, '', ExportType::Database, '', '', ['username' => '', 'data' => '', 'exportType' => 'database']]; yield [0, '', ExportType::Table, '', '', ['username' => '', 'data' => '', 'exportType' => 'table']]; yield [0, '', ExportType::Raw, '', '', ['username' => '', 'data' => '', 'exportType' => 'raw']]; yield [ 1, 'test_user', ExportType::Database, 'Template name', '{"template":"data"}', [ 'id' => 1, 'username' => 'test_user', 'exportType' => 'database', 'name' => 'Template name', 'data' => '{"template":"data"}', ], ]; } }