-
Notifications
You must be signed in to change notification settings - Fork 3.4k
/
HelperRegistryTest.php
113 lines (100 loc) · 3.2 KB
/
HelperRegistryTest.php
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?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)
* @since 3.1.0
* @license https://opensource.org/licenses/mit-license.php MIT License
*/
namespace Cake\Test\TestCase\Console;
use Cake\Console\HelperRegistry;
use Cake\Core\Plugin;
use Cake\TestSuite\TestCase;
/**
* HelperRegistryTest
*/
class HelperRegistryTest extends TestCase
{
/**
* setUp
*
* @return void
*/
public function setUp()
{
parent::setUp();
static::setAppNamespace();
$io = $this->getMockBuilder('Cake\Console\ConsoleIo')
->disableOriginalConstructor()
->getMock();
$this->helpers = new HelperRegistry();
$this->helpers->setIo($io);
}
/**
* tearDown
*
* @return void
*/
public function tearDown()
{
unset($this->helpers);
parent::tearDown();
}
/**
* test loading helpers.
*
* @return void
*/
public function testLoad()
{
$result = $this->helpers->load('Simple');
$this->assertInstanceOf('TestApp\Shell\Helper\SimpleHelper', $result);
$this->assertInstanceOf('TestApp\Shell\Helper\SimpleHelper', $this->helpers->Simple);
$result = $this->helpers->loaded();
$this->assertEquals(['Simple'], $result, 'loaded() results are wrong.');
}
/**
* test triggering callbacks on loaded helpers
*
* @return void
*/
public function testLoadWithConfig()
{
$result = $this->helpers->load('Simple', ['key' => 'value']);
$this->assertEquals('value', $result->config('key'));
}
/**
* test missing helper exception
*
* @expectedException \Cake\Console\Exception\MissingHelperException
* @return void
*/
public function testLoadMissingHelper()
{
$this->helpers->load('ThisTaskShouldAlwaysBeMissing');
}
/**
* Tests loading as an alias
*
* @return void
*/
public function testLoadWithAlias()
{
Plugin::load('TestPlugin');
$result = $this->helpers->load('SimpleAliased', ['className' => 'Simple']);
$this->assertInstanceOf('TestApp\Shell\Helper\SimpleHelper', $result);
$this->assertInstanceOf('TestApp\Shell\Helper\SimpleHelper', $this->helpers->SimpleAliased);
$result = $this->helpers->loaded();
$this->assertEquals(['SimpleAliased'], $result, 'loaded() results are wrong.');
$result = $this->helpers->load('SomeHelper', ['className' => 'TestPlugin.Example']);
$this->assertInstanceOf('TestPlugin\Shell\Helper\ExampleHelper', $result);
$this->assertInstanceOf('TestPlugin\Shell\Helper\ExampleHelper', $this->helpers->SomeHelper);
$result = $this->helpers->loaded();
$this->assertEquals(['SimpleAliased', 'SomeHelper'], $result, 'loaded() results are wrong.');
}
}