[BUGFIX] Fixed issue #83

- Added more tests.
This commit is contained in:
Simon Sessingø
2016-04-09 07:51:03 +02:00
parent fc4fd0edf1
commit 457dbc5710
4 changed files with 77 additions and 38 deletions

51
test/GroupTest.php Normal file
View File

@@ -0,0 +1,51 @@
<?php
require_once 'Dummy/DummyMiddleware.php';
require_once 'Dummy/DummyController.php';
class GroupTest extends PHPUnit_Framework_TestCase {
protected $result;
public function __construct() {
// Initial setup
$_SERVER['HTTP_HOST'] = 'example.com';
$_SERVER['REQUEST_URI'] = '/api/v1/test';
$_SERVER['REQUEST_METHOD'] = 'get';
}
protected function group() {
$this->result = true;
}
public function testGroup() {
\Pecee\SimpleRouter\RouterBase::reset();
$this->result = false;
\Pecee\SimpleRouter\SimpleRouter::group(['prefix' => '/group'], $this->group());
try {
\Pecee\SimpleRouter\SimpleRouter::start();
} catch(Exception $e) {
}
$this->assertTrue($this->result);
}
public function testNestedGroup() {
\Pecee\SimpleRouter\RouterBase::reset();
\Pecee\Http\Request::getInstance()->setUri('/api/v1/test');
\Pecee\SimpleRouter\SimpleRouter::group(['prefix' => '/api'], function() {
\Pecee\SimpleRouter\SimpleRouter::group(['prefix' => '/v1'], function() {
\Pecee\SimpleRouter\SimpleRouter::get('/test', 'DummyController@start');
});
});
\Pecee\SimpleRouter\SimpleRouter::start();
}
}

View File

@@ -16,15 +16,12 @@ class MiddlewareTest extends PHPUnit_Framework_TestCase {
\Pecee\Http\Request::getInstance()->setMethod('get');
$router = new \Pecee\SimpleRouter\RouterBase();
\Pecee\SimpleRouter\RouterBase::reset();
$route = new \Pecee\SimpleRouter\RouterRoute('/my/test/url', 'DummyController@start');
$route->setRequestMethods(array(\Pecee\SimpleRouter\RouterRoute::REQUEST_TYPE_GET));
$route->addSettings(['middleware' => 'DummyMiddleware']);
$router->addRoute($route);
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start', ['middleware' => 'DummyMiddleware']);
try {
$router->routeRequest();
\Pecee\SimpleRouter\SimpleRouter::start();
}catch(Exception $e) {
$this->assertTrue(($e instanceof MiddlewareLoadedException));
return;

View File

@@ -13,60 +13,47 @@ class RouterRouteTest extends PHPUnit_Framework_TestCase {
}
public function testGet() {
\Pecee\SimpleRouter\RouterBase::reset();
\Pecee\Http\Request::getInstance()->setMethod('get');
$router = new \Pecee\SimpleRouter\RouterBase();
$route = new \Pecee\SimpleRouter\RouterRoute('/my/test/url', 'DummyController@start');
$route->setRequestMethods(array(\Pecee\SimpleRouter\RouterRoute::REQUEST_TYPE_GET));
$router->addRoute($route);
$router->routeRequest();
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start');
\Pecee\SimpleRouter\SimpleRouter::start();
}
public function testPost() {
\Pecee\Http\Request::getInstance()->setMethod('post');
$router = new \Pecee\SimpleRouter\RouterBase();
\Pecee\SimpleRouter\RouterBase::reset();
$route = new \Pecee\SimpleRouter\RouterRoute('/my/test/url', 'DummyController@start');
$route->addSettings(array());
$route->setRequestMethods(array(\Pecee\SimpleRouter\RouterRoute::REQUEST_TYPE_POST));
$router->addRoute($route);
$router->routeRequest();
\Pecee\SimpleRouter\SimpleRouter::post('/my/test/url', 'DummyController@start');
\Pecee\SimpleRouter\SimpleRouter::start();
}
public function testPut() {
\Pecee\Http\Request::getInstance()->setMethod('put');
$router = new \Pecee\SimpleRouter\RouterBase();
$route = new \Pecee\SimpleRouter\RouterRoute('/my/test/url', 'DummyController@start');
$route->addSettings(array());
$route->setRequestMethods(array(\Pecee\SimpleRouter\RouterRoute::REQUEST_TYPE_PUT));
$router->addRoute($route);
$router->routeRequest();
\Pecee\SimpleRouter\RouterBase::reset();
\Pecee\SimpleRouter\SimpleRouter::put('/my/test/url', 'DummyController@start');
\Pecee\SimpleRouter\SimpleRouter::start();
}
public function testDelete() {
\Pecee\Http\Request::getInstance()->setMethod('delete');
$router = new \Pecee\SimpleRouter\RouterBase();
\Pecee\SimpleRouter\RouterBase::reset();
$route = new \Pecee\SimpleRouter\RouterRoute('/my/test/url', 'DummyController@start');
$route->addSettings(array());
$route->setRequestMethods(array(\Pecee\SimpleRouter\RouterRoute::REQUEST_TYPE_DELETE));
$router->addRoute($route);
$router->routeRequest();
\Pecee\SimpleRouter\SimpleRouter::delete('/my/test/url', 'DummyController@start');
\Pecee\SimpleRouter\SimpleRouter::start();
}
public function testMethodNotAllowed() {
\Pecee\SimpleRouter\RouterBase::reset();
\Pecee\Http\Request::getInstance()->setMethod('post');
\Pecee\SimpleRouter\SimpleRouter::get('/my/test/url', 'DummyController@start');