summaryrefslogtreecommitdiffstats
path: root/test/php/Lib/StrikingCommandTransport.php
diff options
context:
space:
mode:
Diffstat (limited to 'test/php/Lib/StrikingCommandTransport.php')
-rw-r--r--test/php/Lib/StrikingCommandTransport.php28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/php/Lib/StrikingCommandTransport.php b/test/php/Lib/StrikingCommandTransport.php
new file mode 100644
index 0000000..5e14ef9
--- /dev/null
+++ b/test/php/Lib/StrikingCommandTransport.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Tests\Icinga\Module\Icingadb\Lib;
+
+use Icinga\Application\Config;
+use Icinga\Data\ConfigObject;
+use Icinga\Module\Icingadb\Command\IcingaApiCommand;
+use Icinga\Module\Icingadb\Command\Transport\ApiCommandTransport;
+use Icinga\Module\Icingadb\Command\Transport\CommandTransport;
+use Icinga\Module\Icingadb\Command\Transport\CommandTransportException;
+
+class StrikingCommandTransport extends CommandTransport
+{
+ public static function getConfig(): Config
+ {
+ return Config::fromArray(['endpoint1' => ['host' => 'endpointA'], 'endpoint2' => ['host' => 'endpointB']]);
+ }
+
+ public static function createTransport(ConfigObject $config): ApiCommandTransport
+ {
+ return (new class extends ApiCommandTransport {
+ protected function sendCommand(IcingaApiCommand $command)
+ {
+ throw new CommandTransportException(sprintf('%s strikes!', $this->getHost()));
+ }
+ })->setHost($config->host);
+ }
+}