Skip to content

Commit 2335ac8

Browse files
committed
ErrorTrait
1 parent f650838 commit 2335ac8

File tree

3 files changed

+38
-3
lines changed

3 files changed

+38
-3
lines changed

src/ErrorTrait.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php declare(strict_types=1);
2+
3+
namespace ApiClients\Foundation\Middleware;
4+
5+
use Throwable;
6+
use React\Promise\CancellablePromiseInterface;
7+
8+
use function React\Promise\reject;
9+
10+
trait ErrorTrait
11+
{
12+
/**
13+
* @param Throwable $throwable
14+
* @param array $options
15+
* @return CancellablePromiseInterface
16+
*/
17+
public function error(Throwable $throwable, array $options = []): CancellablePromiseInterface
18+
{
19+
return reject($throwable);
20+
}
21+
}

tests/DummyMiddleware.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
namespace ApiClients\Tests\Foundation\Middleware;
55

66
use ApiClients\Foundation\Middleware\DefaultPriorityTrait;
7+
use ApiClients\Foundation\Middleware\ErrorTrait;
78
use ApiClients\Foundation\Middleware\MiddlewareInterface;
89
use ApiClients\Foundation\Middleware\PostTrait;
910
use ApiClients\Foundation\Middleware\PreTrait;
@@ -13,4 +14,5 @@ class DummyMiddleware implements MiddlewareInterface
1314
use DefaultPriorityTrait;
1415
use PreTrait;
1516
use PostTrait;
17+
use ErrorTrait;
1618
}

tests/DummyMiddlewareTest.php

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
<?php
2-
declare(strict_types=1);
1+
<?php declare(strict_types=1);
32

43
namespace ApiClients\Tests\Foundation\Middleware;
54

65
use ApiClients\Tools\TestUtilities\TestCase;
7-
use function Clue\React\Block\await;
6+
use Exception;
87
use Psr\Http\Message\RequestInterface;
98
use Psr\Http\Message\ResponseInterface;
109
use React\EventLoop\Factory;
10+
use function Clue\React\Block\await;
1111

1212
class DummyMiddlewareTest extends TestCase
1313
{
@@ -45,4 +45,16 @@ public function testPost()
4545
)
4646
);
4747
}
48+
49+
public function testError()
50+
{
51+
$middleware = new DummyMiddleware();
52+
$exception = new Exception('Throwable or anything extending it');
53+
self::expectException(Exception::class);
54+
self::expectExceptionMessage('Throwable or anything extending it');
55+
await(
56+
$middleware->error($exception),
57+
Factory::create()
58+
);
59+
}
4860
}

0 commit comments

Comments
 (0)