Files
SIRH/tests/Service/Exercise/ExerciseYearResolverTest.php
tristan abdaf809f8
Some checks failed
Auto Tag Develop / tag (push) Has been cancelled
Gestion du changement de type de contrat + correction du calcule des RTT sur un contrat qui commence en milieu de semaine (#19)
| Numéro du ticket | Titre du ticket |
|------------------|-----------------|
|                  |                 |

## Description de la PR

## Modification du .env

## Check list

- [x] Pas de régression
- [x] TU/TI/TF rédigée
- [x] TU/TI/TF OK
- [x] CHANGELOG modifié

Reviewed-on: #19
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
2026-05-22 06:42:33 +00:00

63 lines
2.0 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Tests\Service\Exercise;
use App\Service\Exercise\ExerciseYearResolver;
use DateTimeImmutable;
use PHPUnit\Framework\TestCase;
/**
* @internal
*/
final class ExerciseYearResolverTest extends TestCase
{
public function testNonForfaitJuneMapsToNextYear(): void
{
$resolver = new ExerciseYearResolver();
self::assertSame(2026, $resolver->forDate(new DateTimeImmutable('2025-06-01')));
self::assertSame(2026, $resolver->forDate(new DateTimeImmutable('2025-06-30')));
}
public function testNonForfaitMayMapsToSameYear(): void
{
$resolver = new ExerciseYearResolver();
self::assertSame(2025, $resolver->forDate(new DateTimeImmutable('2025-05-01')));
self::assertSame(2025, $resolver->forDate(new DateTimeImmutable('2025-05-31')));
}
public function testNonForfaitDecemberMapsToNextYear(): void
{
$resolver = new ExerciseYearResolver();
self::assertSame(2026, $resolver->forDate(new DateTimeImmutable('2025-12-31')));
}
public function testNonForfaitJanuaryMapsToSameYear(): void
{
$resolver = new ExerciseYearResolver();
self::assertSame(2025, $resolver->forDate(new DateTimeImmutable('2025-01-15')));
}
public function testForfaitReturnsCalendarYearRegardlessOfMonth(): void
{
$resolver = new ExerciseYearResolver();
self::assertSame(2025, $resolver->forDate(new DateTimeImmutable('2025-01-15'), true));
self::assertSame(2025, $resolver->forDate(new DateTimeImmutable('2025-06-01'), true));
self::assertSame(2025, $resolver->forDate(new DateTimeImmutable('2025-12-31'), true));
}
public function testForfaitFlagDefaultsToFalse(): void
{
$resolver = new ExerciseYearResolver();
// June without explicit flag must follow non-forfait rule (year + 1).
self::assertSame(2026, $resolver->forDate(new DateTimeImmutable('2025-06-01')));
}
}