@@ -206,25 +206,6 @@ public function testInlineLevel()
206206 $ this ->assertEquals ($ expected , $ this ->dumper ->dump ($ this ->array , 10 ), '->dump() takes an inline level argument ' );
207207 }
208208
209- public function testArrayObjectAsMapNotInLined ()
210- {
211- $ deep = new \ArrayObject (array ('deep1 ' => 'd ' , 'deep2 ' => 'e ' ));
212- $ inner = new \ArrayObject (array ('inner1 ' => 'b ' , 'inner2 ' => 'c ' , 'inner3 ' => $ deep ));
213- $ outer = new \ArrayObject (array ('outer1 ' => 'a ' , 'outer1 ' => $ inner ));
214-
215- $ yaml = $ this ->dumper ->dump ($ outer , 2 , 0 , Yaml::DUMP_OBJECT_AS_MAP );
216-
217- $ expected = <<<YAML
218- outer1: a
219- outer2:
220- inner1: b
221- inner2: c
222- inner3: { deep1: d, deep2: e }
223-
224- YAML ;
225- $ this ->assertEquals ($ expected , $ yaml );
226- }
227-
228209 public function testObjectSupportEnabled ()
229210 {
230211 $ dump = $ this ->dumper ->dump (array ('foo ' => new A (), 'bar ' => 1 ), 0 , 0 , Yaml::DUMP_OBJECT );
@@ -352,6 +333,93 @@ public function objectAsMapProvider()
352333 return $ tests ;
353334 }
354335
336+ public function testDumpingArrayObjectInstancesRespectsInlineLevel ()
337+ {
338+ $ deep = new \ArrayObject (array ('deep1 ' => 'd ' , 'deep2 ' => 'e ' ));
339+ $ inner = new \ArrayObject (array ('inner1 ' => 'b ' , 'inner2 ' => 'c ' , 'inner3 ' => $ deep ));
340+ $ outer = new \ArrayObject (array ('outer1 ' => 'a ' , 'outer2 ' => $ inner ));
341+
342+ $ yaml = $ this ->dumper ->dump ($ outer , 2 , 0 , Yaml::DUMP_OBJECT_AS_MAP );
343+
344+ $ expected = <<<YAML
345+ outer1: a
346+ outer2:
347+ inner1: b
348+ inner2: c
349+ inner3: { deep1: d, deep2: e }
350+
351+ YAML ;
352+ $ this ->assertSame ($ expected , $ yaml );
353+ }
354+
355+ public function testDumpingArrayObjectInstancesWithNumericKeysInlined ()
356+ {
357+ $ deep = new \ArrayObject (array ('d ' , 'e ' ));
358+ $ inner = new \ArrayObject (array ('b ' , 'c ' , $ deep ));
359+ $ outer = new \ArrayObject (array ('a ' , $ inner ));
360+
361+ $ yaml = $ this ->dumper ->dump ($ outer , 0 , 0 , Yaml::DUMP_OBJECT_AS_MAP );
362+ $ expected = <<<YAML
363+ { 0: a, 1: { 0: b, 1: c, 2: { 0: d, 1: e } } }
364+ YAML ;
365+ $ this ->assertSame ($ expected , $ yaml );
366+ }
367+
368+ public function testDumpingArrayObjectInstancesWithNumericKeysRespectsInlineLevel ()
369+ {
370+ $ deep = new \ArrayObject (array ('d ' , 'e ' ));
371+ $ inner = new \ArrayObject (array ('b ' , 'c ' , $ deep ));
372+ $ outer = new \ArrayObject (array ('a ' , $ inner ));
373+ $ yaml = $ this ->dumper ->dump ($ outer , 2 , 0 , Yaml::DUMP_OBJECT_AS_MAP );
374+ $ expected = <<<YAML
375+ 0: a
376+ 1:
377+ 0: b
378+ 1: c
379+ 2: { 0: d, 1: e }
380+
381+ YAML ;
382+ $ this ->assertEquals ($ expected , $ yaml );
383+ }
384+
385+ public function testDumpEmptyArrayObjectInstanceAsMap ()
386+ {
387+ $ this ->assertSame ('{ } ' , $ this ->dumper ->dump (new \ArrayObject (), 2 , 0 , Yaml::DUMP_OBJECT_AS_MAP ));
388+ }
389+
390+ public function testDumpEmptyStdClassInstanceAsMap ()
391+ {
392+ $ this ->assertSame ('{ } ' , $ this ->dumper ->dump (new \stdClass (), 2 , 0 , Yaml::DUMP_OBJECT_AS_MAP ));
393+ }
394+
395+ public function testDumpingStdClassInstancesRespectsInlineLevel ()
396+ {
397+ $ deep = new \stdClass ();
398+ $ deep ->deep1 = 'd ' ;
399+ $ deep ->deep2 = 'e ' ;
400+
401+ $ inner = new \stdClass ();
402+ $ inner ->inner1 = 'b ' ;
403+ $ inner ->inner2 = 'c ' ;
404+ $ inner ->inner3 = $ deep ;
405+
406+ $ outer = new \stdClass ();
407+ $ outer ->outer1 = 'a ' ;
408+ $ outer ->outer2 = $ inner ;
409+
410+ $ yaml = $ this ->dumper ->dump ($ outer , 2 , 0 , Yaml::DUMP_OBJECT_AS_MAP );
411+
412+ $ expected = <<<YAML
413+ outer1: a
414+ outer2:
415+ inner1: b
416+ inner2: c
417+ inner3: { deep1: d, deep2: e }
418+
419+ YAML ;
420+ $ this ->assertSame ($ expected , $ yaml );
421+ }
422+
355423 public function testDumpMultiLineStringAsScalarBlock ()
356424 {
357425 $ data = array (
0 commit comments