2
2
3
3
namespace ApiClients \Tests \Foundation \Middleware ;
4
4
5
- use ApiClients \Foundation \Middleware \MiddlewareRunner ;
6
5
use ApiClients \Foundation \Middleware \MiddlewareInterface ;
6
+ use ApiClients \Foundation \Middleware \MiddlewareRunner ;
7
7
use ApiClients \Tools \TestUtilities \TestCase ;
8
- use function Clue \ React \ Block \ await ;
8
+ use Exception ;
9
9
use GuzzleHttp \Psr7 \Request ;
10
10
use GuzzleHttp \Psr7 \Response ;
11
11
use Phake ;
12
+ use function Clue \React \Block \await ;
13
+ use function React \Promise \reject ;
12
14
use function React \Promise \resolve ;
13
15
14
16
class MiddlewareRunnerTest extends TestCase
@@ -17,22 +19,26 @@ public function testAll()
17
19
{
18
20
$ request = new Request ('GET ' , 'https://example.com/ ' );
19
21
$ response = new Response (200 );
22
+ $ exception = new Exception ();
20
23
$ options = [];
21
24
22
25
$ middlewareOne = Phake::mock (MiddlewareInterface::class);
23
26
Phake::when ($ middlewareOne )->priority ()->thenReturn (1000 );
24
27
Phake::when ($ middlewareOne )->pre ($ request , $ options )->thenReturn (resolve ($ request ));
25
28
Phake::when ($ middlewareOne )->post ($ response , $ options )->thenReturn (resolve ($ response ));
29
+ Phake::when ($ middlewareOne )->error ($ exception , $ options )->thenReturn (reject ($ exception ));
26
30
27
31
$ middlewareTwo = Phake::mock (MiddlewareInterface::class);
28
32
Phake::when ($ middlewareTwo )->priority ()->thenReturn (500 );
29
33
Phake::when ($ middlewareTwo )->pre ($ request , $ options )->thenReturn (resolve ($ request ));
30
34
Phake::when ($ middlewareTwo )->post ($ response , $ options )->thenReturn (resolve ($ response ));
35
+ Phake::when ($ middlewareTwo )->error ($ exception , $ options )->thenReturn (reject ($ exception ));
31
36
32
37
$ middlewareThree = Phake::mock (MiddlewareInterface::class);
33
38
Phake::when ($ middlewareThree )->priority ()->thenReturn (0 );
34
39
Phake::when ($ middlewareThree )->pre ($ request , $ options )->thenReturn (resolve ($ request ));
35
40
Phake::when ($ middlewareThree )->post ($ response , $ options )->thenReturn (resolve ($ response ));
41
+ Phake::when ($ middlewareThree )->error ($ exception , $ options )->thenReturn (reject ($ exception ));
36
42
37
43
$ args = [
38
44
$ options ,
@@ -44,14 +50,18 @@ public function testAll()
44
50
$ executioner = new MiddlewareRunner (...$ args );
45
51
$ executioner ->pre ($ request );
46
52
$ executioner ->post ($ response );
53
+ $ executioner ->error ($ exception );
47
54
48
55
Phake::inOrder (
49
56
Phake::verify ($ middlewareOne )->pre ($ request , $ options ),
50
57
Phake::verify ($ middlewareTwo )->pre ($ request , $ options ),
51
58
Phake::verify ($ middlewareThree )->pre ($ request , $ options ),
52
59
Phake::verify ($ middlewareThree )->post ($ response , $ options ),
53
60
Phake::verify ($ middlewareTwo )->post ($ response , $ options ),
54
- Phake::verify ($ middlewareOne )->post ($ response , $ options )
61
+ Phake::verify ($ middlewareOne )->post ($ response , $ options ),
62
+ Phake::verify ($ middlewareOne )->error ($ exception , $ options ),
63
+ Phake::verify ($ middlewareTwo )->error ($ exception , $ options ),
64
+ Phake::verify ($ middlewareThree )->error ($ exception , $ options )
55
65
);
56
66
}
57
67
}
0 commit comments