SuivisControllerTest.php 3.67 KB
<?php
namespace App\Test\TestCase\Controller;

use App\Controller\SuivisController;
use Cake\TestSuite\IntegrationTestCase;

/**
 * App\Controller\SuivisController Test Case
 */
class SuivisControllerTest extends IntegrationTestCase
{

    /**
     * Fixtures
     *
     * @var array
     */
    public $fixtures = [
        'app.suivis',
        'app.materiels',
        'app.sur_categories',
        'app.categories',
        'app.sous_categories',
        'app.groupes_thematiques',
        'app.groupes_metiers',
        'app.users',
        'app.organismes',
        'app.sites',
        'app.documents',
        'app.emprunts',
    	'app.configurations'
    ];

    
    public function authUser() {
    	$user = [
    			'Auth' => [
    					'User' => [
    							'id' => 1,
    							'username' => 'testing',
    							'password' => 'test',
    							'role' => 'Super Administrateur'
    					]
    			]
    	];
    	$this->session($user);
    }
    
    /**
     * Test index method
     *
     * @return void
     */
    public function testIndex()
    {
    	$this->authUser();
        
    	//1) On doit pouvoir accéder à la page une fois authentifié
    	$this->get('/suivis/index');
    	$this->assertNoRedirect("Authentifier mais redirection vers /users/login.");
    	 
    	//2) On doit avoir 2 suivis
    	$this->assertResponseContains("Liste des suivis (2)", "Le nombre de suivis renvoyé est incorrect.");
    }

    /**
     * Test view method
     *
     * @return void
     */
    public function testView()
    {
    	$this->authUser();
        
    	$this->get('/suivis/view/2');
    	$this->assertResponseContains("TEST VIEW SUIVI VALIDE", "Le suivi retourné n'est pas celui demandé.");
    }

    /**
     * Test add method
     *
     * @return void
     */
    public function testAdd()
    {
    	$this->authUser();
        
    	$data = [
    		'id' => 5,
    		'materiel_id' => 1,
    		'date_controle' => '2016-04-19',
    		'date_prochain_controle' => '2016-04-19',
    		'type_intervention' => 'Lorem ipsum dolor sit amet',
    		'organisme' => 'Lorem ipsum dolor sit amet',
    		'frequence' => 1,
    		'commentaire' => 'TEST ADD SUIVI VALIDE',
    		'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', $data);

    	$this->get('/suivis/index');
    	$this->assertResponseContains("Liste des suivis (3)", "Le suivi ne s'ajoute pas correctement.");
    	
    }

    /**
     * Test edit method
     *
     * @return void
     */
    public function testEdit()
    {
    	$this->authUser();
        
    	$data = [
    		'materiel_id' => 1,
    		'date_controle' => '2016-04-19',
    		'date_prochain_controle' => '2016-04-19',
    		'type_intervention' => 'Lorem ipsum dolor sit amet',
    		'organisme' => 'Lorem ipsum dolor sit amet',
    		'frequence' => 1,
    		'commentaire' => 'TEST EDIT SUIVI VALIDE',
    		'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/edit/1', $data);
    	$this->get('/suivis/view/1');
    	$this->assertResponseContains("TEST EDIT SUIVI VALIDE", "Le suivi n'a pas était édité correctement");
    	
    }

    /**
     * Test delete method
     *
     * @return void
     */
    public function testDelete()
    {
    	$this->authUser();
        
    	$this->post('/suivis/delete/2');
    	$this->get('/suivis/index');
    	$this->assertResponseContains("Liste des suivis (1)", "Le suivi n'as pas été supprimé.");
    }
}