blob: 2a0b550364d6aa995d90ae81c8967f1673be5cfb (
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
|
<?php
use Lightscale\Router\BasicStrategy;
use Lightscale\Router\Enums\HttpMethod;
use Lightscale\Router\Exceptions\NotFoundException;
use Lightscale\Router\Route;
use Lightscale\Router\RouteCall;
use Lightscale\Router\Test\Utils\TestCallable;
use Nyholm\Psr7\Factory\Psr17Factory;
it('initialises')
->expect(fn() => new BasicStrategy)
->toBeInstanceOf(BasicStrategy::class);
it('throws on not found', function() {
(new BasicStrategy)->notFound(
(new Psr17Factory)->createServerRequest(
HttpMethod::Get->value,
'/testing/testing'
)
);
})->throws(NotFoundException::class);
it('calls route', function () {
$factory = new Psr17Factory;
$response = $factory->createResponse(200, 'OK');
$cb = TestCallable::make(fn () => $response);
$res = (new BasicStrategy)->runRoute($rc = new RouteCall(
$factory->createServerRequest(
HttpMethod::Get->value,
'/testing/testing'
),
new Route(
HttpMethod::Get,
$cb
),
[]
));
$cb->assertIsCalled();
$call = $cb->getLastCall();
expect($call->args[0] ?? null)->toBe($rc);
expect($res)->toBe($response);
});
|