public function testCreateWithGetCacheItemThrowsCacheException() { $decoratedResourceMetadataFactory = $this->prophesize(ResourceMetadataFactoryInterface::class); $decoratedResourceMetadataFactory->create(Dummy::class)->willReturn(new ResourceMetadata(null, 'Dummy.'))->shouldBeCalled(); $cacheException = $this->prophesize(CacheException::class); $cacheException->willExtend(\Exception::class); $cacheItemPool = $this->prophesize(CacheItemPoolInterface::class); $cacheItemPool->getItem($this->generateCacheKey())->willThrow($cacheException->reveal())->shouldBeCalled(); $cachedResourceMetadataFactory = new CachedResourceMetadataFactory($cacheItemPool->reveal(), $decoratedResourceMetadataFactory->reveal()); $resultedResourceMetadata = $cachedResourceMetadataFactory->create(Dummy::class); $this->assertInstanceOf(ResourceMetadata::class, $resultedResourceMetadata); $this->assertEquals(new ResourceMetadata(null, 'Dummy.'), $resultedResourceMetadata); }