mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-29 18:14:59 +00:00
Ajout d'une liste de tickets
This commit is contained in:
@@ -81,6 +81,7 @@ class TicketNormalizerTest extends KernelTestCase
|
||||
$t,
|
||||
[
|
||||
'type' => 'ticket_ticket',
|
||||
'type_extended' => 'ticket_ticket:extended',
|
||||
'createdAt' => $t->getCreatedAt()?->getTimestamp(),
|
||||
'createdBy' => ['user'],
|
||||
'id' => null,
|
||||
@@ -131,6 +132,7 @@ class TicketNormalizerTest extends KernelTestCase
|
||||
$ticket,
|
||||
[
|
||||
'type' => 'ticket_ticket',
|
||||
'type_extended' => 'ticket_ticket:extended',
|
||||
'createdAt' => $ticket->getCreatedAt()?->getTimestamp(),
|
||||
'createdBy' => ['user'],
|
||||
'id' => null,
|
||||
@@ -169,6 +171,7 @@ class TicketNormalizerTest extends KernelTestCase
|
||||
$ticket,
|
||||
[
|
||||
'type' => 'ticket_ticket',
|
||||
'type_extended' => 'ticket_ticket:extended',
|
||||
'createdAt' => $ticket->getCreatedAt()?->getTimestamp(),
|
||||
'createdBy' => null,
|
||||
'id' => null,
|
||||
@@ -189,6 +192,86 @@ class TicketNormalizerTest extends KernelTestCase
|
||||
];
|
||||
}
|
||||
|
||||
public function testNormalizeReadSimple(): void
|
||||
{
|
||||
// Create a ticket with some data
|
||||
$ticket = new Ticket();
|
||||
$ticket->setExternalRef('TEST-123');
|
||||
|
||||
// Add state history
|
||||
new StateHistory(StateEnum::OPEN, $ticket, new \DateTimeImmutable('2024-06-16T00:00:00Z'));
|
||||
|
||||
// Add emergency status
|
||||
new EmergencyStatusHistory(EmergencyStatusEnum::YES, $ticket, new \DateTimeImmutable('2024-06-16T00:00:10Z'));
|
||||
|
||||
// Add person
|
||||
$personHistory = new PersonHistory(new Person(), $ticket, new \DateTimeImmutable('2024-04-01T12:00:00'));
|
||||
|
||||
// Add motive
|
||||
$motiveHistory = new MotiveHistory(new Motive(), $ticket, new \DateTimeImmutable('2024-04-01T12:02:00'));
|
||||
|
||||
// Add comment
|
||||
$comment = new Comment('Test comment', $ticket);
|
||||
$comment->setCreatedAt(new \DateTimeImmutable('2024-04-01T12:04:00'));
|
||||
$comment->setCreatedBy(new User());
|
||||
|
||||
// Add addressee
|
||||
new AddresseeHistory(new User(), new \DateTimeImmutable('2024-04-01T12:05:00'), $ticket);
|
||||
|
||||
// Add caller
|
||||
new CallerHistory(new Person(), $ticket, new \DateTimeImmutable('2024-04-01T12:00:00'));
|
||||
|
||||
// Set created/updated metadata
|
||||
$ticket->setCreatedAt(new \DateTimeImmutable('2024-06-16T00:00:00Z'));
|
||||
$ticket->setCreatedBy(new User());
|
||||
$ticket->setUpdatedAt(new \DateTimeImmutable('2024-06-16T00:00:00Z'));
|
||||
$ticket->setUpdatedBy(new User());
|
||||
|
||||
// Normalize with read:simple group
|
||||
$actual = $this->buildNormalizer()->normalize($ticket, 'json', ['groups' => 'read:simple']);
|
||||
|
||||
// Expected keys in read:simple normalization
|
||||
$expectedKeys = [
|
||||
'type',
|
||||
'type_extended',
|
||||
'id',
|
||||
'externalRef',
|
||||
'currentPersons',
|
||||
'currentAddressees',
|
||||
'currentInputs',
|
||||
'currentMotive',
|
||||
'currentState',
|
||||
'emergency',
|
||||
'caller',
|
||||
];
|
||||
|
||||
// Keys that should not be present in read:simple normalization
|
||||
$unexpectedKeys = [
|
||||
'history',
|
||||
'createdAt',
|
||||
'updatedAt',
|
||||
'updatedBy',
|
||||
'createdBy',
|
||||
];
|
||||
|
||||
// Assert that all expected keys are present
|
||||
foreach ($expectedKeys as $key) {
|
||||
self::assertArrayHasKey($key, $actual, "Expected key '{$key}' is missing");
|
||||
}
|
||||
|
||||
// Assert that none of the unexpected keys are present
|
||||
foreach ($unexpectedKeys as $key) {
|
||||
self::assertArrayNotHasKey($key, $actual, "Unexpected key '{$key}' is present");
|
||||
}
|
||||
|
||||
// Assert specific values
|
||||
self::assertEquals('ticket_ticket', $actual['type']);
|
||||
self::assertEquals('ticket_ticket:simple', $actual['type_extended']);
|
||||
self::assertEquals('TEST-123', $actual['externalRef']);
|
||||
self::assertEquals('open', $actual['currentState']);
|
||||
self::assertEquals('yes', $actual['emergency']);
|
||||
}
|
||||
|
||||
private function buildNormalizer(): TicketNormalizer
|
||||
{
|
||||
$normalizer = $this->prophesize(NormalizerInterface::class);
|
||||
|
Reference in New Issue
Block a user