ApplicationTest.php
2.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
/**
* CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (https://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. (https://cakefoundation.org)
* @link https://cakephp.org CakePHP(tm) Project
* @since 3.3.0
* @license https://opensource.org/licenses/mit-license.php MIT License
*/
namespace App\Test\TestCase;
use App\Application;
use Cake\Error\Middleware\ErrorHandlerMiddleware;
use Cake\Http\MiddlewareQueue;
use Cake\Routing\Middleware\AssetMiddleware;
use Cake\Routing\Middleware\RoutingMiddleware;
use Cake\TestSuite\IntegrationTestCase;
use InvalidArgumentException;
/**
* ApplicationTest class
*/
class ApplicationTest extends IntegrationTestCase
{
/**
* testBootstrap
*
* @return void
*/
public function testBootstrap()
{
$app = new Application(dirname(dirname(__DIR__)) . '/config');
$app->bootstrap();
$plugins = $app->getPlugins();
//debug($plugins);
//$this->assertCount(3, $plugins);
// EP : 2 plugins en plus des standards :
$this->assertCount(5, $plugins);
$this->assertSame('Bake', $plugins->get('Bake')->getName());
$this->assertSame('Migrations', $plugins->get('Migrations')->getName());
$this->assertSame('DebugKit', $plugins->get('DebugKit')->getName());
// EP : mes plugins
$this->assertSame('Dompdf', $plugins->get('Dompdf')->getName());
$this->assertSame('BootstrapUI', $plugins->get('BootstrapUI')->getName());
}
/**
* testBootstrapPluginWitoutHalt
*
* @return void
*/
public function testBootstrapPluginWithoutHalt()
{
$this->expectException(InvalidArgumentException::class);
$app = $this->getMockBuilder(Application::class)
->setConstructorArgs([dirname(dirname(__DIR__)) . '/config'])
->setMethods(['addPlugin'])
->getMock();
$app->method('addPlugin')
->will($this->throwException(new InvalidArgumentException('test exception.')));
$app->bootstrap();
}
/**
* testMiddleware
*
* @return void
*/
public function testMiddleware()
{
$app = new Application(dirname(dirname(__DIR__)) . '/config');
$middleware = new MiddlewareQueue();
$middleware = $app->middleware($middleware);
$this->assertInstanceOf(ErrorHandlerMiddleware::class, $middleware->get(0));
$this->assertInstanceOf(AssetMiddleware::class, $middleware->get(1));
$this->assertInstanceOf(RoutingMiddleware::class, $middleware->get(2));
}
}