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 / TestLogger.php

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

133 lines 4.4 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\AbstractLogger;
6 /**
7 * Used for testing purposes.
8 *
9 * It records all records and gives you access to them for verification.
10 *
11 * @method bool hasEmergency($record)
12 * @method bool hasAlert($record)
13 * @method bool hasCritical($record)
14 * @method bool hasError($record)
15 * @method bool hasWarning($record)
16 * @method bool hasNotice($record)
17 * @method bool hasInfo($record)
18 * @method bool hasDebug($record)
19 *
20 * @method bool hasEmergencyRecords()
21 * @method bool hasAlertRecords()
22 * @method bool hasCriticalRecords()
23 * @method bool hasErrorRecords()
24 * @method bool hasWarningRecords()
25 * @method bool hasNoticeRecords()
26 * @method bool hasInfoRecords()
27 * @method bool hasDebugRecords()
28 *
29 * @method bool hasEmergencyThatContains($message)
30 * @method bool hasAlertThatContains($message)
31 * @method bool hasCriticalThatContains($message)
32 * @method bool hasErrorThatContains($message)
33 * @method bool hasWarningThatContains($message)
34 * @method bool hasNoticeThatContains($message)
35 * @method bool hasInfoThatContains($message)
36 * @method bool hasDebugThatContains($message)
37 *
38 * @method bool hasEmergencyThatMatches($message)
39 * @method bool hasAlertThatMatches($message)
40 * @method bool hasCriticalThatMatches($message)
41 * @method bool hasErrorThatMatches($message)
42 * @method bool hasWarningThatMatches($message)
43 * @method bool hasNoticeThatMatches($message)
44 * @method bool hasInfoThatMatches($message)
45 * @method bool hasDebugThatMatches($message)
46 *
47 * @method bool hasEmergencyThatPasses($message)
48 * @method bool hasAlertThatPasses($message)
49 * @method bool hasCriticalThatPasses($message)
50 * @method bool hasErrorThatPasses($message)
51 * @method bool hasWarningThatPasses($message)
52 * @method bool hasNoticeThatPasses($message)
53 * @method bool hasInfoThatPasses($message)
54 * @method bool hasDebugThatPasses($message)
55 */
56 class TestLogger extends AbstractLogger
57 {
58 /**
59 * @var array
60 */
61 public $records = [];
62 public $recordsByLevel = [];
63 /**
64 * @inheritdoc
65 */
66 public function log($level, $message, array $context = [])
67 {
68 $record = ['level' => $level, 'message' => $message, 'context' => $context];
69 $this->recordsByLevel[$record['level']][] = $record;
70 $this->records[] = $record;
71 }
72 public function hasRecords($level)
73 {
74 return isset($this->recordsByLevel[$level]);
75 }
76 public function hasRecord($record, $level)
77 {
78 if (\is_string($record)) {
79 $record = ['message' => $record];
80 }
81 return $this->hasRecordThatPasses(function ($rec) use($record) {
82 if ($rec['message'] !== $record['message']) {
83 return \false;
84 }
85 if (isset($record['context']) && $rec['context'] !== $record['context']) {
86 return \false;
87 }
88 return \true;
89 }, $level);
90 }
91 public function hasRecordThatContains($message, $level)
92 {
93 return $this->hasRecordThatPasses(function ($rec) use($message) {
94 return \strpos($rec['message'], $message) !== \false;
95 }, $level);
96 }
97 public function hasRecordThatMatches($regex, $level)
98 {
99 return $this->hasRecordThatPasses(function ($rec) use($regex) {
100 return \preg_match($regex, $rec['message']) > 0;
101 }, $level);
102 }
103 public function hasRecordThatPasses(callable $predicate, $level)
104 {
105 if (!isset($this->recordsByLevel[$level])) {
106 return \false;
107 }
108 foreach ($this->recordsByLevel[$level] as $i => $rec) {
109 if (\call_user_func($predicate, $rec, $i)) {
110 return \true;
111 }
112 }
113 return \false;
114 }
115 public function __call($method, $args)
116 {
117 if (\preg_match('/(.*)(Debug|Info|Notice|Warning|Error|Critical|Alert|Emergency)(.*)/', $method, $matches) > 0) {
118 $genericMethod = $matches[1] . ('Records' !== $matches[3] ? 'Record' : '') . $matches[3];
119 $level = \strtolower($matches[2]);
120 if (\method_exists($this, $genericMethod)) {
121 $args[] = $level;
122 return \call_user_func_array([$this, $genericMethod], $args);
123 }
124 }
125 throw new \BadMethodCallException('Call to undefined method ' . \get_class($this) . '::' . $method . '()');
126 }
127 public function reset()
128 {
129 $this->records = [];
130 $this->recordsByLevel = [];
131 }
132 }
133