From c7815a21124a2ce09b0e4a898da14ce6ed3927fd Mon Sep 17 00:00:00 2001 From: Alexander Demidov Date: Fri, 25 May 2012 16:31:08 +0400 Subject: [PATCH] Add tests app/router for new methods. --- tests/app/router/RouteTest.php | 13 +++++++ tests/app/router/RouterTest.php | 81 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) diff --git a/tests/app/router/RouteTest.php b/tests/app/router/RouteTest.php index 9aaea7c..778a43c 100644 --- a/tests/app/router/RouteTest.php +++ b/tests/app/router/RouteTest.php @@ -77,4 +77,17 @@ class RouteTest extends PHPUnit_Framework_TestCase $this->setExpectedException('PHPUnit_Framework_Error'); $route->match(''); } + + public function testGetUri() + { + $route = 'myroute'; + $route_mock = $this->getMockBuilder('Route') + ->disableOriginalConstructor() + ->setMethods(array('__construct')) + ->getMock(); + $reflection = new ReflectionProperty('Route', 'route'); + $reflection->setAccessible(true); + $reflection->setValue($route_mock, $route); + $this->assertEquals('/' . $route, $route_mock->getUri()); + } } \ No newline at end of file diff --git a/tests/app/router/RouterTest.php b/tests/app/router/RouterTest.php index 2584961..436e2fe 100644 --- a/tests/app/router/RouterTest.php +++ b/tests/app/router/RouterTest.php @@ -61,4 +61,85 @@ class RouterTest extends PHPUnit_Framework_TestCase $router->setDefaultLayout('userLayout'); $this->assertAttributeEquals('userLayout', 'default_layout', $router); } + + public function testGetRoute() + { + $route = 'route object.'; + $router = new Router(); + $reflection = new ReflectionProperty('Router', 'route'); + $reflection->setAccessible(true); + $reflection->setValue($router, $route); + $this->assertEquals($route, $router->getRoute()); + } + + public function testGetUriWithNameIsNull() + { + $name = null; + $uri = 'uri from route.'; + $route_mock = $this->getMockBuilder('Route') + ->disableOriginalConstructor() + ->setMethods(array('getUri')) + ->getMock(); + $route_mock->expects($this->once()) + ->method('getUri') + ->with() + ->will($this->returnValue($uri)); + $router_mock = $this->getMockBuilder('Router') + ->disableOriginalConstructor() + ->setMethods(array('getRoute')) + ->getMock(); + $router_mock->expects($this->once()) + ->method('getRoute') + ->with() + ->will($this->returnValue($route_mock)); + $this->assertEquals($uri, $router_mock->getUri($name)); + } + + public function testGetUriWithNamed() + { + $name = 'name of route'; + $uri = 'uri from route.'; + $route_mock = $this->getMockBuilder('Route') + ->disableOriginalConstructor() + ->setMethods(array('getUri')) + ->getMock(); + $route_mock->expects($this->once()) + ->method('getUri') + ->with() + ->will($this->returnValue($uri)); + $router_mock = $this->getMockBuilder('Router') + ->disableOriginalConstructor() + ->setMethods(array('getRoute', 'routeIsExists', 'getRouteByName')) + ->getMock(); + $router_mock->expects($this->never()) + ->method('getRoute'); + $router_mock->expects($this->at(0)) + ->method('routeIsExists') + ->with($this->equalTo($name)) + ->will($this->returnValue(true)); + $router_mock->expects($this->at(1)) + ->method('getRouteByName') + ->with($this->equalTo($name)) + ->will($this->returnValue($route_mock)); + $this->assertEquals($uri, $router_mock->getUri($name)); + } + + public function testGetUriWithNamedWithError() + { + $name = 'name of route'; + $router_mock = $this->getMockBuilder('Router') + ->disableOriginalConstructor() + ->setMethods(array('getRoute', 'routeIsExists', 'getRouteByName')) + ->getMock(); + $router_mock->expects($this->never()) + ->method('getRoute'); + $router_mock->expects($this->once()) + ->method('routeIsExists') + ->with($this->equalTo($name)) + ->will($this->returnValue(false)); + $router_mock->expects($this->never()) + ->method('getRouteByName'); + $this->setExpectedException('ErrorException'); + $router_mock->getUri($name); + } }