Example #1
0
 function it_explicitly_sets_a_command_handler(Command $cmd, Container $container, FooHandler $handler)
 {
     $handlerClass = 'SomeHandler';
     $this->setHandler(get_class($cmd->getWrappedObject()), $handlerClass);
     $container->resolve($handlerClass)->willReturn($handler)->shouldBeCalled();
     $handler->handle($cmd)->shouldBeCalled();
     $this->execute($cmd);
 }
Example #2
0
 private function getHandler(Command $command)
 {
     $handler = $this->resolveHandlerClass(get_class($command));
     if (is_string($handler)) {
         $handler = $this->container->resolve($handler);
     } elseif ($handler instanceof \Closure) {
         $handler = $handler();
     }
     if (!$handler instanceof Handler) {
         throw new UnexpectedValueException(sprintf("[%s] should be an instance of %s", get_class($handler), 'StudioIgnis\\Cmd\\Handler'));
     }
     return $handler;
 }