Example #1
0
 /**
  * @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'));
 }
Example #2
0
 /**
  * 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;
 }