From f0f757cf7583c44ee66da55d6e2c99ab5a5bf277 Mon Sep 17 00:00:00 2001 From: Simone Gasparini Date: Thu, 25 Apr 2019 19:33:06 +0200 Subject: [PATCH] allow dynamic export types (#703) --- src/Controller/ExportController.php | 2 +- src/Repository/Query/ExportQuery.php | 13 +------------ tests/Controller/ExportControllerTest.php | 2 ++ tests/Repository/Query/ExportQueryTest.php | 7 ++----- 4 files changed, 6 insertions(+), 18 deletions(-) diff --git a/src/Controller/ExportController.php b/src/Controller/ExportController.php index 9af0cfeb..bff64158 100644 --- a/src/Controller/ExportController.php +++ b/src/Controller/ExportController.php @@ -128,7 +128,7 @@ class ExportController extends AbstractController // this code should not be reached, as the query already filters invalid values // when trying to call setType() with an unknown value if (null === $renderer) { - throw $this->createNotFoundException('Invalid export renderer'); + throw $this->createNotFoundException('Unknown export renderer'); } $entries = $this->getEntries($query); diff --git a/src/Repository/Query/ExportQuery.php b/src/Repository/Query/ExportQuery.php index dfb7a9ec..47dcb557 100644 --- a/src/Repository/Query/ExportQuery.php +++ b/src/Repository/Query/ExportQuery.php @@ -9,17 +9,8 @@ namespace App\Repository\Query; -/** - * Can be used for export queries. - */ class ExportQuery extends TimesheetQuery { - public const TYPE_HTML = 'html'; - public const TYPE_CSV = 'csv'; - public const TYPE_PDF = 'pdf'; - public const TYPE_XLSX = 'xlsx'; - public const TYPE_ODS = 'ods'; - /** * @var string */ @@ -39,9 +30,7 @@ class ExportQuery extends TimesheetQuery */ public function setType(string $type) { - if (in_array($type, [self::TYPE_PDF, self::TYPE_CSV, self::TYPE_HTML, self::TYPE_XLSX, self::TYPE_ODS])) { - $this->type = $type; - } + $this->type = $type; return $this; } diff --git a/tests/Controller/ExportControllerTest.php b/tests/Controller/ExportControllerTest.php index bed6630a..54cc20dd 100644 --- a/tests/Controller/ExportControllerTest.php +++ b/tests/Controller/ExportControllerTest.php @@ -73,6 +73,7 @@ class ExportControllerTest extends ControllerBaseTest $response = $client->getResponse(); $this->assertFalse($response->isSuccessful()); $this->assertEquals(404, $response->getStatusCode()); + $this->assertContains('Missing export renderer', $response->getContent()); } public function testExportActionWithInvalidRenderer() @@ -91,6 +92,7 @@ class ExportControllerTest extends ControllerBaseTest $response = $client->getResponse(); $this->assertFalse($response->isSuccessful()); $this->assertEquals(404, $response->getStatusCode()); + $this->assertContains('Unknown export renderer', $response->getContent()); } public function testExportAction() diff --git a/tests/Repository/Query/ExportQueryTest.php b/tests/Repository/Query/ExportQueryTest.php index e531ddca..c8471ef5 100644 --- a/tests/Repository/Query/ExportQueryTest.php +++ b/tests/Repository/Query/ExportQueryTest.php @@ -118,14 +118,11 @@ class ExportQueryTest extends BaseQueryTest { $this->assertNull($sut->getType()); - $allowed = ['html', 'csv', 'pdf', 'xlsx', 'ods']; + $exportTypes = ['html', 'csv', 'pdf', 'xlsx', 'ods']; - foreach ($allowed as $type) { + foreach ($exportTypes as $type) { $sut->setType($type); $this->assertEquals($type, $sut->getType()); } - - $sut->setType('foo'); - $this->assertEquals('ods', $sut->getType()); } }