function testMapValueObject() { $input = <<<XML <?xml version="1.0"?> <order xmlns="http://sabredav.org/ns"> <id>1234</id> <amount>99.99</amount> <description>black friday deal</description> <status> <id>5</id> <label>processed</label> </status> </order> XML; $ns = 'http://sabredav.org/ns'; $orderService = new \Sabre\Xml\Service(); $orderService->mapValueObject('{' . $ns . '}order', 'Sabre\\Xml\\Order'); $orderService->mapValueObject('{' . $ns . '}status', 'Sabre\\Xml\\OrderStatus'); $orderService->namespaceMap[$ns] = null; $order = $orderService->parse($input); $expected = new Order(); $expected->id = 1234; $expected->amount = 99.98999999999999; $expected->description = 'black friday deal'; $expected->status = new OrderStatus(); $expected->status->id = 5; $expected->status->label = 'processed'; $this->assertEquals($expected, $order); $writtenXml = $orderService->writeValueObject($order); $this->assertEquals($input, $writtenXml); }