Example #1
0
 public function testMetadataExtras()
 {
     $this->assertSame([], $this->context->getMetadataExtras());
     $this->assertNull($this->context->get(Context::METADATA_EXTRAS));
     $metadataExtras = [new TestMetadataExtra('test')];
     $this->context->setMetadataExtras($metadataExtras);
     $this->assertEquals($metadataExtras, $this->context->getMetadataExtras());
     $this->assertEquals($metadataExtras, $this->context->get(Context::METADATA_EXTRAS));
     $this->assertTrue($this->context->hasMetadataExtra('test'));
     $this->assertFalse($this->context->hasMetadataExtra('another'));
     $anotherMetadataExtra = new TestMetadataExtra('another');
     $metadataExtras[] = $anotherMetadataExtra;
     $this->context->addMetadataExtra($anotherMetadataExtra);
     $this->assertEquals($metadataExtras, $this->context->getMetadataExtras());
     $this->assertEquals($metadataExtras, $this->context->get(Context::METADATA_EXTRAS));
     unset($metadataExtras[0]);
     $metadataExtras = array_values($metadataExtras);
     $this->context->removeMetadataExtra('test');
     $this->assertEquals($metadataExtras, $this->context->getMetadataExtras());
     $this->assertEquals($metadataExtras, $this->context->get(Context::METADATA_EXTRAS));
     // test remove of non existing extra
     $this->context->removeMetadataExtra('test');
     $this->assertEquals($metadataExtras, $this->context->getMetadataExtras());
     $this->assertEquals($metadataExtras, $this->context->get(Context::METADATA_EXTRAS));
     $this->context->setMetadataExtras([]);
     $this->assertSame([], $this->context->getMetadataExtras());
     $this->assertNull($this->context->get(Context::METADATA_EXTRAS));
 }