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->assertTrue($factory instanceof HomePageFactory); $homePage = $factory($this->container->reveal()); $this->assertTrue($homePage instanceof HomePageAction); } public function testFactoryWithTemplate() { $factory = new HomePageFactory(); $this->container->has(TemplateRendererInterface::class)->willReturn(true); $this->container ->get(TemplateRendererInterface::class) ->willReturn($this->prophesize(TemplateRendererInterface::class)); $this->assertTrue($factory instanceof HomePageFactory); $homePage = $factory($this->container->reveal()); $this->assertTrue($homePage instanceof HomePageAction); } }