ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
RequestProcessorGetRecordTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
25
26class RequestProcessorGetRecordTest extends RequestProcessorTestCase
27{
28 public function testGetResponseToRequestGetRecord(): void
29 {
30 $processor = new RequestProcessor(
31 $this->getWriter(),
32 $this->getSettings('prefix_'),
33 $this->getRepository(null, 0, 'id+2022-11-27'),
34 $this->getTokenHandler()
35 );
36
37 $expected_response = <<<XML
38 <response>
39 <response_info>base url:GetRecord:identifier=prefix_id+2022-11-27,metadataPrefix=oai_dc</response_info>
40 <record>
41 <record_info>prefix_id+2022-11-27:2022-11-27</record_info>
42 <md>md for id+2022-11-27</md>
43 </record>
44 </response>
45 XML;
46
47 $response = $processor->getResponseToRequest($this->getRequest(
48 'base url',
49 Verb::GET_RECORD,
50 [Argument::IDENTIFIER->value => 'prefix_id+2022-11-27', Argument::MD_PREFIX->value => 'oai_dc']
51 ));
52
53 $this->assertXmlStringEqualsXmlString($expected_response, $response->saveXML());
54 }
55
56 public function testGetResponseToRequestGetRecordDeleted(): void
57 {
58 $processor = new RequestProcessor(
59 $this->getWriter(),
60 $this->getSettings('prefix_'),
61 $this->getRepository(null, 0, 'delid+2022-11-27'),
62 $this->getTokenHandler()
63 );
64
65 $expected_response = <<<XML
66 <response>
67 <response_info>base url:GetRecord:identifier=prefix_delid+2022-11-27,metadataPrefix=oai_dc</response_info>
68 <deleted_record>
69 <record_info>prefix_delid+2022-11-27:2022-11-27</record_info>
70 </deleted_record>
71 </response>
72 XML;
73
74 $response = $processor->getResponseToRequest($this->getRequest(
75 'base url',
76 Verb::GET_RECORD,
77 [Argument::IDENTIFIER->value => 'prefix_delid+2022-11-27', Argument::MD_PREFIX->value => 'oai_dc']
78 ));
79
80 $this->assertXmlStringEqualsXmlString($expected_response, $response->saveXML());
81 }
82
83 public function testGetResponseToRequestGetRecordNoMDFormatError(): void
84 {
85 $processor = new RequestProcessor(
86 $this->getWriter(),
87 $this->getSettings('prefix_'),
88 $this->getRepository(null, 0, 'id+2022-11-27'),
89 $this->getTokenHandler()
90 );
91
92 $expected_response = <<<XML
93 <error_response>
94 <response_info>base url:GetRecord:identifier=prefix_id+2022-11-27</response_info>
95 <error>badArgument</error>
96 </error_response>
97 XML;
98
99 $response = $processor->getResponseToRequest($this->getRequest(
100 'base url',
101 Verb::GET_RECORD,
102 [Argument::IDENTIFIER->value => 'prefix_id+2022-11-27'],
103 false
104 ));
105
106 $this->assertXmlStringEqualsXmlString($expected_response, $response->saveXML());
107 }
108
109 public function testGetResponseToRequestGetRecordNoIdentifierError(): void
110 {
111 $processor = new RequestProcessor(
112 $this->getWriter(),
113 $this->getSettings('prefix_'),
114 $this->getRepository(null, 0, 'id+2022-11-27'),
115 $this->getTokenHandler()
116 );
117
118 $expected_response = <<<XML
119 <error_response>
120 <response_info>base url:GetRecord:metadataPrefix=oai_dc</response_info>
121 <error>badArgument</error>
122 </error_response>
123 XML;
124
125 $response = $processor->getResponseToRequest($this->getRequest(
126 'base url',
127 Verb::GET_RECORD,
128 [Argument::MD_PREFIX->value => 'oai_dc'],
129 false
130 ));
131
132 $this->assertXmlStringEqualsXmlString($expected_response, $response->saveXML());
133 }
134
135 public function testGetResponseToRequestGetRecordAdditionalArgumentError(): void
136 {
137 $processor = new RequestProcessor(
138 $this->getWriter(),
139 $this->getSettings('prefix_'),
140 $this->getRepository(null, 0, 'id+2022-11-27'),
141 $this->getTokenHandler()
142 );
143
144 $expected_response = <<<XML
145 <error_response>
146 <response_info>base url:GetRecord:identifier=prefix_id+2022-11-27,metadataPrefix=oai_dc,from=date</response_info>
147 <error>badArgument</error>
148 </error_response>
149 XML;
150
151 $response = $processor->getResponseToRequest($this->getRequest(
152 'base url',
153 Verb::GET_RECORD,
154 [Argument::IDENTIFIER->value => 'prefix_id+2022-11-27', Argument::MD_PREFIX->value => 'oai_dc', Argument::FROM_DATE->value => 'date'],
155 false
156 ));
157
158
159 $this->assertXmlStringEqualsXmlString($expected_response, $response->saveXML());
160 }
161
162 public function testGetResponseToRequestGetRecordWrongMDFormatError(): void
163 {
164 $processor = new RequestProcessor(
165 $this->getWriter(),
166 $this->getSettings('prefix_'),
167 $this->getRepository(null, 0, 'id+2022-11-27'),
168 $this->getTokenHandler()
169 );
170
171 $expected_response = <<<XML
172 <error_response>
173 <response_info>base url:GetRecord:identifier=prefix_id+2022-11-27,metadataPrefix=invalid</response_info>
174 <error>cannotDisseminateFormat</error>
175 </error_response>
176 XML;
177
178 $response = $processor->getResponseToRequest($this->getRequest(
179 'base url',
180 Verb::GET_RECORD,
181 [Argument::IDENTIFIER->value => 'prefix_id+2022-11-27', Argument::MD_PREFIX->value => 'invalid']
182 ));
183
184 $this->assertXmlStringEqualsXmlString($expected_response, $response->saveXML());
185 }
186
187 public function testGetResponseToRequestGetRecordInvalidIdentifierError(): void
188 {
189 $processor = new RequestProcessor(
190 $this->getWriter(),
191 $this->getSettings('prefix_'),
192 $this->getRepository(null, 0, 'id+2022-11-27'),
193 $this->getTokenHandler()
194 );
195
196 $expected_response = <<<XML
197 <error_response>
198 <response_info>base url:GetRecord:identifier=invalid_id+2022-11-27,metadataPrefix=oai_dc</response_info>
199 <error>idDoesNotExist</error>
200 </error_response>
201 XML;
202
203 $response = $processor->getResponseToRequest($this->getRequest(
204 'base url',
205 Verb::GET_RECORD,
206 [Argument::IDENTIFIER->value => 'invalid_id+2022-11-27', Argument::MD_PREFIX->value => 'oai_dc']
207 ));
208
209 $this->assertXmlStringEqualsXmlString($expected_response, $response->saveXML());
210 }
211
212 public function testGetResponseToRequestGetRecordNotFoundError(): void
213 {
214 $processor = new RequestProcessor(
215 $this->getWriter(),
216 $this->getSettings('prefix_'),
217 $this->getRepository(),
218 $this->getTokenHandler()
219 );
220
221 $expected_response = <<<XML
222 <error_response>
223 <response_info>base url:GetRecord:identifier=prefix_id+2022-11-27,metadataPrefix=oai_dc</response_info>
224 <error>idDoesNotExist</error>
225 </error_response>
226 XML;
227
228 $response = $processor->getResponseToRequest($this->getRequest(
229 'base url',
230 Verb::GET_RECORD,
231 [Argument::IDENTIFIER->value => 'prefix_id+2022-11-27', Argument::MD_PREFIX->value => 'oai_dc']
232 ));
233
234 $this->assertXmlStringEqualsXmlString($expected_response, $response->saveXML());
235 }
236
237 public function testGetResponseToRequestGetRecordMultipleErrors(): void
238 {
239 $processor = new RequestProcessor(
240 $this->getWriter(),
241 $this->getSettings('prefix_'),
242 $this->getRepository(),
243 $this->getTokenHandler()
244 );
245
246 $expected_response = <<<XML
247 <error_response>
248 <response_info>base url:GetRecord:identifier=prefix_id+2022-11-27,metadataPrefix=invalid,from=date</response_info>
249 <error>badArgument</error>
250 <error>cannotDisseminateFormat</error>
251 <error>idDoesNotExist</error>
252 </error_response>
253 XML;
254
255 $response = $processor->getResponseToRequest($this->getRequest(
256 'base url',
257 Verb::GET_RECORD,
258 [Argument::IDENTIFIER->value => 'prefix_id+2022-11-27', Argument::MD_PREFIX->value => 'invalid', Argument::FROM_DATE->value => 'date'],
259 false
260 ));
261
262 $this->assertXmlStringEqualsXmlString($expected_response, $response->saveXML());
263 }
264}
error(string $a_errmsg)
$response
Definition: xapitoken.php:90