/**
  * @private
  * @param  MvcEvent $event
  * @return void
  */
 public function onError(MvcEvent $event)
 {
     // Do nothing if no error or if response is not HTTP response
     if (!$event->getParam('exception') instanceof UnauthorizedExceptionInterface || $event->getResult() instanceof HttpResponse || !$event->getResponse() instanceof HttpResponse) {
         return;
     }
     $model = new ViewModel();
     $model->setTemplate($this->options->getTemplate());
     switch ($event->getError()) {
         case GuardInterface::GUARD_UNAUTHORIZED:
             $model->setVariable('error', GuardInterface::GUARD_UNAUTHORIZED);
             break;
         default:
     }
     $response = $event->getResponse() ?: new HttpResponse();
     $response->setStatusCode(403);
     $event->setResponse($response);
     $event->setResult($model);
 }
 public function testSettersAndGetters()
 {
     $unauthorizedStrategyOptions = new UnauthorizedStrategyOptions(['template' => 'error/unauthorized']);
     $this->assertEquals('error/unauthorized', $unauthorizedStrategyOptions->getTemplate());
 }