ReponseStandard = new stdClass(); $soapResponse->ReponseStandard->Resultat = true; $soapResponse->ReponseSpecifique = new stdClass(); $soapResponse->ReponseSpecifique->AttenteValidationBDNi = true; $dto = new CreateEntreeResponseMapper(new StandardResponseMapper())->map($soapResponse); self::assertInstanceOf(CreateEntreeResponseDto::class, $dto); self::assertTrue($dto->standardResponse->result); self::assertTrue($dto->pendingBdniValidation); self::assertNull($dto->identification); self::assertNull($dto->entryMovement); } public function testMapValidatedEntry(): void { $soapResponse = new stdClass(); $soapResponse->ReponseStandard = new stdClass(); $soapResponse->ReponseStandard->Resultat = true; $soapResponse->ReponseSpecifique = new stdClass(); $validee = new stdClass(); $validee->IdentiteBovin = new stdClass(); $validee->IdentiteBovin->Sexe = 'F'; $validee->IdentiteBovin->Bovin = new stdClass(); $validee->IdentiteBovin->Bovin->CodePays = 'FR'; $validee->IdentiteBovin->Bovin->NumeroNational = 'FR1234567890'; $validee->MouvementEntreeBovin = new stdClass(); $validee->MouvementEntreeBovin->DateEntree = '2026-04-22'; $validee->MouvementEntreeBovin->CauseEntree = 'A'; $soapResponse->ReponseSpecifique->EntreeValidee = $validee; $dto = new CreateEntreeResponseMapper(new StandardResponseMapper())->map($soapResponse); self::assertFalse($dto->pendingBdniValidation); self::assertNotNull($dto->identification); self::assertSame('F', $dto->identification->sex); self::assertSame('FR1234567890', $dto->identification->bovin?->nationalNumber); self::assertNotNull($dto->entryMovement); self::assertEquals(new DateTimeImmutable('2026-04-22'), $dto->entryMovement->date); self::assertSame('A', $dto->entryMovement->cause); } }