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()); }
/** * @param $items * * @dataProvider provideObjectData */ public function testObjectWriting($items) { $stream = fopen("php://memory", "r+"); $writer = new Writer($stream); $writer->enter(Writer::TYPE_OBJECT); foreach ($items as $key => $item) { $writer->write($key, $item); } $writer->leave(); rewind($stream); $encoded = stream_get_contents($stream); fclose($stream); $this->assertEquals($items, json_decode($encoded, true), $encoded); }