public function testCreateWithItemNotHit()
{
$resourceNameCollection = new ResourceNameCollection([Dummy::class]);
$decoratedResourceNameCollectionFactory = $this->prophesize(ResourceNameCollectionFactoryInterface::class);
$decoratedResourceNameCollectionFactory->create()->willReturn($resourceNameCollection)->shouldBeCalled();
$cacheItem = $this->prophesize(CacheItemInterface::class);
$cacheItem->isHit()->willReturn(false)->shouldBeCalled();
$cacheItem->set($resourceNameCollection)->willReturn($cacheItem->reveal())->shouldBeCalled();
$cacheItemPool = $this->prophesize(CacheItemPoolInterface::class);
$cacheItemPool->getItem(CachedResourceNameCollectionFactory::CACHE_KEY)->willReturn($cacheItem->reveal())->shouldBeCalled();
$cacheItemPool->save($cacheItem->reveal())->willReturn(true)->shouldBeCalled();
$cachedResourceNameCollectionFactory = new CachedResourceNameCollectionFactory($cacheItemPool->reveal(), $decoratedResourceNameCollectionFactory->reveal());
$resultedResourceNameCollection = $cachedResourceNameCollectionFactory->create();
$this->assertInstanceOf(ResourceNameCollection::class, $resultedResourceNameCollection);
$this->assertEquals(new ResourceNameCollection([Dummy::class]), $resultedResourceNameCollection);
}