Example #1
0
 public function setUp()
 {
     $this->container = \Mockery::mock(Container::class);
     $this->resolver = \Mockery::mock(MethodParameterResolver::class);
     $this->resolver->shouldReceive('resolve')->andReturn([]);
     $this->dispatcher = new DispatchController($this->container, $this->resolver);
 }
Example #2
0
 /**
  * Dispatch the request
  *
  * @param Route $route
  *
  * @return mixed
  */
 public function dispatch(Route $route)
 {
     $action = $route->action();
     $callback = $action['uses'];
     $parameters = $this->resolver->resolve(new ReflectionFunction($callback), $route->parameters());
     return call_user_func_array($callback, $parameters);
 }
 public function test_can_resolve_method_parameters_with_typehints_and_route_parameters()
 {
     $this->container->shouldReceive('make')->with(Container::class)->once()->andReturn($this->container);
     $parameters = $this->resolver->resolve(new \ReflectionMethod(ControllerStubWithParams::class, 'index'), ['id' => 1]);
     $this->assertArrayHasKey('container', $parameters);
     $this->assertArrayHasKey('id', $parameters);
     $this->assertEquals($this->container, $parameters['container']);
     $this->assertEquals(1, $parameters['id']);
 }
Example #4
0
 /**
  * Dispatch the request
  *
  * @param Route $route
  *
  * @throws NotFoundHttpException
  * @return mixed
  */
 public function dispatch(Route $route)
 {
     $action = $route->action();
     list($class, $method) = explode('@', $action['uses']);
     if (!method_exists($instance = $this->container->make($class), $method)) {
         throw new NotFoundHttpException();
     }
     $parameters = $this->resolver->resolve(new ReflectionMethod($instance, $method), $route->parameters());
     return $this->container->call([$instance, $method], $parameters);
 }