Example #1
0
 public function testLoadMetadata()
 {
     $version = '1.1';
     $requestType = 'rest';
     $entityClass = 'Test\\Class';
     $configExtras = [new TestConfigSection('section1'), new TestConfigSection('section2')];
     $config = ConfigUtil::getInitialConfig();
     $metadata = new EntityMetadata();
     $metadataExtras = [new TestMetadataExtra('extra1')];
     $this->context->setVersion($version);
     $this->context->setRequestType($requestType);
     $this->context->setConfigExtras($configExtras);
     $this->context->setMetadataExtras($metadataExtras);
     $this->context->setClassName($entityClass);
     $this->configProvider->expects($this->once())->method('getConfig')->with($entityClass, $version, [$requestType], $configExtras)->willReturn([ConfigUtil::DEFINITION => $config]);
     $this->metadataProvider->expects($this->once())->method('getMetadata')->with($entityClass, $version, [$requestType], $metadataExtras, $config)->willReturn($metadata);
     // test that metadata are not loaded yet
     $this->assertFalse($this->context->hasMetadata());
     $this->assertSame($metadata, $this->context->getMetadata());
     // load metadata
     $this->assertTrue($this->context->hasMetadata());
     $this->assertTrue($this->context->has(Context::METADATA));
     $this->assertSame($metadata, $this->context->get(Context::METADATA));
     $this->assertEquals($config, $this->context->getConfig());
     // test that metadata are loaded only once
     $this->assertSame($metadata, $this->context->getMetadata());
 }