From 675c5cb9ae959f8b814a96078ab1765a74d61c89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20L=C3=BCcke?= Date: Fri, 2 Apr 2021 21:16:57 +0200 Subject: [PATCH] =?UTF-8?q?Die=20Unterschiede=20zwischen=20den=20einzelnen?= =?UTF-8?q?=20Perioden-Repository=20ist=20gr=C3=B6=C3=9Fer=20als=20gedacht?= =?UTF-8?q?.=20Deshalb=20hat=20jede=20Periode=20seine=20eigene=20Klasse=20?= =?UTF-8?q?bekommen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WorkingHoursViewRepositoryTest.php | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/api/tests/unit/Repositories/WorkingHoursViewRepositoryTest.php b/api/tests/unit/Repositories/WorkingHoursViewRepositoryTest.php index 7ccbc67..12d71b2 100644 --- a/api/tests/unit/Repositories/WorkingHoursViewRepositoryTest.php +++ b/api/tests/unit/Repositories/WorkingHoursViewRepositoryTest.php @@ -4,10 +4,11 @@ namespace TorstenHettstedt\TimekeepingApi\Tests\Unit\Repositories; use Codeception\Test\Unit; use PDO; -use TorstenHettstedt\TimekeepingApi\Models\PeriodDesignationEnum; use TorstenHettstedt\TimekeepingApi\Models\WorkingHoursView; use TorstenHettstedt\TimekeepingApi\Repositories\RepositoryRecordNotFoundException; -use TorstenHettstedt\TimekeepingApi\Repositories\WorkingHoursViewRepository; +use TorstenHettstedt\TimekeepingApi\Repositories\WorkingHoursWeeklyViewRepository; +use TorstenHettstedt\TimekeepingApi\Repositories\WorkingHoursMonthlyViewRepository; +use TorstenHettstedt\TimekeepingApi\Repositories\WorkingHoursYearlyViewRepository; class WorkingHoursViewRepositoryTest extends Unit { @@ -31,9 +32,9 @@ class WorkingHoursViewRepositoryTest extends Unit public function listObjectProvider(): array { return [ - [PeriodDesignationEnum::YEARLY(), 1], - [PeriodDesignationEnum::MONTHLY(), 3], - [PeriodDesignationEnum::WEEKLY(), 13], + [WorkingHoursYearlyViewRepository::class, 1], + [WorkingHoursMonthlyViewRepository::class, 3], + [WorkingHoursWeeklyViewRepository::class, 13], ]; } @@ -43,9 +44,9 @@ class WorkingHoursViewRepositoryTest extends Unit public function existingObjectProvider(): array { return [ - [PeriodDesignationEnum::YEARLY(), '2020', 61], - [PeriodDesignationEnum::MONTHLY(), '2020-02', 20], - [PeriodDesignationEnum::WEEKLY(), '2020#3', 5], + [WorkingHoursYearlyViewRepository::class, '2020', 61], + [WorkingHoursMonthlyViewRepository::class, '2020 February', 20], + [WorkingHoursWeeklyViewRepository::class, '2020#03', 5], ]; } @@ -55,54 +56,54 @@ class WorkingHoursViewRepositoryTest extends Unit public function notExistingObjectProvider(): array { return [ - [PeriodDesignationEnum::YEARLY(), '2022',], - [PeriodDesignationEnum::MONTHLY(), '2020-05',], - [PeriodDesignationEnum::WEEKLY(), '2020#30',], + [WorkingHoursYearlyViewRepository::class, '2022',], + [WorkingHoursMonthlyViewRepository::class, '2020 May',], + [WorkingHoursWeeklyViewRepository::class, '2020#30',], ]; } /** - * @param PeriodDesignationEnum $period - * @param int $count_records + * @param string $period_class + * @param int $count_records * * @dataProvider listObjectProvider */ - public function testFindAll(PeriodDesignationEnum $period, int $count_records): void + public function testFindAll(string $period_class, int $count_records): void { - $repository = new WorkingHoursViewRepository($this->pdoObject, $period); + $repository = new $period_class($this->pdoObject); $models = $repository->findAll(); $this->assertIsArray($models); $this->assertContainsOnly(WorkingHoursView::class, $models); - $this->assertCount(self::RECORDS_COUNT, $models); + $this->assertCount($count_records, $models); } /** * * @dataProvider existingObjectProvider * - * @param PeriodDesignationEnum $period - * @param string $search + * @param string $period_class + * @param string $search + * @param int $workingDays */ - public function testExistingFindByKey(PeriodDesignationEnum $period, string $search, int $workingDays): void + public function testExistingFindByKey(string $period_class, string $search, int $workingDays): void { - $repository = new WorkingHoursViewRepository($this->pdoObject, $period); - $model = $repository->findByKey(self::EXISTING_DATE); + $repository = new $period_class($this->pdoObject); + $model = $repository->findByKey($search); $this->assertInstanceOf(WorkingHoursView::class, $model); $this->assertEquals($workingDays, $model->getWorkingDays()); } /** - * @param PeriodDesignationEnum $period - * @param string $search + * @param string $period_class + * @param string $search * * @dataProvider notExistingObjectProvider * - * @throws RepositoryRecordNotFoundException */ - public function testNotExistingFindByKey(PeriodDesignationEnum $period, string $search): void + public function testNotExistingFindByKey(string $period_class, string $search): void { - $repository = new WorkingHoursViewRepository($this->pdoObject, $period); + $repository = new $period_class($this->pdoObject); $this->expectException(RepositoryRecordNotFoundException::class); - $repository->findByKey(self::NEW_DATE); + $repository->findByKey($search); } }