/**
  * {@inheritDoc}
  */
 public function resolve(ServerRequestInterface $request, DomainPayloadInterface $domainPayload)
 {
     $type = $this->negotiationManager->getBestMatch($request, array_keys($this->responderResolver));
     if (null !== $type) {
         $resolvers = [];
         if (isset($this->responderResolver[$type])) {
             $resolvers = $this->responderResolver[$type];
             if (!is_array($resolvers)) {
                 $resolvers = [$resolvers];
             }
         }
         foreach ($resolvers as $resolver) {
             if (!$resolver instanceof ResponderResolver) {
                 continue;
             }
             $responder = $resolver->resolve($request, $domainPayload);
             if ($responder instanceof Responder) {
                 // step out of the loop when a responder could be found
                 // by the resolvers. First resolvers wins!
                 return $responder;
             }
         }
     }
     // in case no matching responder could be found for the requested type we need
     // to notify the client with an "406 Not acceptable" response.
     return new HttpStatusCodeResponder(406);
 }
 /**
  * @test
  */
 public function respondersNotImplementingTheRequiredInterfaceWillBeIgnored()
 {
     $this->manager->expects($this->once())->method('getBestMatch')->will($this->returnValue('text/vcard'));
     $responder = $this->resolver->resolve($this->request, $this->domainPayload);
     $this->assertInstanceOf(HttpStatusCodeResponder::class, $responder);
 }