Commit f3fdfdfd authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Poursuite des tests unitaires sur la réception des IA

parent c1ecafaa
Loading
Loading
Loading
Loading
+351 −334

File changed.

Preview size limit exceeded, changes collapsed.

+1 −1
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@ use UnicaenDbImport\Entity\Db\Traits\SourceAwareTrait;
 ********************************************************************************************************************
 *
 * Données *non remaniées* issues de la synchro spécifiée dans la classe
 * {@see \SygalApiImpl\V1\Rest\InscriptionAdministrative\Process\ImportProcess}
 * {@see \SygalApiImpl\V1\Rest\InscriptionAdministrative\Process\InscriptionAdministrativeImportProcess}
 *
 * NB : l'id de l'inscription administrative est forgé (côté Pégase) à partir des attributs suivants :
 * - la structure organisationnelle (code UAI, ex : 'ETAB00'),
+2 −2
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ abstract class AbstractProcess
            $this->entityManager->getConnection()->setNestTransactionsWithSavepoints(true);
            $this->entityManager->getConnection()->beginTransaction();
        } catch (\Doctrine\DBAL\Exception $e) {
            throw new RuntimeException("Echec de l'ouverture d'une transaction en bdd", null, $e);
            throw new RuntimeException("Echec de l'ouverture d'une transaction en bdd", 0, $e);
        }
    }

@@ -35,7 +35,7 @@ abstract class AbstractProcess
            $this->entityManager->flush();
            $this->entityManager->getConnection()->commit();
        } catch (Exception $e) {
            $exception = new RuntimeException("Echec du commit en bdd, rollback.", null, $e);
            $exception = new RuntimeException("Echec du commit en bdd, rollback.", 0, $e);
            $this->rollback($exception);
            throw $exception;
        }
+34 −0
Original line number Diff line number Diff line
<?php

namespace InscriptionAdministrativeTest\Listener;

use InscriptionAdministrative\Entity\Db\Repository\InscriptionAdministrativeRepository;
use InscriptionAdministrative\Listener\ImportProcessListener;
use InscriptionAdministrative\Service\InscriptionAdministrativeService;
use PHPUnit\Framework\TestCase;
use RuntimeException;
use SygalApiImpl\Event\InscriptionAdministrativeImportEvent;

class ImportProcessListenerTest extends TestCase
{
    public function test_throws_runtime_exception_when_event_import_event_contains_unknown_ia()
    {
        $sourceCode = 'ABCD';

        // l'evt mentionne un source_code d'IA
        $event = $this->createStub(InscriptionAdministrativeImportEvent::class);
        $event->method('getInscriptionAdministrativeSourceCode')->willReturn($sourceCode);

        // IA introuvable avec ce source_code code
        $repo = $this->createStub(InscriptionAdministrativeRepository::class);
        $repo->method('findOneBySourceCode')->with($sourceCode)->willReturn(null);
        $inscriptionAdministrativeService = $this->createStub(InscriptionAdministrativeService::class);
        $inscriptionAdministrativeService->method('getRepository')->willReturn($repo);

        $this->expectException(RuntimeException::class);

        $listener = new ImportProcessListener();
        $listener->setInscriptionAdministrativeService($inscriptionAdministrativeService);
        $listener->onImportInscriptionAdministrative($event);
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ class ReceptionProcessTest extends TestCase
    {
        $this->ia->expects(self::once())->method('getInscriptionAdministrativeApprenant')->willReturn($this->createStub(InscriptionAdministrativeApprenant::class));

        $rule = $this->getMockForAbstractClass(ReceptionRuleInterface::class);
        $rule = $this->getMockBuilder(ReceptionRuleInterface::class)->getMock();
        $rule->method('canCreateDoctorant')->willReturn(false);
        $rule->method('canUpdateDoctorant')->willReturn(false);
        $rule->method('canUpdateCodeApprenantDoctorant')->willReturn(false);
Loading