summaryrefslogtreecommitdiff
path: root/tests/Unit/Concerns
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Unit/Concerns')
-rw-r--r--tests/Unit/Concerns/HasMiddlewareTest.php35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/Unit/Concerns/HasMiddlewareTest.php b/tests/Unit/Concerns/HasMiddlewareTest.php
new file mode 100644
index 0000000..8aaac15
--- /dev/null
+++ b/tests/Unit/Concerns/HasMiddlewareTest.php
@@ -0,0 +1,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);