mirror of
https://github.com/jikan-me/jikan-rest.git
synced 2025-02-20 11:23:35 +08:00
38 lines
1.3 KiB
PHP
38 lines
1.3 KiB
PHP
<?php
|
|
/** @noinspection PhpIllegalPsrClassPathInspection */
|
|
namespace Tests\Unit;
|
|
|
|
use App\Contracts\DataRequest;
|
|
use App\Contracts\RequestHandler;
|
|
use App\Dto\AnimeSearchCommand;
|
|
use App\Support\DefaultMediator;
|
|
use Tests\TestCase;
|
|
|
|
final class DefaultMediatorTest extends TestCase
|
|
{
|
|
public function testSendShouldReturnErrorResponseIfHandlerClassDoesntExist()
|
|
{
|
|
$mockHandler = \Mockery::mock(RequestHandler::class);
|
|
$mockHandler->allows()->requestClass()->andReturns(AnimeSearchCommand::class);
|
|
$sut = new DefaultMediator($mockHandler);
|
|
|
|
$response = $sut->send(\Mockery::mock(DataRequest::class));
|
|
$this->assertEquals(500, $response->status());
|
|
}
|
|
|
|
public function testSendShouldCallHandleOnHandlerIfFound()
|
|
{
|
|
$mockHandler = \Mockery::mock(RequestHandler::class);
|
|
$mockRequest = \Mockery::mock(DataRequest::class);
|
|
$mockHandler->allows()->requestClass()->andReturns(get_class($mockRequest));
|
|
$mockHandler->expects()->handle($mockRequest)->once()->andReturns(response()->json([
|
|
"message" => "success"
|
|
]));
|
|
|
|
$sut = new DefaultMediator($mockHandler);
|
|
$response = $sut->send($mockRequest);
|
|
$this->assertEquals(200, $response->status());
|
|
$this->assertEquals(json_encode(["message" => "success"]), $response->content());
|
|
}
|
|
}
|