Adapt tests for PhpUnit 7.5
[friendica.git/.git] / tests / src / Util / Logger / SyslogLoggerTest.php
1 <?php
2 /**
3  * @copyright Copyright (C) 2010-2021, the Friendica project
4  *
5  * @license GNU AGPL version 3 or any later version
6  *
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.
11  *
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.
16  *
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/>.
19  *
20  */
21
22 namespace Friendica\Test\src\Util\Logger;
23
24 use Friendica\Util\Logger\SyslogLogger;
25 use Psr\Log\LogLevel;
26
27 class SyslogLoggerTest extends AbstractLoggerTest
28 {
29         /**
30          * @var SyslogLoggerWrapper
31          */
32         private $logger;
33
34         protected function setUp()
35         {
36                 parent::setUp();
37
38                 $this->introspection->shouldReceive('addClasses')->with([SyslogLogger::class]);
39         }
40
41         /**
42          * {@inheritdoc}
43          */
44         protected function getContent()
45         {
46                 return $this->logger->getContent();
47         }
48
49         /**
50          * {@inheritdoc}
51          */
52         protected function getInstance($level = LogLevel::DEBUG)
53         {
54                 $this->logger = new SyslogLoggerWrapper('test', $this->introspection, $level);
55
56                 return $this->logger;
57         }
58
59
60         /**
61          * Test when the minimum level is not valid
62          */
63         public function testWrongMinimumLevel()
64         {
65                 $this->expectException(\InvalidArgumentException::class);
66                 $this->expectExceptionMessageRegExp("/The level \".*\" is not valid./");
67                 
68                 $logger = new SyslogLoggerWrapper('test', $this->introspection, 'NOPE');
69         }
70
71         /**
72          * Test when the minimum level is not valid
73          */
74         public function testWrongLogLevel()
75         {
76                 $this->expectException(\InvalidArgumentException::class);
77                 $this->expectExceptionMessageRegExp("/The level \".*\" is not valid./");
78
79                 $logger = new SyslogLoggerWrapper('test', $this->introspection);
80
81                 $logger->log('NOPE', 'a test');
82         }
83
84         /**
85          * Test when the logfacility is wrong (string)
86          */
87         public function testServerException()
88         {
89                 $this->expectException(\UnexpectedValueException::class);
90                 $this->expectExceptionMessageRegExp("/Can\'t open syslog for ident \".*\" and facility \".*\": .* /");
91
92                 $logger = new SyslogLoggerWrapper('test', $this->introspection, LogLevel::DEBUG, null, 'a string');
93                 $logger->emergency('not working');
94         }
95
96         /**
97          * Test the close() method
98          * @doesNotPerformAssertions
99          */
100         public function testClose()
101         {
102                 $logger = new SyslogLoggerWrapper('test', $this->introspection);
103                 $logger->emergency('test');
104                 $logger->close();
105                 // Reopened itself
106                 $logger->emergency('test');
107         }
108 }