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)); }