[ 'User' => [ 'sn' => [0 => 'test2'], 'mail' => [0 => 'test@test.fr'], 'uid' => [0 => 'testa'], 'givenname' => [0 => 'test1'], 'cn' => [0 => 'testa'], 'userpassword' => [0 => 'test'], ] ] ]; $this->session($user); $authType = ['authType' => 'cn']; $this->session($authType); } /** * setUp method * * @return void */ public function setUp() { parent::setUp(); $config = TableRegistry::exists('Materiels') ? [] : ['className' => 'App\Model\Table\MaterielsTable']; $this->Materiels = TableRegistry::get('Materiels', $config); $config = TableRegistry::exists('Suivis') ? [] : ['className' => 'App\Model\Table\SuivisTable']; $this->Suivis = TableRegistry::get('Suivis', $config); $this->ControllerMateriels = new MaterielsController(); } /** * tearDown method * * @return void */ public function tearDown() { unset($this->Materiels); unset($this->Suivis); unset($this->ControllerMateriels); parent::tearDown(); } /** * Test index method if no authentified * * @return void */ public function testIndexNoAuth() { $this->get('/materiels/index'); $this->assertRedirect('/users/login', 'Problème : Non authentifier mais accès materiels/index'); } /** * Test index method * * @return void */ public function testIndex() { $this->authUser(); //1) On doit pouvoir accéder à la page une fois authentifié $this->get('/materiels/index'); $this->assertNoRedirect("Authentifier mais redirection vers /users/login."); //2) On doit avoir 6 matériels $this->assertResponseContains("Liste des matériels (6)", "Le nombre de materiels renvoyé est incorrect."); } /** * Test view method * * @return void */ public function testView() { $this->authUser(); $this->get('/materiels/view/3'); $this->assertResponseContains("Test 3", "Le matériel retourné n'est pas celui demandé."); $this->assertResponseContains("Suivi(s) du matériel (1)", "Le nb de suivi lié au matériel est incorrect."); $this->assertResponseContains("Emprunt(s) du matériel (1)", "Le nb d'emprunt lié au matériel est incorrect."); $this->assertResponseContains("Fichier(s) lié(s) au matériel (1)", "Le nb de fichier lié au matériel est incorrect."); } /** * Test add method * * @return void */ public function testAdd() { $this->authUser(); $data = [ 'id' => 14, 'designation' => 'Test 14', 'sur_categorie_id' => 1, 'categorie_id' => 1, 'materiel_administratif' => 0, 'materiel_technique' => 1, 'status' => 'CREATED', 'date_acquisition' => '19-04-2016', 'nom_createur' => 'Pallier Etienne', 'nom_modificateur' => 'Jean Administration', 'nom_responsable' => 'Jacques Utilisateur', 'email_responsable' => 'Jacques.Utilisateur@irap.omp.eu', ]; $this->post('/materiels/add', $data); $this->get('/materiels/index'); $this->assertResponseContains("Liste des matériels (7)", "Le matériel ne s'ajoute pas correctement."); $this->assertResponseContains("Test 14", "Le matériel ne s'ajoute pas correctement."); $this->assertResponseContains("TEST-2016-0014", "La génération du n°de labo n'est pas bonne."); } /** * Test edit method * * @return void */ public function testEdit() { $this->authUser(); $data = [ 'designation' => 'Test 6', 'sur_categorie_id' => 1, 'categorie_id' => 1, 'materiel_administratif' => 0, 'materiel_technique' => 1, 'status' => 'CREATED', 'date_acquisition' => '19-04-2016', 'nom_createur' => 'Pallier Etienne', 'nom_modificateur' => 'Jean Administration', 'nom_responsable' => 'Jacques Utilisateur', 'email_responsable' => 'Jacques.Utilisateur@irap.omp.eu', ]; $this->post('/materiels/edit/2', $data); $this->get('/materiels/index'); $this->assertResponseContains("Test 6", "Le matériel n'a pas était édité correctement"); // $this->assertResponseNotContains("Test 2", "Le matériel n'a pas était édité correctement"); $data2 = [ 'designation' => 'Test 9', 'sur_categorie_id' => 1, 'categorie_id' => 1, 'materiel_administratif' => 0, 'materiel_technique' => 1, 'status' => 'xxx', 'date_acquisition' => '19-04-2016', 'nom_createur' => 'Pallier Etienne', 'nom_modificateur' => 'Jean Administration', 'nom_responsable' => 'Jacques Utilisateur', 'email_responsable' => 'Jacques.Utilisateur@irap.omp.eu', ]; $this->post('/materiels/edit/2', $data2); $this->get('/materiels/index'); $this->assertResponseNotContains("Test 9", "Le matériel a été édité, alors que le statut n'est pas valide."); } /** * Test delete method * * @return void */ public function testDelete() { $this->authUser(); $this->post('/materiels/delete/2'); $this->get('/materiels/index'); $this->assertResponseContains("Liste des matériels (5)", "Le matériel n'as pas été supprimé."); $this->assertResponseNotContains("Test 2", "Le matériel n'as pas été supprimé."); } /** * Test find method * * @return void */ public function testFind() { $this->authUser(); $dataSearch = [ 's_designation' => 'Test', 's_matostype' => '', 's_sur_categorie_id' => '', 's_categorie_id' => '', 's_sous_categorie_id' => '', 's_status' => '', 's_groupes_metier_id' => '', 's_groupes_thematique_id' => '', 's_numero_commande' => '', 's_numero_laboratoire' => '', 's_organisme_id' => '', 's_nom_responsable' => '', 's_numero_inventaire_organisme' => '', 's_numero_inventaire_old' => '', 's_date_acquisition' => '', 's_periode_acquisition1' => '', 's_periode_acquisition2' => '', 's_prix_ht' => '', 's_prix_ht_sup' => '', 's_prix_ht_inf' => '', ]; //Test sans aucun champ $this->post('/materiels/find'); $this->assertResponseContains("Aucun résultats pour cette recherche.", "Le contenu de la recherche devrait être vide."); //Test champ générale formulaire $this->post('/materiels/find', ['s_all' => 'TEST-2016-0002']); $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche générale du formulaire est incorrecte."); //Test champ générale menu latéral $this->post('/materiels/find', ['s_all_2' => 'TEST-2016-0002']); $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche général du menu latéral est incorrecte."); //Test champ designation $this->post('/materiels/find', $dataSearch); $this->assertResponseContains("Résultats (5)", "Le nb de materiels pour la recherche par désignation est incorrecte."); //Test champ numero_laboratoire $dataSearch['s_designation'] = ''; $dataSearch['s_numero_laboratoire'] = 'TEST-2016-0003'; $this->post('/materiels/find', $dataSearch); $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par numero de laboratoire est incorrecte."); //Test champ status $dataSearch['s_numero_laboratoire'] = ''; $dataSearch['s_status'] = 'CREATED'; $this->post('/materiels/find', $dataSearch); $this->assertResponseContains("Résultats (3)", "Le nb de materiels pour la recherche par statut est incorrecte."); //Test champ date_acquisition $dataSearch['s_status'] = ''; $dataSearch['s_date_acquisition'] = '2016-05-11'; $this->post('/materiels/find', $dataSearch); $this->assertResponseContains("Résultats (4)", "Le nb de materiels pour la recherche par date d'acquisition est incorrecte."); //Test champ periode_acquisition1 (debut) $dataSearch['s_date_acquisition'] = ''; $dataSearch['s_periode_acquisition1'] = '2015-01-01'; $this->post('/materiels/find', $dataSearch); $this->assertResponseContains("Résultats (5)", "Le nb de materiels pour la recherche par debut de periode d'acquisition est incorrecte."); //Test champ periode_acquisition1 (debut) && champ periode_acquisition2 (fin) $dataSearch['s_periode_acquisition2'] = '2016-01-01'; $this->post('/materiels/find', $dataSearch); $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par intervalle entre la periode d'acquisition (debut) et la periode d'acquisition (fin) est incorrecte."); //Test champ periode_acquisition2 (fin) $dataSearch['s_periode_acquisition1'] = ''; $this->post('/materiels/find', $dataSearch); $this->assertResponseContains("Résultats (2)", "Le nb de materiels pour la recherche par fin de periode d'acquisition est incorrecte."); //Test champ prix_ht $dataSearch['s_periode_acquisition2'] = ''; $dataSearch['s_prix_ht'] = '50'; $this->post('/materiels/find', $dataSearch); $this->assertResponseContains("Résultats (1)", "Le nb de materiels pour la recherche par prix ht est incorrecte."); //Test champ prix_ht_sup $dataSearch['s_prix_ht'] = ''; $dataSearch['s_prix_ht_sup'] = '30'; $this->post('/materiels/find', $dataSearch); $this->assertResponseContains("Résultats (5)", "Le nb de materiels pour la recherche par prix ht superieur est incorrecte."); //Test champ prix_ht_inf $dataSearch['s_prix_ht_sup'] = ''; $dataSearch['s_prix_ht_inf'] = '70'; $this->post('/materiels/find', $dataSearch); $this->assertResponseContains("Résultats (2)", "Le nb de materiels pour la recherche par prix ht inferieur est incorrecte."); } /** * Test addReadSuivisMateriel * * @return void */ public function testAddReadSuivisMateriel() { $this->authUser(); $dataSuivi1 = [ 'materiel_id' => 1, 'date_controle' => '2016-04-19', 'date_prochain_controle' => '2016-04-19', 'type_suivi_id' => 1, 'organisme' => 'Lorem ipsum dolor sit amet', 'frequence' => 1, 'commentaire' => 'Lorem ipsum dolor sit amet', 'nom_createur' => 'Lorem ipsum dolor sit amet', 'nom_modificateur' => 'Lorem ipsum dolor sit amet', 'created' => '2016-04-19 09:09:28', 'modified' => '2016-04-19 09:09:28' ]; $dataSuivi2 = [ 'materiel_id' => 1, 'date_controle' => '2016-04-19', 'date_prochain_controle' => '2016-04-19', 'type_suivi_id' => 1, 'organisme' => 'Lorem ipsum dolor sit amet', 'frequence' => 1, 'commentaire' => 'Lorem ipsum dolor sit amet', 'nom_createur' => 'Lorem ipsum dolor sit amet', 'nom_modificateur' => 'Lorem ipsum dolor sit amet', 'created' => '2016-04-19 09:09:28', 'modified' => '2016-04-19 09:09:28' ]; $this->post('/suivis/add/1', $dataSuivi1); $this->post('/suivis/add/1', $dataSuivi2); $this->get('/materiels/view/1'); $this->assertResponseContains("Suivi(s) du matériel (3)", "Le nb de suivi renvoyé pour ce matériel est incorrect."); } /** * Test addReadEmpruntsMateriel * * @return void */ public function testAddReadEmpruntsMateriel() { $this->authUser(); $dataEmprunt1 = [ 'materiel_id' => 1, 'date_emprunt' => '2016-04-19', 'date_retour_emprunt' => '2016-04-19', 'emprunt_interne' => 1, 'laboratoire' => 'Lorem ipsum dolor sit amet', 'site_id' => 1, 'e_lieu_detail' => 'Lorem ipsum dolor sit amet', 'nom_emprunteur' => 'Lorem ipsum dolor sit amet', 'email_emprunteur' => 'Lorem ipsum dolor sit amet', 'tel' => 'Lorem ipsum dolor ', 'commentaire' => 'Lorem ipsum dolor sit amet', 'nom_createur' => 'Lorem ipsum dolor sit amet', 'nom_modificateur' => 'Lorem ipsum dolor sit amet', 'created' => '2016-04-19 09:09:26', 'modified' => '2016-04-19 09:09:26' ]; $dataEmprunt2 = [ 'materiel_id' => 1, 'date_emprunt' => '2016-04-19', 'date_retour_emprunt' => '2016-04-19', 'emprunt_interne' => 0, 'laboratoire' => 'Lorem ipsum dolor sit amet', 'site_id' => 1, 'e_lieu_detail' => 'Lorem ipsum dolor sit amet', 'nom_emprunteur' => 'Lorem ipsum dolor sit amet', 'email_emprunteur' => 'Lorem ipsum dolor sit amet', 'tel' => 'Lorem ipsum dolor ', 'commentaire' => 'Lorem ipsum dolor sit amet', 'nom_createur' => 'Lorem ipsum dolor sit amet', 'nom_modificateur' => 'Lorem ipsum dolor sit amet', 'created' => '2016-04-19 09:09:26', 'modified' => '2016-04-19 09:09:26' ]; $this->post('/emprunts/add/1', $dataEmprunt1); $this->post('/emprunts/add/1', $dataEmprunt2); $this->get('/materiels/view/1'); $this->assertResponseContains("Emprunt(s) du matériel (3)", "Le nb d'emprunt renvoyé pour ce matériel est incorrect."); } /** NE FONCTIONNE PAS * * Test addCopieMateriel * * @return void * public function testAddCopieMateriel() { $this->authUser(); $data = [ 'designation' => 'Test 14', 'sur_categorie_id' => 1, 'categorie_id' => 1, 'materiel_administratif' => 0, 'materiel_technique' => 1, 'status' => 'CREATED', 'date_acquisition' => '2016-04-16']; $this->post('/materiels/add/13', $data); $this->get('/materiels/view/14'); $this->assertResponseContains("Jesus", "La copie du materiel ne se fait pas correctement."); $this->assertResponseContains("TEST COPIE MATERIEL", "La copie du materiel ne se fait pas correctement."); } /** * * Test updateStatutCreated * * @return void */ public function testUpdateStatutCreated() { $this->authUser(); $this->post('/materiels/status-validated/11'); $this->get('/materiels/view/11'); $this->assertResponseContains('VALIDATED', "La validation du materiel ne se fait pas correctement."); } /** * * Test updateStatutValidated * * @return void */ public function testUpdateStatutValidated() { $this->authUser(); $this->post('/materiels/status-to-be-archived/12'); $this->get('/materiels/view/12'); $this->assertResponseContains('TOBEARCHIVED', "La demande d'archivation du materiel ne se fait pas correctement."); } /** * * Test updateStatutToBeArchived * * @return void */ public function testUpdateStatutToBeArchived() { $this->authUser(); $this->post('/materiels/status-archived/13'); $this->get('/materiels/view/13'); $this->assertResponseContains('ARCHIVED', "L'archivation du materiel ne se fait pas correctement."); } /** * Test UpdatePlaceEtiquetteMateriel * * @return void */ public function testUpdatePlaceEtiquetteMateriel() { $this->authUser(); $this->post('/materiels/set-label-is-placed/11/view'); $this->get('/materiels/view/11'); $this->assertResponseContains('Etiquette posée