$input BLA; $reader = new Reader(); $reader->elementMap = [ '{http://sabredav.org/ns}fragment' => 'Sabre\\Xml\\Element\\XmlFragment', ]; $reader->xml($input); $output = $reader->parse(); $this->assertEquals([ 'name' => '{http://sabredav.org/ns}root', 'value' => [ [ 'name' => '{http://sabredav.org/ns}fragment', 'value' => new XmlFragment($expected), 'attributes' => [], ], ], 'attributes' => [], ], $output); } /** * Data provider for serialize and deserialize tests. * * Returns three items per test: * * 1. Input data for the reader. * 2. Expected output for XmlFragment deserializer * 3. Expected output after serializing that value again. * * If 3 is not set, use 1 for 3. * * @return void */ function xmlProvider() { return [ [ 'hello', 'hello', ], [ 'hello', 'hello' ], [ 'hello', 'hello' ], [ 'hello', 'hello' ], [ 'hello', 'hello', 'hello', ], [ 'hello', 'hello', 'hello', ], [ 'hello', 'hello', 'hello', ], [ 'hello', 'hello', 'hello', ], [ '', '', '', ], [ '', '', '', ], ]; } /** * @dataProvider xmlProvider */ function testSerialize($expectedFallback, $input, $expected = null) { if (is_null($expected)) { $expected = $expectedFallback; } $writer = new Writer(); $writer->namespaceMap = [ 'http://sabredav.org/ns' => null ]; $writer->openMemory(); $writer->startDocument('1.0'); //$writer->setIndent(true); $writer->write([ '{http://sabredav.org/ns}root' => [ '{http://sabredav.org/ns}fragment' => new XmlFragment($input), ], ]); $output = $writer->outputMemory(); $expected = << $expected XML; $this->assertEquals($expected, $output); } }