From d9718fd054a301d3cb57aac10f6ba18a95eb0b12 Mon Sep 17 00:00:00 2001 From: Oliver Klee Date: Sun, 19 Nov 2023 22:36:32 +0100 Subject: [PATCH] [TASK] Split up the DB fixtures for the functional tests (#993) This makes the fixture more minimal and reduces cross-dependencies between tests. Also consistently avoid quotes for integer data in CSV DB fixtures. Fixes #988 --- .../Domain/Repository/Fixtures/Product/Tea.csv | 8 -------- .../Repository/Fixtures/Product/TeaOnPage.csv | 3 +++ .../Fixtures/Product/TeaWithAllScalarData.csv | 3 +++ .../Repository/Fixtures/Product/TeaWithImage.csv | 7 +++++++ .../Fixtures/Product/TeaWithoutOwner.csv | 2 +- .../Fixtures/Product/TwoTeasWithOwner.csv | 4 ++-- .../Fixtures/Product/TwoUnsortedTeas.csv | 4 ++++ .../Repository/Product/TeaRepositoryTest.php | 14 +++++++------- 8 files changed, 27 insertions(+), 18 deletions(-) delete mode 100644 Tests/Functional/Domain/Repository/Fixtures/Product/Tea.csv create mode 100644 Tests/Functional/Domain/Repository/Fixtures/Product/TeaOnPage.csv create mode 100644 Tests/Functional/Domain/Repository/Fixtures/Product/TeaWithAllScalarData.csv create mode 100644 Tests/Functional/Domain/Repository/Fixtures/Product/TeaWithImage.csv create mode 100644 Tests/Functional/Domain/Repository/Fixtures/Product/TwoUnsortedTeas.csv diff --git a/Tests/Functional/Domain/Repository/Fixtures/Product/Tea.csv b/Tests/Functional/Domain/Repository/Fixtures/Product/Tea.csv deleted file mode 100644 index e22d8a5..0000000 --- a/Tests/Functional/Domain/Repository/Fixtures/Product/Tea.csv +++ /dev/null @@ -1,8 +0,0 @@ -"tx_tea_domain_model_product_tea" -,"uid","pid","title","description","image","owner" -,"1","1","Earl Grey","Fresh and hot.",0,2 -,"2","1","Assam","Dark and strong.",0,0 -,"3","1","Gunpowder","Bitter and very green.",1,0 -"sys_file_reference" -,"uid","pid","uid_foreign","tablenames","fieldname" -,"1","1","3","tx_tea_domain_model_product_tea","image" diff --git a/Tests/Functional/Domain/Repository/Fixtures/Product/TeaOnPage.csv b/Tests/Functional/Domain/Repository/Fixtures/Product/TeaOnPage.csv new file mode 100644 index 0000000..e185ada --- /dev/null +++ b/Tests/Functional/Domain/Repository/Fixtures/Product/TeaOnPage.csv @@ -0,0 +1,3 @@ +"tx_tea_domain_model_product_tea" +,"uid","pid","title" +,1,1,"Earl Grey" diff --git a/Tests/Functional/Domain/Repository/Fixtures/Product/TeaWithAllScalarData.csv b/Tests/Functional/Domain/Repository/Fixtures/Product/TeaWithAllScalarData.csv new file mode 100644 index 0000000..4ee751b --- /dev/null +++ b/Tests/Functional/Domain/Repository/Fixtures/Product/TeaWithAllScalarData.csv @@ -0,0 +1,3 @@ +"tx_tea_domain_model_product_tea" +,"uid","pid","title","description","owner" +,1,1,"Earl Grey","Fresh and hot.",2 diff --git a/Tests/Functional/Domain/Repository/Fixtures/Product/TeaWithImage.csv b/Tests/Functional/Domain/Repository/Fixtures/Product/TeaWithImage.csv new file mode 100644 index 0000000..e141206 --- /dev/null +++ b/Tests/Functional/Domain/Repository/Fixtures/Product/TeaWithImage.csv @@ -0,0 +1,7 @@ +"tx_tea_domain_model_product_tea" +,"uid","pid","title","image", +,1,1,"Gunpowder",1 + +"sys_file_reference" +,"uid","uid_foreign","tablenames","fieldname" +,1,1,"tx_tea_domain_model_product_tea","image" diff --git a/Tests/Functional/Domain/Repository/Fixtures/Product/TeaWithoutOwner.csv b/Tests/Functional/Domain/Repository/Fixtures/Product/TeaWithoutOwner.csv index cf648db..7ed3154 100644 --- a/Tests/Functional/Domain/Repository/Fixtures/Product/TeaWithoutOwner.csv +++ b/Tests/Functional/Domain/Repository/Fixtures/Product/TeaWithoutOwner.csv @@ -1,3 +1,3 @@ "tx_tea_domain_model_product_tea" ,"uid","pid","title","owner" -,"1","1","Earl Grey",0 +,1,1,"Earl Grey",0 diff --git a/Tests/Functional/Domain/Repository/Fixtures/Product/TwoTeasWithOwner.csv b/Tests/Functional/Domain/Repository/Fixtures/Product/TwoTeasWithOwner.csv index f6bc8a3..4bd1252 100644 --- a/Tests/Functional/Domain/Repository/Fixtures/Product/TwoTeasWithOwner.csv +++ b/Tests/Functional/Domain/Repository/Fixtures/Product/TwoTeasWithOwner.csv @@ -1,4 +1,4 @@ "tx_tea_domain_model_product_tea" ,"uid","pid","title","owner" -,"1","1","Earl Grey",1 -,"2","1","Assam",1 +,1,1,"Earl Grey",1 +,2,1,"Assam",1 diff --git a/Tests/Functional/Domain/Repository/Fixtures/Product/TwoUnsortedTeas.csv b/Tests/Functional/Domain/Repository/Fixtures/Product/TwoUnsortedTeas.csv new file mode 100644 index 0000000..f0c574e --- /dev/null +++ b/Tests/Functional/Domain/Repository/Fixtures/Product/TwoUnsortedTeas.csv @@ -0,0 +1,4 @@ +"tx_tea_domain_model_product_tea" +,"uid","pid","title" +,1,1,"Earl Grey" +,2,1,"Assam" diff --git a/Tests/Functional/Domain/Repository/Product/TeaRepositoryTest.php b/Tests/Functional/Domain/Repository/Product/TeaRepositoryTest.php index 176539e..c19bbe9 100644 --- a/Tests/Functional/Domain/Repository/Product/TeaRepositoryTest.php +++ b/Tests/Functional/Domain/Repository/Product/TeaRepositoryTest.php @@ -46,11 +46,11 @@ final class TeaRepositoryTest extends FunctionalTestCase */ public function findAllWithRecordsFindsRecordsFromAllPages(): void { - $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/Tea.csv'); + $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/TeaOnPage.csv'); $result = $this->subject->findAll(); - self::assertGreaterThanOrEqual(1, \count($result)); + self::assertCount(1, $result); } /** @@ -58,7 +58,7 @@ final class TeaRepositoryTest extends FunctionalTestCase */ public function findAllSortsByTitleInAscendingOrder(): void { - $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/Tea.csv'); + $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/TwoUnsortedTeas.csv'); $result = $this->subject->findAll(); @@ -71,7 +71,7 @@ final class TeaRepositoryTest extends FunctionalTestCase */ public function findByUidForExistingRecordReturnsModel(): void { - $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/Tea.csv'); + $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/TeaWithAllScalarData.csv'); $model = $this->subject->findByUid(1); @@ -83,7 +83,7 @@ final class TeaRepositoryTest extends FunctionalTestCase */ public function findByUidForExistingRecordMapsAllScalarData(): void { - $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/Tea.csv'); + $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/TeaWithAllScalarData.csv'); $model = $this->subject->findByUid(1); self::assertInstanceOf(Tea::class, $model); @@ -98,9 +98,9 @@ final class TeaRepositoryTest extends FunctionalTestCase */ public function fillsImageRelation(): void { - $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/Tea.csv'); + $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/TeaWithImage.csv'); - $model = $this->subject->findByUid(3); + $model = $this->subject->findByUid(1); $image = $model->getImage(); self::assertInstanceOf(FileReference::class, $image);