Passed
Push — master ( aac959...f67e8c )
by Anatoly
01:26
created

HelpersInjectTest.php$1 ➔ process()   A

Complexity

Conditions 2

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Sunrise\Http\Router\Tests;
4
5
use Psr\Http\Message\ResponseInterface;
6
use Psr\Http\Message\ServerRequestInterface;
7
use Psr\Http\Server\MiddlewareInterface;
8
use Psr\Http\Server\RequestHandlerInterface;
9
use Sunrise\Http\Message\ResponseFactory;
10
use Sunrise\Http\Router\Route;
11
use Sunrise\Http\Router\RouteInterface;
12
13
trait HelpersInjectTest
14
{
15
	public function routeActionFoo(ServerRequestInterface $request, ResponseInterface $response) : ResponseInterface
16
	{
17
		return $response
18
		->withAddedHeader('x-route', 'foo')
19
		->withAddedHeader('x-queue', 'route-foo');
20
	}
21
22
	public function routeActionBar(ServerRequestInterface $request, ResponseInterface $response) : ResponseInterface
23
	{
24
		return $response
25
		->withAddedHeader('x-route', 'bar')
26
		->withAddedHeader('x-queue', 'route-bar');
27
	}
28
29
	public function routeActionBaz(ServerRequestInterface $request, ResponseInterface $response) : ResponseInterface
30
	{
31
		return $response
32
		->withAddedHeader('x-route', 'baz')
33
		->withAddedHeader('x-queue', 'route-baz');
34
	}
35
36
	public function routeActionQux(ServerRequestInterface $request, ResponseInterface $response) : ResponseInterface
37
	{
38
		return $response
39
		->withAddedHeader('x-route', 'qux')
40
		->withAddedHeader('x-queue', 'route-qux');
41
	}
42
43
	public function getRouteActionFoo() : callable
44
	{
45
		return [$this, 'routeActionFoo'];
46
	}
47
48
	public function getRouteActionBar() : callable
49
	{
50
		return [$this, 'routeActionBar'];
51
	}
52
53
	public function getRouteActionBaz() : callable
54
	{
55
		return [$this, 'routeActionBaz'];
56
	}
57
58
	public function getRouteActionQux() : callable
59
	{
60
		return [$this, 'routeActionQux'];
61
	}
62
63
	public function getRouteFoo() : RouteInterface
64
	{
65
		return new Route('foo', '/foo', $this->getRouteActionFoo());
66
	}
67
68
	public function getRouteBar() : RouteInterface
69
	{
70
		return new Route('bar', '/bar', $this->getRouteActionBar());
71
	}
72
73
	public function getRouteBaz() : RouteInterface
74
	{
75
		return new Route('baz', '/baz', $this->getRouteActionBaz());
76
	}
77
78
	public function getRouteQux() : RouteInterface
79
	{
80
		return new Route('qux', '/qux', $this->getRouteActionQux());
81
	}
82
83
	public function getMiddlewareFoo(bool $next = true) : MiddlewareInterface
84
	{
85
		return new class($next) implements MiddlewareInterface
86
		{
87
			private $next;
88
89
			public function __construct(bool $next)
90
			{
91
				$this->next = $next;
92
			}
93
94
			public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
95
			{
96
				$response = $this->next ? $handler->handle($request) : (new ResponseFactory)->createResponse();
97
98
				return $response
99
				->withAddedHeader('x-middleware', 'foo')
100
				->withAddedHeader('x-queue', 'middleware-foo');
101
			}
102
		};
103
	}
104
105
	public function getMiddlewareBar(bool $next = true) : MiddlewareInterface
106
	{
107
		return new class($next) implements MiddlewareInterface
108
		{
109
			private $next;
110
111
			public function __construct(bool $next)
112
			{
113
				$this->next = $next;
114
			}
115
116
			public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
117
			{
118
				$response = $this->next ? $handler->handle($request) : (new ResponseFactory)->createResponse();
119
120
				return $response
121
				->withAddedHeader('x-middleware', 'bar')
122
				->withAddedHeader('x-queue', 'middleware-bar');
123
			}
124
		};
125
	}
126
127
	public function getMiddlewareBaz(bool $next = true) : MiddlewareInterface
128
	{
129
		return new class($next) implements MiddlewareInterface
130
		{
131
			private $next;
132
133
			public function __construct(bool $next)
134
			{
135
				$this->next = $next;
136
			}
137
138
			public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
139
			{
140
				$response = $this->next ? $handler->handle($request) : (new ResponseFactory)->createResponse();
141
142
				return $response
143
				->withAddedHeader('x-middleware', 'baz')
144
				->withAddedHeader('x-queue', 'middleware-baz');
145
			}
146
		};
147
	}
148
149
	public function getMiddlewareQux(bool $next = true) : MiddlewareInterface
150
	{
151
		return new class($next) implements MiddlewareInterface
152
		{
153
			private $next;
154
155
			public function __construct(bool $next)
156
			{
157
				$this->next = $next;
158
			}
159
160
			public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
161
			{
162
				$response = $this->next ? $handler->handle($request) : (new ResponseFactory)->createResponse();
163
164
				return $response
165
				->withAddedHeader('x-middleware', 'qux')
166
				->withAddedHeader('x-queue', 'middleware-qux');
167
			}
168
		};
169
	}
170
}
171