/** * @covers BackBee\MetaData\MetaDataBag::get */ public function testGet() { $bag = new MetaDataBag(); $meta = new MetaData('test'); $bag->add($meta); $this->assertEquals($meta, $bag->get('test')); $this->assertNull($bag->get('unknown')); }
/** * Returns computed metadata from provided $page. * * @param Page|NULL $page * * @return MetaDataBag */ public function resolve(Page $page = null) { if (null === $page || null === ($metadataBag = $page->getMetaData())) { $metadataBag = new MetaDataBag(); } if (!is_array($this->definitions)) { return $metadataBag; } foreach ($this->definitions as $name => $definition) { if (!is_array($definition)) { continue; } if (null === ($metadata = $metadataBag->get($name))) { $metadata = new MetaData($name); $metadataBag->add($metadata); } $this->parseDefinition($definition, $metadata, $page); } return clone $metadataBag; }