From 8412218059b94c3f781fdeee3f0eb507a66550d4 Mon Sep 17 00:00:00 2001 From: Roberto Aguilar Date: Mon, 11 Mar 2019 11:16:23 -0600 Subject: [PATCH] Create getter for the http route middlewares This getter allows to create tests for the route middlewares, which is currently not possible because the property is protected. For example, if you want to ensure that a route middleware has been registered, with this getter you can write: ```php /** @test */ public function it_registers_a_custom_route_middleware() { $middlewares = resolve(\App\Http\Kernel::class)->getRouteMiddleware(); $this->assertArrayHasKey('custom', $middlewares); $this->assertEquals(\App\Http\Middleware\Custom::class, $middlewares['custom']); } ``` --- src/Illuminate/Foundation/Http/Kernel.php | 10 ++++++++++ tests/Foundation/Http/KernelTest.php | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/src/Illuminate/Foundation/Http/Kernel.php b/src/Illuminate/Foundation/Http/Kernel.php index a44214a760a9..022dd8eec8c2 100644 --- a/src/Illuminate/Foundation/Http/Kernel.php +++ b/src/Illuminate/Foundation/Http/Kernel.php @@ -336,6 +336,16 @@ public function getMiddlewareGroups() return $this->middlewareGroups; } + /** + * Get the application's route middleware. + * + * @return array + */ + public function getRouteMiddleware() + { + return $this->routeMiddleware; + } + /** * Get the Laravel application instance. * diff --git a/tests/Foundation/Http/KernelTest.php b/tests/Foundation/Http/KernelTest.php index 94032a27c396..2da7e0ac3d7c 100644 --- a/tests/Foundation/Http/KernelTest.php +++ b/tests/Foundation/Http/KernelTest.php @@ -17,6 +17,13 @@ public function testGetMiddlewareGroups() $this->assertEquals([], $kernel->getMiddlewareGroups()); } + public function testGetRouteMiddleware() + { + $kernel = new Kernel($this->getApplication(), $this->getRouter()); + + $this->assertEquals([], $kernel->getRouteMiddleware()); + } + /** * @return \Illuminate\Contracts\Foundation\Application */