public function testWriting()
 {
     $catalog = $this->getData();
     $filename = new Stream();
     $fh = fopen($filename, "w");
     $writer = new Writer($fh);
     $writer->enter(Writer::TYPE_OBJECT);
     // enter root object
     $writer->write("catalog", $catalog['id']);
     // write key-value entry
     $writer->enter("items", Writer::TYPE_ARRAY);
     // enter items array
     foreach ($catalog['products'] as $product) {
         $writer->write(null, array('sku' => $product['sku'], 'name' => $product['name']));
     }
     $writer->leave();
     // leave items array
     $writer->leave();
     // leave root object
     fclose($fh);
     $this->assertEquals($this->getJSON(), $filename->getContent());
 }
Beispiel #2
0
 /**
  *
  */
 public function testBrackets()
 {
     $stream = fopen("php://memory", "r+");
     $writer = new Writer($stream);
     $writer->enter(Writer::TYPE_OBJECT)->enter("key", Writer::TYPE_ARRAY)->enter(Writer::TYPE_OBJECT)->enter("inner", Writer::TYPE_ARRAY)->enter()->leave()->leave()->leave()->leave()->leave()->leave();
     rewind($stream);
     $encoded = stream_get_contents($stream);
     fclose($stream);
     $this->assertEquals(array("key" => array(array('inner' => array(array())))), json_decode($encoded, true), $encoded);
 }