Commit 0ea75a7957b3adbf4b7345b870b7499af62a3fa4

Authored by Etienne Pallier
1 parent 80b8cb03
Exists in master and in 1 other branch dev

bugfix et réécriture des actions documents /admission, /sortie, /fiche

(v3.7.9.51)

=> désormais, on passe l'id du matos associé et non pas son numero
d'inventaire !!! (mauvais raccourci)
=> ca permet de tester les conditions d'accès de ces actions en fonction
du matériel concerné !!
@@ -54,12 +54,12 @@ Logiciel testé et validé sur les configurations suivantes : @@ -54,12 +54,12 @@ Logiciel testé et validé sur les configurations suivantes :
54 VERSION ACTUELLE 54 VERSION ACTUELLE
55 55
56 Date: 29/06/2020 56 Date: 29/06/2020
57 -Version: 3.7.9.50 57 +Version: 3.7.9.51
58 Author: EP 58 Author: EP
59 -Commentaire:  
60 - - Nouveau (et dernier dernier) super test ajouté : test du cycle de vie complet d'un matériel (CREATED => ... => ARCHIVED)  
61 - - bugfix (en cours) des actions documents/admission et documents/sortie qui ne marchent plus car on ne leur passe pas un id mais un nom de doc...  
62 - - Nombreuses refactorisations dans les tests 59 +Commentaire:
  60 + - bugfix et réécriture des actions documents/admission, sortie, fiche !!! (pas d'id)
  61 + => désormais, on passe l'id du matos associé et non pas son numero d'inventaire !!! (mauvais raccourci)
  62 + => ca permet de tester les conditions d'accès de ces actions en fonction du matériel concerné !!
63 63
64 - Amélioration page /pages/acls 64 - Amélioration page /pages/acls
65 65
@@ -104,6 +104,11 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi @@ -104,6 +104,11 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi
104 104
105 ----------------------------------------------------------------------------------------------------------- 105 -----------------------------------------------------------------------------------------------------------
106 106
  107 +29/06/2020 v3.7.9.50 (EP)
  108 + - Nouveau (et dernier dernier) super test ajouté : test du cycle de vie complet d'un matériel (CREATED => ... => ARCHIVED)
  109 + - bugfix (en cours) des actions documents/admission et documents/sortie qui ne marchent plus car on ne leur passe pas un id mais un nom de doc...
  110 + - Nombreuses refactorisations dans les tests
  111 +
107 26/06/2020 v3.7.9.48-49 (EP) 112 26/06/2020 v3.7.9.48-49 (EP)
108 - TEST3 : Ajout d'un 3ème (et DERNIER) gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues pour TOUS les materiels de la BD de test (fixture), aussi bien dans la vue index globale que dans CHAQUE vue détaillée de chaque matériel (et surtout en vérifiant aussi la liste des entités associées (suivis,emprunts,documents). 113 - TEST3 : Ajout d'un 3ème (et DERNIER) gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues pour TOUS les materiels de la BD de test (fixture), aussi bien dans la vue index globale que dans CHAQUE vue détaillée de chaque matériel (et surtout en vérifiant aussi la liste des entités associées (suivis,emprunts,documents).
109 - bugfix autorisations d'affichage des boutons d'action sur documents dans materiels/view/ 114 - bugfix autorisations d'affichage des boutons d'action sur documents dans materiels/view/
src/Controller/DocumentsController.php
@@ -58,9 +58,11 @@ class DocumentsController extends AppController @@ -58,9 +58,11 @@ class DocumentsController extends AppController
58 $this->setAuthorizationsForAction('admission', ['VALIDATED',0], ['user'=>-1, 'resp'=>-1]); 58 $this->setAuthorizationsForAction('admission', ['VALIDATED',0], ['user'=>-1, 'resp'=>-1]);
59 // Action 'admissionPdf' 59 // Action 'admissionPdf'
60 $this->setAuthorizationsForAction('admissionPdf', 'admission', ['user'=>-1, 'resp'=>-1]); 60 $this->setAuthorizationsForAction('admissionPdf', 'admission', ['user'=>-1, 'resp'=>-1]);
  61 + //$this->setAuthorizationsForAction('admissionPdf', 0);
61 // Action 'sortie' 62 // Action 'sortie'
62 $this->setAuthorizationsForAction('sortie', ['ARCHIVED',0], ['user'=>-1, 'resp'=>-1]); 63 $this->setAuthorizationsForAction('sortie', ['ARCHIVED',0], ['user'=>-1, 'resp'=>-1]);
63 $this->setAuthorizationsForAction('sortiePdf', 'sortie', ['user'=>-1, 'resp'=>-1]); 64 $this->setAuthorizationsForAction('sortiePdf', 'sortie', ['user'=>-1, 'resp'=>-1]);
  65 + $this->setAuthorizationsForAction('sortiePdf', 0);
64 66
65 } // setAuthorizations 67 } // setAuthorizations
66 68
@@ -90,7 +92,7 @@ class DocumentsController extends AppController @@ -90,7 +92,7 @@ class DocumentsController extends AppController
90 return $this->isAuthorizedAction($action, $id, $IS_RELATED_ENTITY_ID); // $user, $userCname 92 return $this->isAuthorizedAction($action, $id, $IS_RELATED_ENTITY_ID); // $user, $userCname
91 */ 93 */
92 $related_matos_id = null; 94 $related_matos_id = null;
93 - if (in_array($action,['add','admission','sortie'])) { 95 + if (in_array($action,['add','admission','admissionPdf','fiche','fichePdf','sortie','sortiePdf'])) {
94 // Aucune de ces actions n'est autorisée sans préciser (à l'avance, dans l'url) le matériel concerné 96 // Aucune de ces actions n'est autorisée sans préciser (à l'avance, dans l'url) le matériel concerné
95 // => access denied 97 // => access denied
96 if (!$id) return false; 98 if (!$id) return false;
@@ -99,7 +101,7 @@ class DocumentsController extends AppController @@ -99,7 +101,7 @@ class DocumentsController extends AppController
99 $id=null; 101 $id=null;
100 } 102 }
101 103
102 - return $this->isAuthorizedAction($action, $id, $related_matos_id); // $user, $userCname 104 + return $this->isAuthorizedActionForCurrentUser($action, $id, $related_matos_id); // $user, $userCname
103 105
104 // LA SUITE EST A VIRER 106 // LA SUITE EST A VIRER
105 107
@@ -569,7 +571,8 @@ class DocumentsController extends AppController @@ -569,7 +571,8 @@ class DocumentsController extends AppController
569 } 571 }
570 572
571 //public function sortiePdf($filename) { 573 //public function sortiePdf($filename) {
572 - public function sortiePdf() { 574 + //public function sortiePdf() {
  575 + public function sortiePdf($matos_id) {
573 $this->viewBuilder() 576 $this->viewBuilder()
574 ->className('Dompdf.Pdf') 577 ->className('Dompdf.Pdf')
575 ->layout('Dompdf.default') 578 ->layout('Dompdf.default')
@@ -588,28 +591,35 @@ class DocumentsController extends AppController @@ -588,28 +591,35 @@ class DocumentsController extends AppController
588 */ 591 */
589 ]]); 592 ]]);
590 } 593 }
591 - public function sortie($labNumber)  
592 - { 594 + //public function sortie($labNumber)
  595 + public function sortie($matos_id) {
593 $this->set('fpdf', new FPDF('P', 'mm', 'A4')); 596 $this->set('fpdf', new FPDF('P', 'mm', 'A4'));
594 //$this->set('fpdf', new FPDF()); 597 //$this->set('fpdf', new FPDF());
595 //$this->set('fpdf', new TCPDF('P', 'mm', 'A4')); 598 //$this->set('fpdf', new TCPDF('P', 'mm', 'A4'));
596 } 599 }
597 600
598 601
599 - public function admission($labNumber, $pdfEngine="fpdf") 602 + //public function admission($labNumber, $pdfEngine="fpdf")
  603 + public function admission($matos_id, $pdfEngine="fpdf")
600 { 604 {
  605 + //debug($matos_id);
601 // only for FPDF 606 // only for FPDF
602 if ($pdfEngine == "fpdf") $this->set('fpdf', new FPDF('P', 'mm', 'A4')); 607 if ($pdfEngine == "fpdf") $this->set('fpdf', new FPDF('P', 'mm', 'A4'));
603 //$this->set('fpdf', new TCPDF('P', 'mm', 'A4')); 608 //$this->set('fpdf', new TCPDF('P', 'mm', 'A4'));
604 609
605 // Find the related materiel 610 // Find the related materiel
606 - $materiel = TableRegistry::get('Materiels')->find('all', [ 611 + $materiel = TableRegistry::getTableLocator()->get('Materiels')->get($matos_id, [
  612 + 'contain' => ['Fournisseurs', 'Organismes']
  613 + ]);
  614 + /*
  615 + //$materiel = TableRegistry::get('Materiels')->find('all', [
  616 + $materiel = TableRegistry::getTableLocator()->get('Materiels')->find('all', [
607 'conditions' => [ 617 'conditions' => [
608 'numero_laboratoire' => $labNumber 618 'numero_laboratoire' => $labNumber
609 ], 619 ],
610 'contain' => ['Fournisseurs', 'Organismes'] 620 'contain' => ['Fournisseurs', 'Organismes']
611 ])->first(); 621 ])->first();
612 - // End find 622 + */
613 623
614 // Get the administration user name 624 // Get the administration user name
615 $userName = $this->LdapAuth->user('username'); 625 $userName = $this->LdapAuth->user('username');
@@ -649,8 +659,10 @@ class DocumentsController extends AppController @@ -649,8 +659,10 @@ class DocumentsController extends AppController
649 $this->set('data', $TDoc); 659 $this->set('data', $TDoc);
650 } // admission() 660 } // admission()
651 661
652 - public function admissionPdf($labNumber) {  
653 - $this->admission($labNumber, "dompdf"); 662 + //public function admissionPdf($labNumber) {
  663 + public function admissionPdf($matos_id) {
  664 + //$this->admission($labNumber, "dompdf");
  665 + $this->admission($matos_id, "dompdf");
654 $this->viewBuilder() 666 $this->viewBuilder()
655 ->className('Dompdf.Pdf') 667 ->className('Dompdf.Pdf')
656 ->layout('Dompdf.default') 668 ->layout('Dompdf.default')
@@ -671,8 +683,10 @@ class DocumentsController extends AppController @@ -671,8 +683,10 @@ class DocumentsController extends AppController
671 } 683 }
672 684
673 685
674 - public function ficheMaterielPdf($labNumber) {  
675 - $this->ficheMateriel($labNumber, "dompdf"); 686 + //public function ficheMaterielPdf($labNumber) {
  687 + public function ficheMaterielPdf($matos_id) {
  688 + //$this->ficheMateriel($labNumber, "dompdf");
  689 + $this->ficheMateriel($matos_id, "dompdf");
676 690
677 $this->viewBuilder() 691 $this->viewBuilder()
678 ->className('Dompdf.Pdf') 692 ->className('Dompdf.Pdf')
@@ -694,10 +708,14 @@ class DocumentsController extends AppController @@ -694,10 +708,14 @@ class DocumentsController extends AppController
694 } 708 }
695 709
696 //public function ficheMateriel($labNumber) 710 //public function ficheMateriel($labNumber)
697 - public function ficheMateriel($labNumber, $pdfEngine="fpdf") 711 + //public function ficheMateriel($labNumber, $pdfEngine="fpdf")
  712 + public function ficheMateriel($matos_id, $pdfEngine="fpdf")
698 { 713 {
699 714
700 - // Find the concerned materiel 715 + // Find the related materiel
  716 + $materiel = TableRegistry::getTableLocator()->get('Materiels')->get($matos_id, [
  717 + 'contain' => ['SurCategories', 'Categories', 'SousCategories', 'Fournisseurs', 'Organismes']
  718 + ]);
701 /* 719 /*
702 $materiel = TableRegistry::get('Materiels')->find('all', [ 720 $materiel = TableRegistry::get('Materiels')->find('all', [
703 'conditions' => [ 721 'conditions' => [
@@ -705,6 +723,7 @@ class DocumentsController extends AppController @@ -705,6 +723,7 @@ class DocumentsController extends AppController
705 ] 723 ]
706 ])->first(); 724 ])->first();
707 */ 725 */
  726 + /*
708 $materiel = TableRegistry::get('Materiels')->find('all', [ 727 $materiel = TableRegistry::get('Materiels')->find('all', [
709 'conditions' => [ 728 'conditions' => [
710 'numero_laboratoire' => $labNumber 729 'numero_laboratoire' => $labNumber
@@ -712,7 +731,7 @@ class DocumentsController extends AppController @@ -712,7 +731,7 @@ class DocumentsController extends AppController
712 'contain' => ['SurCategories', 'Categories', 'SousCategories', 'Fournisseurs', 'Organismes'] 731 'contain' => ['SurCategories', 'Categories', 'SousCategories', 'Fournisseurs', 'Organismes']
713 ] 732 ]
714 )->first(); 733 )->first();
715 - // End find 734 + */
716 735
717 /* 736 /*
718 if ($materiel->sur_categorie_id !== null) 737 if ($materiel->sur_categorie_id !== null)
src/Template/Materiels/view.ctp
@@ -348,34 +348,43 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN @@ -348,34 +348,43 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN
348 if ($PDF_ENGINE == "FPDF") { 348 if ($PDF_ENGINE == "FPDF") {
349 // FPDF 349 // FPDF
350 $action = 'admission'; 350 $action = 'admission';
351 - $data = $entity->numero_laboratoire; 351 + ///$data = $entity->numero_laboratoire;
  352 + $id = $entity->id;
352 } 353 }
353 else { 354 else {
354 // DOMPDF 355 // DOMPDF
355 $action = 'admission_pdf'; 356 $action = 'admission_pdf';
356 - $data = $entity->numero_laboratoire . ".pdf"; 357 + // Il faut ajouter '.pdf' à la suite de l'argument pour que le template
  358 + // soit cherché dans Documents/pdf/ et non pas Documents/ !!!
  359 + ///$data = $entity->numero_laboratoire . ".pdf";
  360 + $id = $entity->id . '.pdf';
357 } 361 }
358 // if (($entity->status == 'VALIDATED') || ($entity->status == 'CREATED')) { 362 // if (($entity->status == 'VALIDATED') || ($entity->status == 'CREATED')) {
359 - $echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. admission', 'documents', $action, $data, [], "Voir le document d'admission"); 363 + //$echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. admission', 'documents', $action, $data, [], "Voir le document d'admission");
  364 + $echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. admission', 'documents', $action, $id, [], "Voir le document d'admission");
360 //} 365 //}
361 } 366 }
362 // doc sortie 367 // doc sortie
363 - if ($CAN_EDIT_DOC_SORTIE) { 368 + if (true) {
  369 + //if ($CAN_EDIT_DOC_SORTIE) {
364 370
365 // Doc sortie (admin only) 371 // Doc sortie (admin only)
366 //else if ($IS_ARCHIVED || $IS_TOBEARCHIVED) { 372 //else if ($IS_ARCHIVED || $IS_TOBEARCHIVED) {
367 if ($PDF_ENGINE == "FPDF") { 373 if ($PDF_ENGINE == "FPDF") {
368 // FPDF 374 // FPDF
369 $action = 'sortie'; 375 $action = 'sortie';
370 - $data = $entity->numero_laboratoire; 376 + $id = $entity->id;
  377 + //$data = $entity->numero_laboratoire;
371 } 378 }
372 else { 379 else {
373 // DOMPDF 380 // DOMPDF
374 $action = 'sortie_pdf'; 381 $action = 'sortie_pdf';
375 - $data = $entity->numero_laboratoire . ".pdf"; 382 + $id = $entity->id . '.pdf';
  383 + //$data = $entity->numero_laboratoire . ".pdf";
376 } 384 }
377 // else if (($entity->status == 'ARCHIVED') || ($entity->status == 'TOBEARCHIVED')) { 385 // else if (($entity->status == 'ARCHIVED') || ($entity->status == 'TOBEARCHIVED')) {
378 - $echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. sortie', 'documents', $action, $data, [], "Voir le document de sortie"); 386 + $echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. sortie', 'documents', $action, $id, [], "Voir le document de sortie");
  387 + //$echoActionButton($this->Html, 'icon-file', $bStyle, ' Doc. sortie', 'documents', $action, $data, [], "Voir le document de sortie");
379 //} 388 //}
380 389
381 } // Doc sortie 390 } // Doc sortie
@@ -488,14 +497,17 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN @@ -488,14 +497,17 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN
488 if ($PDF_ENGINE == "FPDF") { 497 if ($PDF_ENGINE == "FPDF") {
489 // FPDF 498 // FPDF
490 $action = 'ficheMateriel'; 499 $action = 'ficheMateriel';
491 - $data = $entity->numero_laboratoire; 500 + $id = $entity->id;
  501 + //$data = $entity->numero_laboratoire;
492 } 502 }
493 else { 503 else {
494 // DOMPDF 504 // DOMPDF
495 $action = 'fiche_materiel_pdf'; 505 $action = 'fiche_materiel_pdf';
496 - $data = $entity->numero_laboratoire.'.pdf'; 506 + $id = $entity->id . '.pdf';
  507 + //$data = $entity->numero_laboratoire.'.pdf';
497 } 508 }
498 - $echoActionButton($this->Html, 'icon-file', $bStyleGreen, ' Fiche PDF du matériel', 'documents', $action, $data, [], 509 + //$echoActionButton($this->Html, 'icon-file', $bStyleGreen, ' Fiche PDF du matériel', 'documents', $action, $data, [],
  510 + $echoActionButton($this->Html, 'icon-file', $bStyleGreen, ' Fiche PDF du matériel', 'documents', $action, $id, [],
499 "Voir la fiche du materiel" 511 "Voir la fiche du materiel"
500 ); 512 );
501 513
tests/TestCase/Controller/General.php
@@ -721,6 +721,9 @@ class General extends TestCase { @@ -721,6 +721,9 @@ class General extends TestCase {
721 721
722 722
723 /** 723 /**
  724 + *
  725 + * (EP 20200620)
  726 + *
724 * Test (automatique) de (presque) TOUTES les actions d'un controleur 727 * Test (automatique) de (presque) TOUTES les actions d'un controleur
725 * 728 *
726 * Appelé par chaque test de controleur en passant en paramètre $entities_name (et le reste par DataProvider) 729 * Appelé par chaque test de controleur en passant en paramètre $entities_name (et le reste par DataProvider)
tests/TestCase/Controller/MaterielsControllerTest.php
@@ -1909,6 +1909,8 @@ class MaterielsControllerTest extends General { @@ -1909,6 +1909,8 @@ class MaterielsControllerTest extends General {
1909 */ 1909 */
1910 1910
1911 /** 1911 /**
  1912 + * (EP 20200625)
  1913 + *
1912 * Test des vues view.ctp et index.ctp avec tous les profils (roles U,R,A,S) 1914 * Test des vues view.ctp et index.ctp avec tous les profils (roles U,R,A,S)
1913 * ET tous les materiels de la BD de test (fixture) 1915 * ET tous les materiels de la BD de test (fixture)
1914 * 1916 *
@@ -1992,6 +1994,8 @@ class MaterielsControllerTest extends General { @@ -1992,6 +1994,8 @@ class MaterielsControllerTest extends General {
1992 1994
1993 1995
1994 /** 1996 /**
  1997 + * (EP 20200625)
  1998 + *
1995 * Test des vues view.ctp et index.ctp avec tous les profils (roles U,R,A,S) 1999 * Test des vues view.ctp et index.ctp avec tous les profils (roles U,R,A,S)
1996 * ET avec tous les statuts de matériel (C,V,T,A) 2000 * ET avec tous les statuts de matériel (C,V,T,A)
1997 * (avec un seul matériel de test qui est modifié à volonté) 2001 * (avec un seul matériel de test qui est modifié à volonté)
@@ -2358,17 +2362,8 @@ class MaterielsControllerTest extends General { @@ -2358,17 +2362,8 @@ class MaterielsControllerTest extends General {
2358 $this->_testAuthorizationsForAllControllerActions($action, $role_short, $role_long); 2362 $this->_testAuthorizationsForAllControllerActions($action, $role_short, $role_long);
2359 } 2363 }
2360 2364
2361 -  
2362 2365
2363 -  
2364 - /**  
2365 - * @dataProvider dataProviderRoles4  
2366 - */  
2367 - public function OFF_testActionDeleteMateriel($role) {  
2368 - $this->_testActionDeleteEntity($role);  
2369 - }  
2370 -  
2371 - 2366 + // (EP 20200629)
2372 private function _assertFlashMessageIsAsExpectedForAction($action, $SUCCESS=true) { 2367 private function _assertFlashMessageIsAsExpectedForAction($action, $SUCCESS=true) {
2373 $expected_flash_message = 'Le matériel a bien été '; 2368 $expected_flash_message = 'Le matériel a bien été ';
2374 switch($action) { 2369 switch($action) {
@@ -2420,6 +2415,7 @@ class MaterielsControllerTest extends General { @@ -2420,6 +2415,7 @@ class MaterielsControllerTest extends General {
2420 } 2415 }
2421 } 2416 }
2422 2417
  2418 + // (EP 20200629)
2423 private function _doActionAndCheckResult($action, $id=null, $SUCCESS=true, $data=[], $controller=null) { 2419 private function _doActionAndCheckResult($action, $id=null, $SUCCESS=true, $data=[], $controller=null) {
2424 $action_link = Inflector::dasherize($action); // statusValidated => status-validated 2420 $action_link = Inflector::dasherize($action); // statusValidated => status-validated
2425 //$this->post("/materiels/$action_link/$id"); 2421 //$this->post("/materiels/$action_link/$id");
@@ -2435,11 +2431,13 @@ class MaterielsControllerTest extends General { @@ -2435,11 +2431,13 @@ class MaterielsControllerTest extends General {
2435 $this->_assertFlashMessageIsAsExpectedForAction($action, $SUCCESS); 2431 $this->_assertFlashMessageIsAsExpectedForAction($action, $SUCCESS);
2436 } 2432 }
2437 2433
  2434 + // (EP 20200629)
2438 private function _checkMaterielStatusChangedTo($id,$new_status) { 2435 private function _checkMaterielStatusChangedTo($id,$new_status) {
2439 $m = $this->Materiels->get($id); 2436 $m = $this->Materiels->get($id);
2440 $this->assertSame($m->status, $new_status); 2437 $this->assertSame($m->status, $new_status);
2441 } 2438 }
2442 2439
  2440 + // (EP 20200629)
2443 private function _testMaterielCannotBeModifiedAnymoreExceptIfDevalidated($id) { 2441 private function _testMaterielCannotBeModifiedAnymoreExceptIfDevalidated($id) {
2444 2442
2445 // On sauve le statut courant 2443 // On sauve le statut courant
@@ -2483,12 +2481,16 @@ class MaterielsControllerTest extends General { @@ -2483,12 +2481,16 @@ class MaterielsControllerTest extends General {
2483 } 2481 }
2484 2482
2485 /** 2483 /**
  2484 + * (EP 20200629)
  2485 + *
2486 * Test du cycle de vie complet d'un matériel 2486 * Test du cycle de vie complet d'un matériel
2487 * 2487 *
2488 * On teste les états-transitions d'un matériel, le passage progressif d'un état à un autre : 2488 * On teste les états-transitions d'un matériel, le passage progressif d'un état à un autre :
2489 * CREATED => VALIDATED => TBA => ARCHIVED 2489 * CREATED => VALIDATED => TBA => ARCHIVED
2490 * (on teste aussi toutes les actions qui sont possibles ou pas à chaque état) 2490 * (on teste aussi toutes les actions qui sont possibles ou pas à chaque état)
2491 * 2491 *
  2492 + * Ce test vérifie le diagramme UML etats-transitions webroot/doc/diagrams/materiel_state_diagram.txt
  2493 + *
2492 */ 2494 */
2493 public function testMaterielLifeCycle() { 2495 public function testMaterielLifeCycle() {
2494 2496
@@ -2597,4 +2599,17 @@ class MaterielsControllerTest extends General { @@ -2597,4 +2599,17 @@ class MaterielsControllerTest extends General {
2597 2599
2598 2600
2599 2601
  2602 +
  2603 +
  2604 + /**
  2605 + * @dataProvider dataProviderRoles4
  2606 + */
  2607 + public function OFF_testActionDeleteMateriel($role) {
  2608 + $this->_testActionDeleteEntity($role);
  2609 + }
  2610 +
  2611 +
  2612 +
  2613 +
  2614 +
2600 } // class MaterielsControllerTest 2615 } // class MaterielsControllerTest
2601 \ No newline at end of file 2616 \ No newline at end of file