diff options
Diffstat (limited to 'test/php/Lib/StrikingCommandTransport.php')
-rw-r--r-- | test/php/Lib/StrikingCommandTransport.php | 28 |
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); + } +} |