3 * @copyright Copyright (C) 2010-2021, the Friendica project
5 * @license GNU AGPL version 3 or any later version
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as
9 * published by the Free Software Foundation, either version 3 of the
10 * License, or (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22 namespace Friendica\Test\src\Util\Logger;
24 use Friendica\Util\Logger\SyslogLogger;
27 class SyslogLoggerTest extends AbstractLoggerTest
30 * @var SyslogLoggerWrapper
34 protected function setUp()
38 $this->introspection->shouldReceive('addClasses')->with([SyslogLogger::class]);
44 protected function getContent()
46 return $this->logger->getContent();
52 protected function getInstance($level = LogLevel::DEBUG)
54 $this->logger = new SyslogLoggerWrapper('test', $this->introspection, $level);
61 * Test when the minimum level is not valid
63 public function testWrongMinimumLevel()
65 $this->expectException(\InvalidArgumentException::class);
66 $this->expectExceptionMessageRegExp("/The level \".*\" is not valid./");
68 $logger = new SyslogLoggerWrapper('test', $this->introspection, 'NOPE');
72 * Test when the minimum level is not valid
74 public function testWrongLogLevel()
76 $this->expectException(\InvalidArgumentException::class);
77 $this->expectExceptionMessageRegExp("/The level \".*\" is not valid./");
79 $logger = new SyslogLoggerWrapper('test', $this->introspection);
81 $logger->log('NOPE', 'a test');
85 * Test when the logfacility is wrong (string)
87 public function testServerException()
89 $this->expectException(\UnexpectedValueException::class);
90 $this->expectExceptionMessageRegExp("/Can\'t open syslog for ident \".*\" and facility \".*\": .* /");
92 $logger = new SyslogLoggerWrapper('test', $this->introspection, LogLevel::DEBUG, null, 'a string');
93 $logger->emergency('not working');
97 * Test the close() method
98 * @doesNotPerformAssertions
100 public function testClose()
102 $logger = new SyslogLoggerWrapper('test', $this->introspection);
103 $logger->emergency('test');
106 $logger->emergency('test');