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()); }
/** * */ 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); }