/** * @covers Respect\Rest\Router::__call * @covers Respect\Rest\Router::classRoute */ public function testMagicConstructorCanRouteToClassesUsingConstructorParams() { $router = new Router(); $className = 'GeneratedClass' . md5(rand()); $this->getMock('Respect\\Rest\\Routable', array('GET'), array(), $className); $classRoute = $router->get('/', $className, array('some', 'constructor', 'params')); $concreteClassRoute = $router->classRoute('GET', '/', $className, array('some', 'constructor', 'params')); $this->assertInstanceOf('Respect\\Rest\\Routes\\ClassName', $classRoute, 'Returned result from a magic constructor in this case should return a Routes\\ClassName'); $this->assertEquals(array('some', 'constructor', 'params'), $classRoute->constructorParams, 'The constructor params should be available on the instance of Routes\\ClassName'); $this->assertEquals($classRoute, $concreteClassRoute, 'The magic and concrete instances of Routes\\ClassName should be equivalent'); }