From b03199f02425457d4723051f2f61ca2113262506 Mon Sep 17 00:00:00 2001 From: Valery Petrov Date: Thu, 4 Jun 2026 13:19:02 +0300 Subject: [PATCH] issues/27: add PriceList repository unit tests and integration stub --- .../Repository/SpecialistRepositoryTest.php | 18 ++++++ .../PriceListRepositoryFilterTest.php | 63 +++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 tests/Integration/Repository/SpecialistRepositoryTest.php create mode 100644 tests/Unit/Repository/PriceListRepositoryFilterTest.php diff --git a/tests/Integration/Repository/SpecialistRepositoryTest.php b/tests/Integration/Repository/SpecialistRepositoryTest.php new file mode 100644 index 0000000..a01c804 --- /dev/null +++ b/tests/Integration/Repository/SpecialistRepositoryTest.php @@ -0,0 +1,18 @@ +createMock(EntityManagerInterface::class); + $em->method('getClassMetadata') + ->with(PriceList::class) + ->willReturn(new ClassMetadata(PriceList::class)); + + $registry = $this->createMock(ManagerRegistry::class); + $registry->method('getManagerForClass') + ->with(PriceList::class) + ->willReturn($em); + + $this->repository = new PriceListRepository($registry); + } + + public function testFilialFilterInDql(): void + { + $qb = $this->repository->createFilteredQueryBuilder(['filial' => 12]); + self::assertStringContainsString('filial', $qb->getDQL()); + self::assertStringContainsString(':filial', $qb->getDQL()); + } + + public function testSearchFilterInDql(): void + { + $qb = $this->repository->createFilteredQueryBuilder(['search' => 'therapy']); + self::assertStringContainsString('schname', $qb->getDQL()); + self::assertStringContainsString(':search', $qb->getDQL()); + } + + public function testKodoperArrayFilterInDql(): void + { + $qb = $this->repository->createFilteredQueryBuilder(['kodoper' => ['A01', 'B02']]); + self::assertStringContainsString('kodoper', $qb->getDQL()); + self::assertStringContainsString(':codes', $qb->getDQL()); + } + + public function testIgnoresEmptyFilters(): void + { + $qb = $this->repository->createFilteredQueryBuilder(['search' => '', 'filial' => '']); + self::assertStringNotContainsString(':search', $qb->getDQL()); + self::assertStringNotContainsString(':filial', $qb->getDQL()); + } +}