/**
  * @return bool
  */
 public function execute($subject)
 {
     $this->logger->info('DotpayManager [Response]: ' . json_encode($subject));
     $event = new ValidationEvent($subject);
     $this->dispatcher->dispatch(Events::PRE_VALIDATE, $event);
     if ($event->isExecuted() && !$event->isValid()) {
         $this->logger->err('DotpayManager: execution failed during hatimeria_dotpay.pre_validate event');
         return false;
     }
     $result = $this->validate($subject);
     if (!$result) {
         $this->logger->err('DotpayManager: Response validation failed');
         return false;
     }
     $event = new Event($subject);
     $this->dispatcher->dispatch(Events::EXECUTION, $event);
     if (!$event->isExecuted()) {
         $this->logger->err('DotpayManager: No event found executing payment finalization process');
         return false;
     }
     if (!$event->getResult()) {
         $this->logger->err('DotpayManager: hatimeria_dotpay.execution event finished with result false. Check logs for more information');
         return false;
     }
     return true;
 }
 /**
  * @group legacy
  */
 public function testErr()
 {
     $handler = new TestHandler();
     $logger = new Logger('test');
     $logger->pushHandler($handler);
     $this->assertTrue($logger->err('test'));
     $this->assertTrue($handler->hasError('test'));
 }
 /**
  * Add an error in the container.
  *
  * @param string  $err
  * 
  * @return PiLogManager
  * @access public
  * @author Etienne de Longeaux <*****@*****.**>
  */
 public function setErr($err)
 {
     $this->_info[] = $err;
     $this->_logger->err($err);
     return $this;
 }