container = $this->prophesize(ContainerInterface::class); $router = $this->prophesize(RouterInterface::class); $this->container->get(RouterInterface::class)->willReturn($router); } public function testFactoryWithoutTemplate() { $factory = new HomePageFactory(); $this->container->has(TemplateRendererInterface::class)->willReturn(false); $this->assertInstanceOf(HomePageFactory::class, $factory); $homePage = $factory($this->container->reveal()); $this->assertInstanceOf(HomePageAction::class, $homePage); } public function testFactoryWithTemplate() { $factory = new HomePageFactory(); $this->container->has(TemplateRendererInterface::class)->willReturn(true); $this->container ->get(TemplateRendererInterface::class) ->willReturn($this->prophesize(TemplateRendererInterface::class)); $this->assertInstanceOf(HomePageFactory::class, $factory); $homePage = $factory($this->container->reveal()); $this->assertInstanceOf(HomePageAction::class, $homePage); } }