Add namespace.
This commit is contained in:
122
Tests/app/router/RouterTest.php
Normal file
122
Tests/app/router/RouterTest.php
Normal file
@ -0,0 +1,122 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* @copyright NetMonsters <team@netmonsters.ru>
|
||||
* @link http://netmonsters.ru
|
||||
* @package Majestic
|
||||
* @subpackage UnitTests
|
||||
* @since 2011-10-31
|
||||
*
|
||||
* Unit tests for Router class
|
||||
*/
|
||||
|
||||
require_once dirname(__FILE__) . '/../../../classes/Env.class.php';
|
||||
require_once dirname(__FILE__) . '/../../../app/router/Route.php';
|
||||
require_once dirname(__FILE__) . '/../../../app/router/Router.php';
|
||||
|
||||
class RouterTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testGetRouteFirst()
|
||||
{
|
||||
$router = new Router();
|
||||
$this->assertNull($router->getRoute());
|
||||
$this->assertNull($router->getRouteName());
|
||||
}
|
||||
|
||||
public function testRouterCycle()
|
||||
{
|
||||
$router = new Router();
|
||||
$router->add('user', 'user/account/:id', 'user');
|
||||
$route = $router->route('user/account/213');
|
||||
$this->assertSame(1, count($route->getParams()));
|
||||
$this->assertSame(array('id' => '213'), $route->getParams());
|
||||
$this->assertSame('user', $router->getRouteName());
|
||||
}
|
||||
|
||||
public function testRouterMultipleRoutes()
|
||||
{
|
||||
$router = new Router();
|
||||
$router->add('user', 'user/account/:id', 'user');
|
||||
$router->add('sale', 'sale/order/:id', 'user');
|
||||
$route = $router->route('user/account/213');
|
||||
$this->assertSame('user', $router->getRouteName());
|
||||
$this->assertSame(1, count($route->getParams()));
|
||||
$this->assertSame(array('id' => '213'), $route->getParams());
|
||||
$route = $router->route('sale/order/22');
|
||||
$this->assertSame('sale', $router->getRouteName());
|
||||
$this->assertSame(array('id' => '22'), $route->getParams());
|
||||
}
|
||||
|
||||
public function testRouteNotmatch()
|
||||
{
|
||||
$router = new Router();
|
||||
$router->add('user', 'user/account/:id', 'user');
|
||||
$this->assertFalse($router->route('user/info/213'));
|
||||
|
||||
}
|
||||
|
||||
public function testSetDefaultLayout()
|
||||
{
|
||||
$router = new Router();
|
||||
$router->setDefaultLayout('userLayout');
|
||||
$this->assertAttributeEquals('userLayout', 'default_layout', $router);
|
||||
}
|
||||
|
||||
public function testGetRouteWithNameIsNull()
|
||||
{
|
||||
$name = null;
|
||||
$route = 'route object.';
|
||||
$router = new Router();
|
||||
$reflection = new ReflectionProperty('Router', 'route');
|
||||
$reflection->setAccessible(true);
|
||||
$reflection->setValue($router, $route);
|
||||
$this->assertEquals($route, $router->getRoute($name));
|
||||
}
|
||||
|
||||
public function testGetRouteWithNamed()
|
||||
{
|
||||
$name = 'nameofroute';
|
||||
$uri = 'uri from route.';
|
||||
$route = 'route object.';
|
||||
$router = new Router();
|
||||
$reflection = new ReflectionProperty('Router', 'routes');
|
||||
$reflection->setAccessible(true);
|
||||
$reflection->setValue($router, array($name => $route));
|
||||
$this->assertEquals($route, $router->getRoute($name));
|
||||
}
|
||||
|
||||
public function testGetRouteWithNamedWithError()
|
||||
{
|
||||
$name = 'name of route';
|
||||
$router = new Router();
|
||||
$this->setExpectedException('ErrorException');
|
||||
$router->getRoute($name);
|
||||
}
|
||||
|
||||
public function testRouteIsExists()
|
||||
{
|
||||
$route = 'route object.';
|
||||
$name = 'nameofroute';
|
||||
$name_is_not_exists = 'nameofroutenotexists';
|
||||
$routes = array($name => $route);
|
||||
$router = new Router();
|
||||
$reflection = new ReflectionProperty('Router', 'routes');
|
||||
$reflection->setAccessible(true);
|
||||
$reflection->setValue($router, $routes);
|
||||
$this->assertTrue($router->routeIsExists($name));
|
||||
$this->assertFalse($router->routeIsExists($name_is_not_exists));
|
||||
}
|
||||
|
||||
public function testGetDefaultErrorLayout()
|
||||
{
|
||||
$router = new Router();
|
||||
$this->assertSame('ErrorLayout', $router->getErrorLayout());
|
||||
}
|
||||
|
||||
public function testSetErrorLayout()
|
||||
{
|
||||
$router = new Router();
|
||||
$router->setErrorLayout('CustomError');
|
||||
$this->assertSame('CustomErrorLayout', $router->getErrorLayout());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user