SurCategoriesControllerTest.php 3.93 KB
<?php
/**
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the LICENSE.txt
 * Redistributions of files must retain the above copyright notice
 *
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @since         1.2.0
 * @license       http://www.opensource.org/licenses/mit-license.php MIT License
 */
namespace App\Test\TestCase\Controller;

use Cake\Core\Configure;
use Cake\TestSuite\IntegrationTestCase;
use Cake\ORM\TableRegistry;

/**
 * App\Controller\SurCategoriesController Test Case
 */
class SurCategoriesControllerTest extends General
{
	/**
	 * Fixtures
	 *
	 * @var array
	 */
	public $fixtures = [
	    'app.Configurations',

	    'app.Fakeldapusers',
	    'app.Users',
	    'app.SurCategories',
	    'app.Categories',
	    'app.SousCategories',
	    /*
	    'app.groupes_thematiques',
	    'app.groupes_metiers',
	    'app.organismes',
	    'app.sites',
	    'app.documents',
	    'app.type_suivis',
	    'app.type_documents',
	    'app.fournisseurs',
	    'app.unites'
	    */
	];

	/*
	protected function getEntitiesName() {
	    return 'SurCategories';
	}*/
	
	//@Implement
	protected function getNewEntityWithAllMandatoryFields() {
	    return [
            'nom' => 'Super Tout Nouveau Domaine'
	    ];
	}
	
	//@Override parent
	// PAS le 1 (ni le 2) car il a des materiels associés et donc on ne pourra pas le supprimer !!!
	static protected function _getEntityIdOkForTesting() {
	    return 3;
	}

	
	
	
	
	public function testSurCategoriesReadAllAsSuperAdmin() { $this->_testSurCategoriesReadAllAs('SUPER'); }
	private function _testSurCategoriesReadAllAs($role) {
	    //$this->authUser();
	    $this->authAs($role);
	    
	    $this->get('/sur-categories/index');
	    $this->get('/sur-categories?sort=nom');
	    $this->assertResponseOk();
	    $this->assertResponseContains('Liste des domaines');
	    $this->assertResponseContains('Electronique');
	    $this->assertResponseContains('Optique');
	}

	public function testCategoriesReadAllAsSuperAdmin() { $this->_testCategoriesReadAllAs('SUPER'); }
	private function _testCategoriesReadAllAs($role) {
	    //$this->authUser();
	    $this->authAs($role);
	    
	    $this->get('/categories/index');
	    $this->get('/categories?sort=nom');
	    $this->assertResponseOk();
	    $this->assertResponseContains('Liste des catégories');
	    
	    $this->assertResponseContains('Categ1');
	    $this->assertResponseContains('Electronique');
	    
	    $this->assertResponseContains('Categ2');
	    //$this->assertResponseContains('Electronique');
	    
	    $this->assertResponseContains('Categ3');
	    $this->assertResponseContains('Optique');
	}
	


    /**
     * Test (automatique) de (presque) TOUTES les actions de CE controleur
     *
     * @return void
     *
     * @dataProvider dataProviderActionsAndRoles4
     * 
     * @requires PHP 5.6
     * (https://phpunit.readthedocs.io/fr/latest/incomplete-and-skipped-tests.html#sauter-des-tests-en-utilisant-requires)
     */
    public function testAuthorizationsForAllActionsOnSurCategories($action, $role_short, $role_long) {
    //public function OFF_car_OK_only_with_php7_testAuthorizationsForAllActionsOnSurCategories($action, $role_short, $role_long) {
        /*
        $entities_name = $this->getEntitiesName();
        debug($entities_name);
        $nb = TableRegistry::getTableLocator()->get($entities_name)->find()->count();
        //$nb = $this->getNbEntitiesInFixture();
        debug("nb is $nb");
        $nb = $this->getNbEntitiesInFixture();
        debug("nb is $nb");
        */
        //debug("surcateg done");
        // call parent General
        $this->_testAuthorizationsForAllControllerActions($action, $role_short, $role_long);
    }




} // SurCategoriesControllerTest class