public function testXML()
{
$fixture = <<<'EOF'
{
"_links":{
"self":{
"href":"/orders"
},
"next":{
"href":"/orders?page=2"
},
"search":{
"href":"/orders?id={order_id}"
}
},
"_embedded":{
"order":[
{
"_links":{
"self":{
"href":"/orders/123"
},
"customer":{
"href":"/customer/bob",
"title":"Bob Jones <[email protected]>"
}
},
"total":"30.00",
"currency":"USD",
"status":"shipped",
"placed":"2011-01-16",
"_embedded":{
"basket":{
"_links":{
"self":{
"href":"/orders/123/basket"
}
},
"items":[
{
"sku":"ABC123",
"quantity":2,
"price":"9.50"
},
{
"sku":"GFZ111",
"quantity":1,
"price":"11.00"
}
]
}
}
},
{
"_links":{
"self":{
"href":"/orders/124"
},
"customer":{
"href":"/customer/jen",
"title":"Jen Harris <[email protected]>"
}
},
"total":"20.00",
"currency":"USD",
"status":"processing",
"placed":"2011-01-16",
"_embedded":{
"basket":{
"_links":{
"self":{
"href":"/orders/124/basket"
}
},
"items":[
{
"sku":"KLM222",
"quantity":1,
"price":"9.00"
},
{
"sku":"HHI50",
"quantity":1,
"price":"11.00"
}
]
}
}
}
]
}
}
EOF;
$parentRes = new Resource('/orders');
$parentRes->setLink(new Link('/orders?page=2', 'next'))->setLink(new Link('/orders?id={order_id}', 'search'));
$data = array('total' => '30.00', 'currency' => 'USD', 'status' => 'shipped', 'placed' => '2011-01-16');
$embedded1 = new Resource('/orders/123');
$embedded1->setData($data)->setLink(new Link('/customer/bob', 'customer', 'Bob Jones <[email protected]>'));
$basketItems = array(array('sku' => 'ABC123', 'quantity' => 2, 'price' => '9.50'), array('sku' => 'GFZ111', 'quantity' => 1, 'price' => '11.00'));
$basket = new Resource('/orders/123/basket');
$basket->setData('items', $basketItems);
$embedded1->setEmbedded('basket', $basket, true);
//////////////////////////////////////////////
$data = array('total' => '20.00', 'currency' => 'USD', 'status' => 'processing', 'placed' => '2011-01-16');
$embedded2 = new Resource('/orders/124');
$embedded2->setData($data)->setLink(new Link('/customer/jen', 'customer', 'Jen Harris <[email protected]>'));
/////////////////////////////////////
$basketItems = array(array('sku' => 'KLM222', 'quantity' => 1, 'price' => "9.00"), array('sku' => 'HHI50', 'quantity' => 1, 'price' => "11.00"));
$basket2 = new Resource('/orders/124/basket');
$basket2->setData('items', $basketItems);
$embedded2->setEmbedded('basket', $basket2, true);
$parentRes->setEmbedded('order', $embedded1)->setEmbedded('order', $embedded2);
/* @export as XML
*
* @need a test for this eventually;
*/
$xml = $parentRes->getXML()->asXML();
$this->assertEquals(json_decode($fixture), json_decode((string) $parentRes));
}