feat : ajout d'une date d'entrée pour les employés
Some checks failed
Auto Tag Develop / tag (push) Has been cancelled
Some checks failed
Auto Tag Develop / tag (push) Has been cancelled
This commit is contained in:
@@ -6,6 +6,7 @@ namespace App\Tests\State;
|
||||
|
||||
use ApiPlatform\Metadata\Delete;
|
||||
use ApiPlatform\Metadata\Patch;
|
||||
use ApiPlatform\Metadata\Post;
|
||||
use ApiPlatform\State\ProcessorInterface;
|
||||
use App\Entity\Contract;
|
||||
use App\Entity\Employee;
|
||||
@@ -194,6 +195,54 @@ final class EmployeeWriteProcessorTest extends TestCase
|
||||
self::assertSame($employee, $result);
|
||||
}
|
||||
|
||||
public function testSetsEntryDateOnNewEmployee(): void
|
||||
{
|
||||
$employee = new Employee();
|
||||
$employee->setFirstName('Jane');
|
||||
$employee->setLastName('Doe');
|
||||
$employee->setContractStartDate('2026-04-01');
|
||||
$employee->setContractNature('CDI');
|
||||
|
||||
$contract = new Contract()
|
||||
->setName('35h')
|
||||
->setTrackingMode(Contract::TRACKING_TIME)
|
||||
->setWeeklyHours(35)
|
||||
;
|
||||
$employee->setContract($contract);
|
||||
|
||||
$persistProcessor = $this->createMock(ProcessorInterface::class);
|
||||
$removeProcessor = $this->createStub(ProcessorInterface::class);
|
||||
$entityManager = $this->createStub(EntityManagerInterface::class);
|
||||
$periodRepository = $this->createStub(EmployeeContractPeriodReadRepositoryInterface::class);
|
||||
$changeRequestFactory = new EmployeeContractChangeRequestFactory();
|
||||
$periodManager = $this->createMock(EmployeeContractPeriodManagerInterface::class);
|
||||
|
||||
$persistProcessor
|
||||
->expects(self::once())
|
||||
->method('process')
|
||||
->willReturn($employee)
|
||||
;
|
||||
|
||||
$periodManager
|
||||
->expects(self::once())
|
||||
->method('ensureContractPeriodExists')
|
||||
;
|
||||
|
||||
$processor = new EmployeeWriteProcessor(
|
||||
$persistProcessor,
|
||||
$removeProcessor,
|
||||
$entityManager,
|
||||
$periodRepository,
|
||||
$changeRequestFactory,
|
||||
$periodManager
|
||||
);
|
||||
|
||||
$processor->process($employee, new Post());
|
||||
|
||||
self::assertNotNull($employee->getEntryDate());
|
||||
self::assertSame('2026-04-01', $employee->getEntryDate()->format('Y-m-d'));
|
||||
}
|
||||
|
||||
public function testDeleteOperationDelegatesToRemoveProcessor(): void
|
||||
{
|
||||
$employee = $this->buildEmployeeWithId(45);
|
||||
|
||||
Reference in New Issue
Block a user