0
0
Fork 0
mirror of https://github.com/nextcloud/server.git synced 2025-01-04 11:13:20 +00:00
nextcloud_server/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php
Andy Scherzinger 56d4f3aa2d
chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-28 14:41:28 +02:00

72 lines
1.9 KiB
PHP

<?php
/**
* SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-only
*/
namespace OCA\DAV\Tests\unit\Connector\Sabre;
use OC\SystemConfig;
use OCA\DAV\Connector\Sabre\Exception\InvalidPath;
use OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin;
use OCA\DAV\Exception\ServerMaintenanceMode;
use Psr\Log\LoggerInterface;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\Server;
use Test\TestCase;
class ExceptionLoggerPluginTest extends TestCase {
/** @var Server */
private $server;
/** @var ExceptionLoggerPlugin */
private $plugin;
/** @var LoggerInterface | \PHPUnit\Framework\MockObject\MockObject */
private $logger;
private function init(): void {
$config = $this->createMock(SystemConfig::class);
$config->expects($this->any())
->method('getValue')
->willReturnCallback(function ($key, $default) {
switch ($key) {
case 'loglevel':
return 0;
default:
return $default;
}
});
$this->server = new Server();
$this->logger = $this->createMock(LoggerInterface::class);
$this->plugin = new ExceptionLoggerPlugin('unit-test', $this->logger);
$this->plugin->initialize($this->server);
}
/**
* @dataProvider providesExceptions
*/
public function testLogging(string $expectedLogLevel, \Throwable $e): void {
$this->init();
$this->logger->expects($this->once())
->method($expectedLogLevel)
->with($e->getMessage(), ['app' => 'unit-test','exception' => $e]);
$this->plugin->logException($e);
}
public function providesExceptions() {
return [
['debug', new NotFound()],
['debug', new ServerMaintenanceMode('System is in maintenance mode.')],
// Faking a translation
['debug', new ServerMaintenanceMode('Syst3m 1s 1n m41nt3n4nc3 m0d3.')],
['debug', new ServerMaintenanceMode('Upgrade needed')],
['critical', new InvalidPath('This path leads to nowhere')]
];
}
}