Author: Teoh Han Hui (teohhanhui@gmail.com)
Inheritance: implements ApiPlatform\Core\Metadata\Property\Factory\PropertyMetadataFactoryInterface
 public function testCreateWithGetCacheItemThrowsCacheException()
 {
     $decoratedPropertyMetadataFactory = $this->prophesize(PropertyMetadataFactoryInterface::class);
     $decoratedPropertyMetadataFactory->create(Dummy::class, 'dummy', [])->willReturn(new PropertyMetadata(null, 'A dummy', true, true, null, null, false, false))->shouldBeCalled();
     $cacheException = $this->prophesize(CacheException::class);
     $cacheException->willExtend(\Exception::class);
     $cacheItemPool = $this->prophesize(CacheItemPoolInterface::class);
     $cacheItemPool->getItem($this->generateCacheKey())->willThrow($cacheException->reveal())->shouldBeCalled();
     $cachedPropertyMetadataFactory = new CachedPropertyMetadataFactory($cacheItemPool->reveal(), $decoratedPropertyMetadataFactory->reveal());
     $resultedPropertyMetadata = $cachedPropertyMetadataFactory->create(Dummy::class, 'dummy');
     $this->assertInstanceOf(PropertyMetadata::class, $resultedPropertyMetadata);
     $this->assertEquals(new PropertyMetadata(null, 'A dummy', true, true, null, null, false, false), $resultedPropertyMetadata);
 }