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
114
115
116
|
<?php /** * Klein (klein.php) - A fast & flexible router for PHP * * @author Chris O'Hara <cohara87@gmail.com> * @author Trevor Suarez (Rican7) (contributor and v2 refactorer) * @copyright (c) Chris O'Hara * @link https://github.com/klein/klein.php * @license MIT */
namespace Klein\Tests;
use Klein\App;
/** * AppTest */ class AppTest extends AbstractKleinTest {
/** * Constants */
const TEST_CALLBACK_MESSAGE = 'yay';
/** * Helpers */
protected function getTestCallable($message = self::TEST_CALLBACK_MESSAGE) { return function () use ($message) { return $message; }; }
/** * Tests */
public function testRegisterFiller() { $func_name = 'yay_func';
$app = new App();
$app->register($func_name, $this->getTestCallable());
return array( 'app' => $app, 'func_name' => $func_name, ); }
/** * @depends testRegisterFiller */ public function testGet(array $args) { // Get our vars from our args extract($args);
$returned = $app->$func_name;
$this->assertNotNull($returned); $this->assertSame(self::TEST_CALLBACK_MESSAGE, $returned); }
/** * @expectedException Klein\Exceptions\UnknownServiceException */ public function testGetBadMethod() { $app = new App(); $app->random_thing_that_doesnt_exist; }
/** * @depends testRegisterFiller */ public function testCall(array $args) { // Get our vars from our args extract($args);
$returned = $app->{$func_name}();
$this->assertNotNull($returned); $this->assertSame(self::TEST_CALLBACK_MESSAGE, $returned); }
/** * @expectedException BadMethodCallException */ public function testCallBadMethod() { $app = new App(); $app->random_thing_that_doesnt_exist(); }
/** * @depends testRegisterFiller * @expectedException Klein\Exceptions\DuplicateServiceException */ public function testRegisterDuplicateMethod(array $args) { // Get our vars from our args extract($args);
$app->register($func_name, $this->getTestCallable()); } }
|