PluginProbe
WCPOS – Point of Sale (POS) plugin for WooCommerce / 1.10.20
WCPOS – Point of Sale (POS) plugin for WooCommerce v1.10.20
1.10.20 1.10.19 1.10.18 1.10.17 1.10.16 1.10.15 1.10.13 1.10.14 1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 untagged-3d9b7ccddc54df87c672 1.10.7 1.10.6 1.10.5 1.10.3 1.10.4 1.10.2 1.10.1 1.10.0 1.9.17 1.9.15 1.9.16 All 164 releases
woocommerce-pos / vendor_prefixed / psr / log / Psr / Log / Test / LoggerInterfaceTest.php

LoggerInterfaceTest.php in WCPOS – Point of Sale (POS) plugin for WooCommerce 1.10.20, at vendor_prefixed/psr/log/Psr/Log/Test/LoggerInterfaceTest.php

94 lines 4.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WCPOS\Vendor\Psr\Log\Test;
4
5 use WCPOS\Vendor\Psr\Log\LoggerInterface;
6 use WCPOS\Vendor\Psr\Log\LogLevel;
7 use WCPOS\Vendor\PHPUnit\Framework\TestCase;
8 /**
9 * Provides a base test class for ensuring compliance with the LoggerInterface.
10 *
11 * Implementors can extend the class and implement abstract methods to run this
12 * as part of their test suite.
13 */
14 abstract class LoggerInterfaceTest extends TestCase
15 {
16 /**
17 * @return LoggerInterface
18 */
19 public abstract function getLogger();
20 /**
21 * This must return the log messages in order.
22 *
23 * The simple formatting of the messages is: "<LOG LEVEL> <MESSAGE>".
24 *
25 * Example ->error('Foo') would yield "error Foo".
26 *
27 * @return string[]
28 */
29 public abstract function getLogs();
30 public function testImplements()
31 {
32 $this->assertInstanceOf('WCPOS\\Vendor\\Psr\\Log\\LoggerInterface', $this->getLogger());
33 }
34 /**
35 * @dataProvider provideLevelsAndMessages
36 */
37 public function testLogsAtAllLevels($level, $message)
38 {
39 $logger = $this->getLogger();
40 $logger->{$level}($message, array('user' => 'Bob'));
41 $logger->log($level, $message, array('user' => 'Bob'));
42 $expected = array($level . ' message of level ' . $level . ' with context: Bob', $level . ' message of level ' . $level . ' with context: Bob');
43 $this->assertEquals($expected, $this->getLogs());
44 }
45 public function provideLevelsAndMessages()
46 {
47 return array(LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'), LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'), LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'), LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'), LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'), LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'), LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'), LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'));
48 }
49 /**
50 * @expectedException \Psr\Log\InvalidArgumentException
51 */
52 public function testThrowsOnInvalidLevel()
53 {
54 $logger = $this->getLogger();
55 $logger->log('invalid level', 'Foo');
56 }
57 public function testContextReplacement()
58 {
59 $logger = $this->getLogger();
60 $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar'));
61 $expected = array('info {Message {nothing} Bob Bar a}');
62 $this->assertEquals($expected, $this->getLogs());
63 }
64 public function testObjectCastToString()
65 {
66 if (\method_exists($this, 'createPartialMock')) {
67 $dummy = $this->createPartialMock('WCPOS\\Vendor\\Psr\\Log\\Test\\DummyTest', array('__toString'));
68 } else {
69 $dummy = $this->getMock('WCPOS\\Vendor\\Psr\\Log\\Test\\DummyTest', array('__toString'));
70 }
71 $dummy->expects($this->once())->method('__toString')->will($this->returnValue('DUMMY'));
72 $this->getLogger()->warning($dummy);
73 $expected = array('warning DUMMY');
74 $this->assertEquals($expected, $this->getLogs());
75 }
76 public function testContextCanContainAnything()
77 {
78 $closed = \fopen('php://memory', 'r');
79 \fclose($closed);
80 $context = array('bool' => \true, 'null' => null, 'string' => 'Foo', 'int' => 0, 'float' => 0.5, 'nested' => array('with object' => new DummyTest()), 'object' => new \DateTime(), 'resource' => \fopen('php://memory', 'r'), 'closed' => $closed);
81 $this->getLogger()->warning('Crazy context data', $context);
82 $expected = array('warning Crazy context data');
83 $this->assertEquals($expected, $this->getLogs());
84 }
85 public function testContextExceptionKeyCanBeExceptionOrOtherValues()
86 {
87 $logger = $this->getLogger();
88 $logger->warning('Random message', array('exception' => 'oops'));
89 $logger->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail')));
90 $expected = array('warning Random message', 'critical Uncaught Exception!');
91 $this->assertEquals($expected, $this->getLogs());
92 }
93 }
94