Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Core/src/TestSuite/TestCase.php
<?php

namespace Croogo\Core\TestSuite;

use
Cake\Core\Configure;
use
Cake\Core\Plugin;
use
Cake\Network\Request;
use
Cake\ORM\Query;
use
Cake\TestSuite\TestCase as CakeTestCase;
use
Croogo\Core\Event\EventManager;
use
Croogo\Core\PluginManager;
use
Croogo\Core\TestSuite\Constraint\QueryCount;
use
PHPUnit_Util_InvalidArgumentHelper;

/**
 * CroogoTestCase class
 *
 * @category TestSuite
 * @package  Croogo
 * @version  1.4
 * @author   Fahad Ibnay Heylaal <contact@fahad19.com>
 * @author   Rachman Chavik <rchavik@gmail.com>
 * @license  http://www.opensource.org/licenses/mit-license.php The MIT License
 * @link     http://www.croogo.org
 */
class TestCase extends CakeTestCase
{
    protected
$previousPlugins = [];

    public static function
setUpBeforeClass()
    {
       
Configure::write('Config.language', 'eng');
    }

    public static function
tearDownAfterClass()
    {
       
Configure::write('Config.language', Configure::read('Site.locale'));
    }

   
/**
     * setUp
     *
     * @return void
     */
   
public function setUp()
    {
       
parent::setUp();

       
EventManager::instance(new EventManager);
       
Configure::write('EventHandlers', []);

       
PluginManager::unload('Croogo/Install');
       
PluginManager::load('Croogo/Example', ['autoload' => true, 'path' => '../Example/']);
       
Configure::write('Acl.database', 'test');

       
$this->previousPlugins = Plugin::loaded();
    }

    public function
tearDown()
    {
       
parent::tearDown();

       
// Unload all plugins that were loaded while running tests
       
$diff = array_diff(Plugin::loaded(), $this->previousPlugins);
        foreach (
$diff as $plugin) {
           
PluginManager::unload($plugin);
        }
    }

    public function
assertQueryCount($count, Query $query, $message = '')
    {
        if (!
is_int($count)) {
            throw
PHPUnit_Util_InvalidArgumentHelper::factory(1, 'integer');
        }

       
$constraint = new QueryCount($count);

        static::
assertThat($query, $constraint, $message);
    }

   
/**
     * Helper method to create an test API request (with the appropriate detector)
     */
   
protected function _apiRequest($params)
    {
       
$request = new Request();
       
$request->addParams($params);
       
$request->addDetector('api', [
           
'callback' => ['Croogo\\Core\\Router', 'isApiRequest'],
        ]);

        return
$request;
    }
}