summaryrefslogtreecommitdiff
path: root/tests/Unit/Concerns/HasMiddlewareTest.php
blob: 8aaac1597c67e14a781fdabb9ade91b635f2abbe (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
<?php

declare(strict_types=1);

use Lightscale\Router\Enums\HttpMethod;
use Lightscale\Router\Group;
use Lightscale\Router\Route;
use Lightscale\Router\Router;
use Lightscale\Router\Test\Utils\TestMiddleware;

$classes = [
    Router::class => fn () => new Router(),
    Group::class => fn () => new Group(new Router(), null),
    Route::class => fn () => new Route(HttpMethod::Get, fn () => null),
];

test(':dataset has middleware', function ($inst) {
    $inst->addMiddleware($mw1 = new TestMiddleware());

    expect($inst->getMiddleware())
        ->toHaveCount(1)
        ->{0}->toBe($mw1);
})->with($classes);

test(':dataset adds array of middleware', function ($inst) {
    $inst->addMiddleware([
        $mw1 = new TestMiddleware(),
        $mw2 = new TestMiddleware(),
    ]);

    expect($inst->getMiddleware())
        ->toHaveCount(2)
        ->{0}->toBe($mw1)
        ->{1}->toBe($mw2);
})->with($classes);