19 declare(strict_types=1);
    26 class RequestProcessorListMetadataFormatsTest 
extends RequestProcessorTestCase
    28     public function testGetResponseToRequestListMetadataFormats(): void
    30         $processor = 
new RequestProcessor(
    33             $this->getRepository(),
    34             $this->getTokenHandler()
    37         $expected_response = <<<XML
    39               <response_info>
base url:ListMetadataFormats:</response_info>
    40               <md_format>some metadata</md_format>
    44         $response = $processor->getResponseToRequest($this->getRequest(
    46             Verb::LIST_MD_FORMATS,
    50         $this->assertXmlStringEqualsXmlString($expected_response, 
$response->saveXML());
    53     public function testGetResponseToRequestListMetadataFormatsWithIdentifier(): void
    55         $processor = 
new RequestProcessor(
    57             $this->getSettings(
'prefix_'),
    58             $this->getRepository(null, 0, 
'id'),
    59             $this->getTokenHandler()
    62         $expected_response = <<<XML
    64               <response_info>
base url:ListMetadataFormats:identifier=prefix_id</response_info>
    65               <md_format>some metadata</md_format>
    69         $response = $processor->getResponseToRequest($this->getRequest(
    71             Verb::LIST_MD_FORMATS,
    72             [Argument::IDENTIFIER->value => 
'prefix_id']
    75         $this->assertXmlStringEqualsXmlString($expected_response, 
$response->saveXML());
    78     public function testGetResponseToRequestListMetadataFormatsAdditionalArgumentError(): void
    80         $processor = 
new RequestProcessor(
    83             $this->getRepository(),
    84             $this->getTokenHandler()
    87         $expected_response = <<<XML
    89               <response_info>
base url:ListMetadataFormats:until=some date</response_info>
    90               <error>badArgument</error>
    94         $response = $processor->getResponseToRequest($this->getRequest(
    96             Verb::LIST_MD_FORMATS,
    97             [Argument::UNTIL_DATE->value => 
'some date'],
   101         $this->assertXmlStringEqualsXmlString($expected_response, 
$response->saveXML());
   104     public function testGetResponseToRequestListMetadataFormatsInvalidIdentifierError(): void
   106         $processor = 
new RequestProcessor(
   108             $this->getSettings(
'prefix_'),
   109             $this->getRepository(null, 0, 
'no prefix'),
   110             $this->getTokenHandler()
   113         $expected_response = <<<XML
   115               <response_info>
base url:ListMetadataFormats:identifier=no prefix</response_info>
   116               <error>idDoesNotExist</error>
   120         $response = $processor->getResponseToRequest($this->getRequest(
   122             Verb::LIST_MD_FORMATS,
   123             [Argument::IDENTIFIER->value => 
'no prefix']
   126         $this->assertXmlStringEqualsXmlString($expected_response, 
$response->saveXML());
   129     public function testGetResponseToRequestListMetadataFormatsRecordNotFoundError(): void
   131         $processor = 
new RequestProcessor(
   133             $this->getSettings(
'prefix_'),
   134             $this->getRepository(),
   135             $this->getTokenHandler()
   138         $expected_response = <<<XML
   140               <response_info>
base url:ListMetadataFormats:identifier=prefix_id</response_info>
   141               <error>idDoesNotExist</error>
   145         $response = $processor->getResponseToRequest($this->getRequest(
   147             Verb::LIST_MD_FORMATS,
   148             [Argument::IDENTIFIER->value => 
'prefix_id']
   151         $this->assertXmlStringEqualsXmlString($expected_response, 
$response->saveXML());
   154     public function testGetResponseToRequestListMetadataFormatsMultipleErrors(): void
   156         $processor = 
new RequestProcessor(
   158             $this->getSettings(
'prefix_'),
   159             $this->getRepository(),
   160             $this->getTokenHandler()
   163         $expected_response = <<<XML
   165               <response_info>
base url:ListMetadataFormats:identifier=prefix_id,until=some date</response_info>
   166               <error>badArgument</error>
   167               <error>idDoesNotExist</error>
   171         $response = $processor->getResponseToRequest($this->getRequest(
   173             Verb::LIST_MD_FORMATS,
   174             [Argument::IDENTIFIER->value => 
'prefix_id', Argument::UNTIL_DATE->value => 
'some date'],
   178         $this->assertXmlStringEqualsXmlString($expected_response, 
$response->saveXML());