/
ConsoleTest.php
125 lines (99 loc) · 3.41 KB
/
ConsoleTest.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
114
115
116
117
118
119
120
121
122
123
124
125
<?php
namespace Particletree\Pqp;
use Exception;
use PHPUnit_Framework_TestCase;
use ReflectionClass;
class ConsoleTest extends PHPUnit_Framework_TestCase
{
public function testLog()
{
$data = array(
'key' => 'value'
);
$console = new Console();
$console->log($data);
$store = $this->getProtectedStore($console);
$log = array_pop($store);
$this->assertSame($data, $log['data']);
$this->assertEquals('log', $log['type']);
}
public function testLogMemory()
{
$data = array(
'key' => 'value'
);
$memory = strlen(serialize($data));
$name = 'Test Array';
$console = new Console();
$console->logMemory($data, $name);
$store = $this->getProtectedStore($console);
$log = array_pop($store);
$this->assertEquals($name, $log['name']);
$this->assertEquals($memory, $log['data']);
$this->assertEquals('array', $log['data_type']);
$this->assertEquals('memory', $log['type']);
$data = '12345';
$console = new Console();
$console->logMemory($data, 'PHP', true);
$store = $this->getProtectedStore($console);
$log = array_pop($store);
$this->assertEquals($data, $log['data']);
}
public function testLogError()
{
$error = new Exception('Test Exception');
$console = new Console();
$console->logError($error);
$store = $this->getProtectedStore($console);
$log = array_pop($store);
$this->assertEquals($error->getMessage(), $log['data']);
$this->assertEquals($error->getFile(), $log['file']);
$this->assertEquals($error->getLine(), $log['line']);
$this->assertEquals('error', $log['type']);
$error = new Exception('Test Exception');
$message = 'override message';
$console = new Console();
$console->logError($error, $message);
$store = $this->getProtectedStore($console);
$log = array_pop($store);
$this->assertEquals($message, $log['data']);
}
public function testLogSpeed()
{
$name = 'Test Speed';
$console = new Console();
$console->logSpeed($name);
$store = $this->getProtectedStore($console);
$log = array_pop($store);
$this->assertEquals($name, $log['name']);
$this->assertEquals('speed', $log['type']);
}
public function testGetLogs()
{
$store = array(
array(
'data' => 'a string',
'type' => 'log'
),
array(
'name' => '',
'data' => 123,
'data_type' => 'array',
'type' => 'memory'
)
);
$console = new Console();
$reflectedConsole = new ReflectionClass(get_class($console));
$reflectedProperty = $reflectedConsole->getProperty('store');
$reflectedProperty->setAccessible(true);
$reflectedProperty->setValue($console, $store);
$this->assertSame($store, $console->getLogs());
}
protected function getProtectedStore(Console $console)
{
$reflectedConsole = new ReflectionClass(get_class($console));
$reflectedProperty = $reflectedConsole->getProperty('store');
$reflectedProperty->setAccessible(true);
return $reflectedProperty->getValue($console);
}
}