Add missing OrderController coverage: downloadTicket, invoice success, zero qty
- downloadTicket: order not found, ticket not found, success with mock PDF - invoice: success with mock PDF (paid order) - create: zero qty items filtered out Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -447,4 +447,87 @@ class OrderControllerTest extends WebTestCase
|
||||
$client->request('GET', '/ma-commande/'.$order->getOrderNumber().'/'.$order->getAccessToken().'/facture');
|
||||
self::assertResponseStatusCodeSame(404);
|
||||
}
|
||||
|
||||
public function testInvoiceSuccess(): void
|
||||
{
|
||||
$client = static::createClient();
|
||||
$em = static::getContainer()->get(EntityManagerInterface::class);
|
||||
$user = $this->createOrga($em);
|
||||
[$event, $billet] = $this->createEventWithBillet($em, $user);
|
||||
$order = $this->createOrder($em, $event, $billet);
|
||||
$order->setStatus(BilletBuyer::STATUS_PAID);
|
||||
$em->flush();
|
||||
|
||||
$invoiceService = $this->createMock(\App\Service\InvoiceService::class);
|
||||
$invoiceService->expects(self::once())->method('generatePdf')->willReturn('%PDF-1.4 fake');
|
||||
static::getContainer()->set(\App\Service\InvoiceService::class, $invoiceService);
|
||||
|
||||
$client->request('GET', '/ma-commande/'.$order->getOrderNumber().'/'.$order->getAccessToken().'/facture');
|
||||
self::assertResponseIsSuccessful();
|
||||
self::assertResponseHeaderSame('Content-Type', 'application/pdf');
|
||||
}
|
||||
|
||||
// === DOWNLOAD TICKET ===
|
||||
|
||||
public function testDownloadTicketNotFoundOrder(): void
|
||||
{
|
||||
$client = static::createClient();
|
||||
$client->request('GET', '/ma-commande/2026-03-21-999/badtoken/billet/ETICKET-AAAA-BBBB-CCCC');
|
||||
self::assertResponseStatusCodeSame(404);
|
||||
}
|
||||
|
||||
public function testDownloadTicketNotFoundTicket(): void
|
||||
{
|
||||
$client = static::createClient();
|
||||
$em = static::getContainer()->get(EntityManagerInterface::class);
|
||||
$user = $this->createOrga($em);
|
||||
[$event, $billet] = $this->createEventWithBillet($em, $user);
|
||||
$order = $this->createOrder($em, $event, $billet);
|
||||
|
||||
$client->request('GET', '/ma-commande/'.$order->getOrderNumber().'/'.$order->getAccessToken().'/billet/ETICKET-ZZZZ-ZZZZ-ZZZZ');
|
||||
self::assertResponseStatusCodeSame(404);
|
||||
}
|
||||
|
||||
public function testDownloadTicketSuccess(): void
|
||||
{
|
||||
$client = static::createClient();
|
||||
$em = static::getContainer()->get(EntityManagerInterface::class);
|
||||
$user = $this->createOrga($em);
|
||||
[$event, $billet] = $this->createEventWithBillet($em, $user);
|
||||
$order = $this->createOrder($em, $event, $billet);
|
||||
|
||||
$ticket = new \App\Entity\BilletOrder();
|
||||
$ticket->setBilletBuyer($order);
|
||||
$ticket->setBillet($billet);
|
||||
$ticket->setBilletName('Entree');
|
||||
$ticket->setUnitPriceHT(1500);
|
||||
$em->persist($ticket);
|
||||
$em->flush();
|
||||
|
||||
$billetOrderService = $this->createMock(\App\Service\BilletOrderService::class);
|
||||
$billetOrderService->expects(self::once())->method('generatePdf')->willReturn('%PDF-1.4 fake');
|
||||
static::getContainer()->set(\App\Service\BilletOrderService::class, $billetOrderService);
|
||||
|
||||
$client->request('GET', '/ma-commande/'.$order->getOrderNumber().'/'.$order->getAccessToken().'/billet/'.$ticket->getReference());
|
||||
self::assertResponseIsSuccessful();
|
||||
self::assertResponseHeaderSame('Content-Type', 'application/pdf');
|
||||
}
|
||||
|
||||
// === CREATE with qty <= 0 ===
|
||||
|
||||
public function testCreateOrderZeroQty(): void
|
||||
{
|
||||
$client = static::createClient();
|
||||
$em = static::getContainer()->get(EntityManagerInterface::class);
|
||||
$user = $this->createOrga($em);
|
||||
[$event, $billet] = $this->createEventWithBillet($em, $user);
|
||||
|
||||
$client->request('POST', '/evenement/'.$event->getId().'/commander', [], [], ['CONTENT_TYPE' => 'application/json'], json_encode([
|
||||
['billetId' => $billet->getId(), 'qty' => 0],
|
||||
]));
|
||||
|
||||
self::assertResponseIsSuccessful();
|
||||
$data = json_decode($client->getResponse()->getContent(), true);
|
||||
self::assertArrayHasKey('redirect', $data);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user