19 declare(strict_types=1);
40 $url = $this->createMock(URI::class);
41 $url->method(
'__toString')->willReturn($string);
48 bool $processor_throws_exception =
false,
49 bool $processor_throws_error =
false,
50 bool $processor_triggers_error =
false 55 $processor_throws_exception,
56 $processor_throws_error,
57 $processor_triggers_error
62 protected bool $activated,
63 protected string $content,
64 protected bool $processor_throws_exception,
65 protected bool $processor_throws_error,
66 protected bool $processor_triggers_error
69 public array $exposed_responses = [];
71 public function sendResponseAndClose(
76 $this->exposed_responses[] = [
77 'status' => $status_code,
79 'body' => $body?->saveXML($body->documentElement)
87 return new class ($this->activated) extends
NullSettings {
89 protected bool $activated
93 public function isOAIPMHActive():
bool 95 return $this->activated;
100 public function requestParser(): RequestParserInterface
102 return new class ($this->content) extends
NullParser {
103 public function __construct(
protected string $content)
109 return new class ($this->content, $base_url) extends
NullRequest {
111 protected string $content,
112 protected URI $base_url
116 public function baseURL():
URI 118 return $this->base_url;
121 public function exposeContent():
string 123 return $this->content;
133 $this->processor_throws_exception,
134 $this->processor_throws_error,
135 $this->processor_triggers_error
138 protected bool $throws_exception,
139 protected bool $throws_error,
140 protected bool $triggers_error
144 public function getResponseToRequest(
RequestInterface $request): \DomDocument
146 if ($this->throws_exception) {
147 throw new \ilMDOERExposerException(
'exception message');
149 if ($this->throws_error) {
152 if ($this->triggers_error) {
158 $content = $request->exposeContent();
159 $doc = new \DOMDocument();
160 $doc->appendChild($doc->createElement(
'content',
$url .
'~!~' . $content));
169 return $this->wrapper;
172 public function exposeHTTPResponses(): array
174 return $this->httpWrapper()->exposed_responses;
183 $base_url = $this->
getURI($base_url);
184 return new class ($initiator, $base_url) extends
Handler {
185 public array $exposed_logged_errors = [];
189 protected readonly
URI $base_url
193 protected function logError(
string $message):
void 195 $this->exposed_logged_errors[] =
$message;
213 $this->assertCount(1, $initiator->exposeHTTPResponses());
215 [
'status' => 200,
'message' =>
'',
'body' =>
'<content>some url~!~some content</content>'],
216 $initiator->exposeHTTPResponses()[0] ?? []
233 $this->assertCount(1, $initiator->exposeHTTPResponses());
235 [
'status' => 404,
'message' =>
'',
'body' =>
null],
236 $initiator->exposeHTTPResponses()[0] ?? []
256 $this->assertCount(1, $initiator->exposeHTTPResponses());
258 [
'status' => 500,
'message' =>
'exception message',
'body' =>
null],
259 $initiator->exposeHTTPResponses()[0] ?? []
262 [
'exception message'],
283 $this->assertCount(1, $initiator->exposeHTTPResponses());
285 [
'status' => 500,
'message' =>
'thrown error message',
'body' =>
null],
286 $initiator->exposeHTTPResponses()[0] ?? []
289 [
'thrown error message'],
310 $this->assertCount(1, $initiator->exposeHTTPResponses());
312 [
'status' => 500,
'message' =>
'Division by zero',
'body' =>
null],
313 $initiator->exposeHTTPResponses()[0] ?? []
316 [
'Division by zero'],
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
__construct()
Constructor setup ILIAS global object public.