From 2c56205dfbdd989ad2f7239bbeb610ac513fea91 Mon Sep 17 00:00:00 2001 From: Oliver Klee Date: Fri, 17 Nov 2023 13:44:27 +0100 Subject: [PATCH] [TASK] Split up the DB fixtures for the functional tests 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 | 15 +++++++-------- 8 files changed, 27 insertions(+), 19 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 e22d8a544..000000000 --- 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 000000000..e185ada33 --- /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 000000000..4ee751bdb --- /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 000000000..e1412064d --- /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 cf648db70..7ed315428 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 f6bc8a3a6..4bd125221 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 000000000..f0c574e41 --- /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 5bf797628..c1f980945 100644 --- a/Tests/Functional/Domain/Repository/Product/TeaRepositoryTest.php +++ b/Tests/Functional/Domain/Repository/Product/TeaRepositoryTest.php @@ -46,11 +46,11 @@ public function findAllForNoRecordsReturnsEmptyContainer(): void */ 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 @@ public function findAllWithRecordsFindsRecordsFromAllPages(): void */ 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 @@ public function findAllSortsByTitleInAscendingOrder(): void */ public function findByUidForExistingRecordReturnsModel(): void { - $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/Tea.csv'); + $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/TeaWithAllScalarData.csv'); $uid = 1; $model = $this->subject->findByUid($uid); @@ -84,7 +84,7 @@ public function findByUidForExistingRecordReturnsModel(): void */ public function findByUidForExistingRecordMapsAllScalarData(): void { - $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/Tea.csv'); + $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/TeaWithAllScalarData.csv'); $uid = 1; $model = $this->subject->findByUid($uid); @@ -100,10 +100,9 @@ public function findByUidForExistingRecordMapsAllScalarData(): void */ public function fillsImageRelation(): void { - $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/Tea.csv'); + $this->importCSVDataSet(__DIR__ . '/../Fixtures/Product/TeaWithImage.csv'); - $uid = 3; - $model = $this->subject->findByUid($uid); + $model = $this->subject->findByUid(1); $image = $model->getImage(); self::assertInstanceOf(FileReference::class, $image);