/** * Populates the given resource with the values in the form; overwriting any existing items. * * @param \Hal\Resource $resource * @param FormInterface $form * * @return void */ public function populateResourceWithForm(Resource $resource, FormInterface $form) { $formData = $form->getData(); $resource->setData(array('username' => $formData['username'], 'email' => $formData['email'])); }
public function testBuild() { $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 <*****@*****.**>')); $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 <*****@*****.**>')); ///////////////////////////////////// $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); $actual = json_decode($parentRes); $JSON = <<<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 <*****@*****.**>" } }, "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 } ] } } },{ "_links": { "self": { "href": "/orders/124" }, "customer": { "href": "/customer/jen", "title": "Jen Harris <*****@*****.**>" } }, "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; $expected = json_decode($JSON); $this->assertEquals($expected, $actual); }