Hal\Tests\LinkTest::testXML PHP Method

testXML() public method

public testXML ( )
    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));
    }