53 lines
1.6 KiB
PHP
53 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace AppTest\Action;
|
|
|
|
use App\Action\HomePageAction;
|
|
use Interop\Http\ServerMiddleware\DelegateInterface;
|
|
use PHPUnit\Framework\TestCase;
|
|
use Prophecy\Argument;
|
|
use Psr\Http\Message\ServerRequestInterface;
|
|
use Zend\Diactoros\Response\HtmlResponse;
|
|
use Zend\Diactoros\Response\JsonResponse;
|
|
use Zend\Expressive\Router\RouterInterface;
|
|
use Zend\Expressive\Template\TemplateRendererInterface;
|
|
|
|
class HomePageActionTest extends TestCase
|
|
{
|
|
/** @var RouterInterface */
|
|
protected $router;
|
|
|
|
protected function setUp()
|
|
{
|
|
$this->router = $this->prophesize(RouterInterface::class);
|
|
}
|
|
|
|
public function testReturnsJsonResponseWhenNoTemplateRendererProvided()
|
|
{
|
|
$homePage = new HomePageAction($this->router->reveal(), null);
|
|
$response = $homePage->process(
|
|
$this->prophesize(ServerRequestInterface::class)->reveal(),
|
|
$this->prophesize(DelegateInterface::class)->reveal()
|
|
);
|
|
|
|
$this->assertInstanceOf(JsonResponse::class, $response);
|
|
}
|
|
|
|
public function testReturnsHtmlResponseWhenTemplateRendererProvided()
|
|
{
|
|
$renderer = $this->prophesize(TemplateRendererInterface::class);
|
|
$renderer
|
|
->render('app::home-page', Argument::type('array'))
|
|
->willReturn('');
|
|
|
|
$homePage = new HomePageAction($this->router->reveal(), $renderer->reveal());
|
|
|
|
$response = $homePage->process(
|
|
$this->prophesize(ServerRequestInterface::class)->reveal(),
|
|
$this->prophesize(DelegateInterface::class)->reveal()
|
|
);
|
|
|
|
$this->assertInstanceOf(HtmlResponse::class, $response);
|
|
}
|
|
}
|