@@ -16,6 +16,8 @@ require __DIR__ . '/../bootstrap.php';
1616ini_set ('serialize_precision ' , '14 ' );
1717
1818$ dumper = new Dumper ;
19+
20+ // scalars
1921Assert::same ('0 ' , $ dumper ->dump (0 ));
2022Assert::same ('1 ' , $ dumper ->dump (1 ));
2123Assert::same ('0.0 ' , $ dumper ->dump (0.0 ));
@@ -38,16 +40,19 @@ Assert::same(
3840Assert::same ('"\rHello \$" ' , $ dumper ->dump ("\rHello $ " ));
3941Assert::same ("'He \\llo' " , $ dumper ->dump ('He\llo ' ));
4042Assert::same ('\'He\ll \\\\\o \\\'wor \\\\\\\'ld \\\\\'' , $ dumper ->dump ('He\ll \\\o \'wor \\\'ld \\' ));
41- Assert::same ('[] ' , $ dumper ->dump ([]));
4243
43- // internal classes
44+
45+ // literal
4446Assert::same ('[$s] ' , $ dumper ->dump ([new PhpLiteral ('$s ' )]));
4547same ('[
4648 function () {
4749 return 1;
4850 },
4951] ' , $ dumper ->dump ([(new Nette \PhpGenerator \Closure )->setBody ('return 1; ' )]));
5052
53+
54+ // arrays
55+ Assert::same ('[] ' , $ dumper ->dump ([]));
5156Assert::same ('[1, 2, 3] ' , $ dumper ->dump ([1 , 2 , 3 ]));
5257Assert::same ("['a'] " , $ dumper ->dump (['a ' ]));
5358Assert::same ("[2 => 'a'] " , $ dumper ->dump ([2 => 'a ' ]));
@@ -56,19 +61,8 @@ Assert::same("[-2 => 'a', -1 => 'b']", $dumper->dump([-2 => 'a', -1 => 'b']));
5661Assert::same ("[-2 => 'a', 0 => 'b'] " , $ dumper ->dump ([-2 => 'a ' , 0 => 'b ' ]));
5762Assert::same ("[0 => 'a', -2 => 'b', 1 => 'c'] " , $ dumper ->dump (['a ' , -2 => 'b ' , 1 => 'c ' ]));
5863
59- $ dumper ->wrapLength = 100 ;
60- same ("[
61- [
62- 'a',
63- 'loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong',
64- ],
65- ] " , $ dumper ->dump ([['a ' , 'loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong ' ]]));
66-
67- Assert::same (
68- "['a' => 1, 0 => [ \"\\r \" => \"\\r \", 0 => 2], 1 => 3] " ,
69- $ dumper ->dump (['a ' => 1 , ["\r" => "\r" , 2 ], 3 ])
70- );
7164
65+ // stdClass
7266Assert::same (
7367 "(object) [ \n\t'a' => 1, \n\t'b' => 2, \n] " ,
7468 $ dumper ->dump ((object ) ['a ' => 1 , 'b ' => 2 ])
@@ -80,6 +74,7 @@ Assert::same(
8074);
8175
8276
77+ // objects
8378class Test
8479{
8580 public $ a = 1 ;
@@ -121,6 +116,23 @@ Assert::same(
121116Assert::equal (new Test2 , eval ('return ' . $ dumper ->dump (new Test2 ) . '; ' ));
122117
123118
119+ Assert::exception (function () {
120+ $ dumper = new Dumper ;
121+ $ dumper ->dump (new class {
122+ });
123+ }, Nette \InvalidArgumentException::class, 'Cannot dump anonymous class. ' );
124+
125+
126+
127+ // closures
128+ Assert::exception (function () {
129+ $ dumper = new Dumper ;
130+ $ dumper ->dump (function () {});
131+ }, Nette \InvalidArgumentException::class, 'Cannot dump closure. ' );
132+
133+
134+
135+ // serializable
124136class Test3 implements Serializable
125137{
126138 private $ a ;
@@ -140,13 +152,9 @@ class Test3 implements Serializable
140152Assert::same ('unserialize( \'C:5:"Test3":0:{} \') ' , $ dumper ->dump (new Test3 ));
141153Assert::equal (new Test3 , eval ('return ' . $ dumper ->dump (new Test3 ) . '; ' ));
142154
143- Assert::exception (function () {
144- $ dumper = new Dumper ;
145- $ dumper ->dump (function () {});
146- }, Nette \InvalidArgumentException::class, 'Cannot dump closure. ' );
147-
148155
149156
157+ // datetime
150158class TestDateTime extends DateTime
151159{
152160}
@@ -167,25 +175,3 @@ same(
167175]) " ,
168176 $ dumper ->dump (new TestDateTime ('2016-06-22 20:52:43.1234 ' , new DateTimeZone ('Europe/Prague ' )))
169177);
170-
171- Assert::exception (function () {
172- $ dumper = new Dumper ;
173- $ dumper ->dump (new class {
174- });
175- }, Nette \InvalidArgumentException::class, 'Cannot dump anonymous class. ' );
176-
177-
178- Assert::exception (function () {
179- $ rec = [];
180- $ rec [] = &$ rec ;
181- $ dumper = new Dumper ;
182- $ dumper ->dump ($ rec );
183- }, Nette \InvalidArgumentException::class, 'Nesting level too deep or recursive dependency. ' );
184-
185-
186- Assert::exception (function () {
187- $ rec = new stdClass ;
188- $ rec ->x = &$ rec ;
189- $ dumper = new Dumper ;
190- $ dumper ->dump ($ rec );
191- }, Nette \InvalidArgumentException::class, 'Nesting level too deep or recursive dependency. ' );
0 commit comments