public function testGetPageByRequestWithAttributesAlready()
 {
     $programId = 'foo';
     $pageName = '/foo';
     $request = Request::create('/foo/bar');
     $request->attributes->set('_one_hydra_name', $pageName);
     $request->attributes->set('_one_hydra_program', $programId);
     $pageEntity = $this->prophesize(OneHydraPageInterface::class);
     $pageStorage = $this->prophesize(PageStorageInterface::class);
     // Should be called just once because of the local cache!
     $pageStorage->getPageEntity($pageName, $programId)->willReturn($pageEntity)->shouldBeCalledTimes(1);
     $pageTransformStrategy = $this->prophesize(PageTransformStrategyInterface::class);
     $pageTransformStrategy->getLookupProgramId($request)->shouldNotBeCalled();
     $pageTransformStrategy->getLookupPageName($request)->shouldNotBeCalled();
     $pageManager = new PageManager();
     $pageManager->setPageStorage($pageStorage->reveal());
     $pageManager->setPageTransformStrategy($pageTransformStrategy->reveal());
     $actualPageEntity1 = $pageManager->getPageByRequest($request);
     $actualPageEntity2 = $pageManager->getPageByRequest($request);
     $this->assertEquals($pageEntity->reveal(), $actualPageEntity1);
     $this->assertEquals($pageEntity->reveal(), $actualPageEntity2);
     $this->assertEquals($pageName, $request->attributes->get('_one_hydra_name'));
     $this->assertEquals($programId, $request->attributes->get('_one_hydra_program'));
 }