66use Exception ;
77use PhpMiddleware \Maintenance \MaintenanceMiddleware ;
88use PHPUnit \Framework \TestCase ;
9+ use Psr \Http \Message \ResponseInterface ;
10+ use Psr \Http \Message \ServerRequestInterface ;
11+ use Psr \Http \Server \RequestHandlerInterface ;
912use Zend \Diactoros \Response ;
13+ use Zend \Diactoros \ResponseFactory ;
1014use Zend \Diactoros \ServerRequest ;
15+ use Zend \Diactoros \ServerRequestFactory ;
1116
1217class MaintenanceMiddlewareTest extends TestCase
1318{
19+ private $ request ;
20+ private $ responseFactory ;
21+
22+ protected function setUp ()
23+ {
24+ $ this ->request = new ServerRequest ();
25+ $ this ->responseFactory = new ResponseFactory ();
26+ }
27+
1428 public function testWithoutRetry ()
1529 {
16- $ request = new ServerRequest ();
17- $ response = new Response ();
30+ $ middleware = MaintenanceMiddleware::create ($ this ->responseFactory );
1831
19- $ middleware = MaintenanceMiddleware:: create ( );
32+ $ response = $ middleware -> handle ( $ this -> request );
2033
21- $ next = function () {
22- throw new Exception ('Next should not be called ' );
34+ $ this ->assertSame (503 , $ response ->getStatusCode ());
35+ $ this ->assertSame ('' , $ response ->getHeaderLine ('Retry-After ' ));
36+ }
37+
38+ public function testWithoutRetryAsMiddleware ()
39+ {
40+ $ middleware = MaintenanceMiddleware::create ($ this ->responseFactory );
41+
42+ $ requestHandler = new class implements RequestHandlerInterface {
43+ public function handle (ServerRequestInterface $ request ): ResponseInterface
44+ {
45+ return new Response ();
46+ }
2347 };
2448
25- $ response = $ middleware ->__invoke ( $ request , $ response , $ next );
49+ $ response = $ middleware ->process ( $ this -> request , $ requestHandler );
2650
2751 $ this ->assertSame (503 , $ response ->getStatusCode ());
2852 $ this ->assertSame ('' , $ response ->getHeaderLine ('Retry-After ' ));
2953 }
3054
3155 public function testWithRetryAsSeconds ()
3256 {
33- $ request = new ServerRequest ();
34- $ response = new Response ();
35-
36- $ middleware = MaintenanceMiddleware::createWithRetryAsSeconds (3600 );
57+ $ middleware = MaintenanceMiddleware::createWithRetryAsSeconds (3600 , $ this ->responseFactory );
3758
38- $ next = function () {
39- throw new Exception ('Next should not be called ' );
40- };
41-
42- $ response = $ middleware ->__invoke ($ request , $ response , $ next );
59+ $ response = $ middleware ->handle ($ this ->request );
4360
4461 $ this ->assertSame (503 , $ response ->getStatusCode ());
4562 $ this ->assertSame ('3600 ' , $ response ->getHeaderLine ('Retry-After ' ));
@@ -48,16 +65,9 @@ public function testWithRetryAsSeconds()
4865
4966 public function testWithRetryAsSecondsWithRefresh ()
5067 {
51- $ request = new ServerRequest ();
52- $ response = new Response ();
53-
54- $ middleware = MaintenanceMiddleware::createWithRetryAsSecondsAndRefresh (3600 );
68+ $ middleware = MaintenanceMiddleware::createWithRetryAsSecondsAndRefresh (3600 , $ this ->responseFactory );
5569
56- $ next = function () {
57- throw new Exception ('Next should not be called ' );
58- };
59-
60- $ response = $ middleware ->__invoke ($ request , $ response , $ next );
70+ $ response = $ middleware ->handle ($ this ->request );
6171
6272 $ this ->assertSame (503 , $ response ->getStatusCode ());
6373 $ this ->assertSame ('3600 ' , $ response ->getHeaderLine ('Retry-After ' ));
@@ -66,18 +76,11 @@ public function testWithRetryAsSecondsWithRefresh()
6676
6777 public function testWithRetryAsDatetime ()
6878 {
69- $ request = new ServerRequest ();
70- $ response = new Response ();
71-
7279 $ date = DateTime::createFromFormat ('Y-m-d H:i:s ' , '2015-11-30 11:12:13 ' );
7380
74- $ middleware = MaintenanceMiddleware::createWithRetryAsDateTime ($ date );
81+ $ middleware = MaintenanceMiddleware::createWithRetryAsDateTime ($ date, $ this -> responseFactory );
7582
76- $ next = function () {
77- throw new Exception ('Next should not be called ' );
78- };
79-
80- $ response = $ middleware ->__invoke ($ request , $ response , $ next );
83+ $ response = $ middleware ->handle ($ this ->request );
8184
8285 $ this ->assertSame (503 , $ response ->getStatusCode ());
8386 $ this ->assertSame ('Mon, 30 Nov 2015 11:12:13 +0000 ' , $ response ->getHeaderLine ('Retry-After ' ));
@@ -86,18 +89,11 @@ public function testWithRetryAsDatetime()
8689
8790 public function testWithRetryAsDatetimeWithRefresh ()
8891 {
89- $ request = new ServerRequest ();
90- $ response = new Response ();
91-
9292 $ date = DateTime::createFromFormat ('Y-m-d H:i:s ' , '2015-11-30 11:12:13 ' );
9393
94- $ middleware = MaintenanceMiddleware::createWithRetryAsDateTimeAndRefresh ($ date );
95-
96- $ next = function () {
97- throw new Exception ('Next should not be called ' );
98- };
94+ $ middleware = MaintenanceMiddleware::createWithRetryAsDateTimeAndRefresh ($ date , $ this ->responseFactory );
9995
100- $ response = $ middleware ->__invoke ( $ request, $ response , $ next );
96+ $ response = $ middleware ->handle ( $ this -> request );
10197
10298 $ this ->assertSame (503 , $ response ->getStatusCode ());
10399 $ this ->assertSame ('Mon, 30 Nov 2015 11:12:13 +0000 ' , $ response ->getHeaderLine ('Retry-After ' ));
0 commit comments