blob: 171e78302c4c71e6be83100cfd8bd037600b88d3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
<?php
use Jasny\Router\Route;
use Jasny\Router\RoutesInterface;
use Jasny\Router\Middleware\DetermineRoute;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;
use Jasny\TestHelper;
/**
* @covers Jasny\Router\Middleware\DetermineRoute
*/
class DetermineRouteTest extends PHPUnit_Framework_TestCase
{
use TestHelper;
public function testConstruct()
{
$routes = $this->createMock(RoutesInterface::class);
$middelware = new DetermineRoute($routes);
$this->assertSame($routes, $middelware->getRoutes());
}
public function routeProvider()
{
return [
[$this->createMock(Route::class)],
[null]
];
}
/**
* @dataProvider routeProvider
*
* @param Route|null $route
*/
public function testInvoke($route)
{
$requestWithRoute = $this->createMock(ServerRequestInterface::class);
$request = $this->createMock(ServerRequestInterface::class);
$request->expects($this->once())->method('withAttribute')->with('route', $route)
->willReturn($requestWithRoute);
$response = $this->createMock(ResponseInterface::class);
$next = $this->createCallbackMock($this->once(), [$requestWithRoute, $response]);
$routes = $this->createMock(RoutesInterface::class);
$routes->expects($this->once())->method('getRoute')->with($request)->willReturn($route);
$middelware = new DetermineRoute($routes);
$middelware($request, $response, $next);
}
/**
* @expectedException InvalidArgumentException
*/
public function testInvokeWithInvalidCallback()
{
$request = $this->createMock(ServerRequestInterface::class);
$response = $this->createMock(ResponseInterface::class);
$routes = $this->createMock(RoutesInterface::class);
$middelware = new DetermineRoute($routes);
$middelware($request, $response, 'not a function');
}
}
|