<?php use Arvici\Component\Router; /** * Router Configuration */ Router::define(function (Router $router) { $router->get('/', '\\App\\Controller\\Welcome::index'); $router->get('/session', '\\App\\Controller\\Welcome::session'); $router->get('/json', '\\App\\Controller\\Welcome::json'); $router->get('/exception', '\\App\\Controller\\Welcome::exception'); });
public function testClassMiddleware() { TestUtils::clearRoutes(); $done = 0; Router::define(function (Router $router) use(&$done) { $router->get("/middleware/1", function () use(&$done) { $done++; }); $router->post("/middleware/2", function () use(&$done) { $done++; }); $router->put("/middleware/3", function () use(&$done) { $done++; }); }); // Middleware in class (controller) // Invalid, non existing class Router::getInstance()->after('App\\Middleware\\TestMiddlewareNotExisting::go', null, ['POST']); // Invalid, non existing method Router::getInstance()->before('App\\Middleware\\TestMiddleware::nonexisting', null, ['GET']); // Valid Router::getInstance()->before('App\\Middleware\\TestMiddleware::testThrow', null, ['PUT']); // Spoof $this->spoof('/middleware/2', 'POST'); try { Router::getInstance()->run(); $this->assertTrue(false); } catch (RouterException $re) { $this->assertTrue(true); } // Spoof $this->spoof('/middleware/1', 'GET'); try { Router::getInstance()->run(); $this->assertTrue(false); } catch (RouterException $re) { $this->assertTrue(true); } // Spoof $this->spoof('/middleware/3', 'PUT'); try { Router::getInstance()->run(); $this->assertTrue(false); } catch (\Exception $e) { $this->assertEquals("TEST", $e->getMessage()); } $this->assertEquals(1, $done); }