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()); + } +}