Cover setIsInvitation loop in createAccreditation test
Mock generateOrderTickets to create a real BilletOrder in DB so the foreach loop setting isInvitation=true is exercised and verified. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2567,7 +2567,18 @@ class AccountControllerTest extends WebTestCase
|
|||||||
$category = $this->createCategory($em, $event);
|
$category = $this->createCategory($em, $event);
|
||||||
|
|
||||||
$billetOrderService = $this->createMock(\App\Service\BilletOrderService::class);
|
$billetOrderService = $this->createMock(\App\Service\BilletOrderService::class);
|
||||||
$billetOrderService->expects(self::once())->method('generateOrderTickets');
|
$billetOrderService->expects(self::once())->method('generateOrderTickets')->willReturnCallback(function (\App\Entity\BilletBuyer $order) use ($em) {
|
||||||
|
$billet = $em->getRepository(\App\Entity\Billet::class)->findOneBy(['category' => $order->getItems()->first()->getBillet()->getCategory()]);
|
||||||
|
$ticket = new \App\Entity\BilletOrder();
|
||||||
|
$ticket->setBilletBuyer($order);
|
||||||
|
$ticket->setBillet($billet);
|
||||||
|
$ticket->setBilletName($billet->getName());
|
||||||
|
$ticket->setUnitPriceHT(0);
|
||||||
|
$em->persist($ticket);
|
||||||
|
$order->setStatus(\App\Entity\BilletBuyer::STATUS_PAID);
|
||||||
|
$order->setPaidAt(new \DateTimeImmutable());
|
||||||
|
$em->flush();
|
||||||
|
});
|
||||||
$billetOrderService->expects(self::once())->method('generateAndSendTickets');
|
$billetOrderService->expects(self::once())->method('generateAndSendTickets');
|
||||||
static::getContainer()->set(\App\Service\BilletOrderService::class, $billetOrderService);
|
static::getContainer()->set(\App\Service\BilletOrderService::class, $billetOrderService);
|
||||||
|
|
||||||
@@ -2580,6 +2591,10 @@ class AccountControllerTest extends WebTestCase
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
self::assertResponseRedirects('/mon-compte/evenement/'.$event->getId().'/modifier?tab=invitations');
|
self::assertResponseRedirects('/mon-compte/evenement/'.$event->getId().'/modifier?tab=invitations');
|
||||||
|
|
||||||
|
$tickets = $em->getRepository(\App\Entity\BilletOrder::class)->findBy(['billetBuyer' => $em->getRepository(\App\Entity\BilletBuyer::class)->findOneBy(['email' => 'alice@test.fr'])]);
|
||||||
|
self::assertNotEmpty($tickets);
|
||||||
|
self::assertTrue($tickets[0]->isInvitation());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testCreateAccreditationExposantSuccess(): void
|
public function testCreateAccreditationExposantSuccess(): void
|
||||||
|
|||||||
Reference in New Issue
Block a user