converter = new EntityRevisionParamConverter( $this->prophesize(EntityTypeManagerInterface::class)->reveal(), $this->prophesize(EntityRepositoryInterface::class)->reveal() ); } protected function getTestRoute() { $route = new Route('/test/{test_revision}'); $route->setOption('parameters', [ 'test_revision' => [ 'type' => 'entity_revision:test', ], ]); return $route; } /** * @covers ::applies */ public function testNonApplyingRoute() { $route = new Route('/test'); $this->assertFalse($this->converter->applies([], 'test_revision', $route)); } /** * @covers ::applies */ public function testApplyingRoute() { $route = $this->getTestRoute(); $this->assertTrue($this->converter->applies($route->getOption('parameters')['test_revision'], 'test_revision', $route)); } /** * @covers ::convert */ public function testConvert() { $entity = $this->prophesize(EntityInterface::class)->reveal(); $storage = $this->prophesize(EntityStorageInterface::class); $storage->loadRevision(1)->willReturn($entity); $entity_type_manager = $this->prophesize(EntityTypeManagerInterface::class); $entity_type_manager->getStorage('test')->willReturn($storage->reveal()); $entity_repository = $this->prophesize(EntityRepositoryInterface::class); $entity_repository->getTranslationFromContext($entity)->willReturn($entity); $converter = new EntityRevisionParamConverter($entity_type_manager->reveal(), $entity_repository->reveal()); $route = $this->getTestRoute(); $result = $converter->convert(1, $route->getOption('parameters')['test_revision'], 'test_revision', ['test_revision' => 1]); $this->assertSame($entity, $result); } }