Gestion du changement de type de contrat + correction du calcule des RTT sur un contrat qui commence en milieu de semaine (#19)
Some checks failed
Auto Tag Develop / tag (push) Has been cancelled
Some checks failed
Auto Tag Develop / tag (push) Has been cancelled
| 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>
This commit was merged in pull request #19.
This commit is contained in:
62
tests/Service/Exercise/ExerciseYearResolverTest.php
Normal file
62
tests/Service/Exercise/ExerciseYearResolverTest.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?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')));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user