/** * @covers BackBee\NestedNode\Page::setMetaData */ public function testSetMetaData() { $meta = new MetaDataBag(); $this->assertEquals($this->page, $this->page->setMetaData($meta)); $this->assertEquals($meta, $this->page->getMetaData()); $this->assertEquals($this->page, $this->page->setMetaData(null)); $this->assertNull($this->page->getMetaData()); }
/** * Update page's metadatas. * * @param Page $page the page we want to update its metadatas * @param Request $request * * @return Symfony\Component\HttpFoundation\Response * * @Rest\ParamConverter(name="page", class="BackBee\NestedNode\Page") */ public function putMetadataAction(Page $page, Request $request) { $metadatas = $page->getMetaData(); foreach ($request->request->all() as $name => $attributes) { if ($metadatas->has($name)) { foreach ($attributes as $attr_name => $attr_value) { if ($attr_value !== $metadatas->get($name)->getAttribute($attr_name)) { $metadatas->get($name)->setAttribute($attr_name, $attr_value); } } } } $page->setMetaData($metadatas->compute($page)); $this->getApplication()->getEntityManager()->flush($page); return $this->createJsonResponse(null, 204); }