scratch – Blame information for rev 122

Subversion Repositories:
Rev:
Rev Author Line No. Line
120 office 1 <?php
2  
3 /*
4 * This file is part of the Monolog package.
5 *
6 * (c) Jordi Boggiano <j.boggiano@seld.be>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11  
12 namespace Monolog;
13  
14 class RegistryTest extends \PHPUnit_Framework_TestCase
15 {
16 protected function setUp()
17 {
18 Registry::clear();
19 }
20  
21 /**
22 * @dataProvider hasLoggerProvider
23 * @covers Monolog\Registry::hasLogger
24 */
25 public function testHasLogger(array $loggersToAdd, array $loggersToCheck, array $expectedResult)
26 {
27 foreach ($loggersToAdd as $loggerToAdd) {
28 Registry::addLogger($loggerToAdd);
29 }
30 foreach ($loggersToCheck as $index => $loggerToCheck) {
31 $this->assertSame($expectedResult[$index], Registry::hasLogger($loggerToCheck));
32 }
33 }
34  
35 public function hasLoggerProvider()
36 {
37 $logger1 = new Logger('test1');
38 $logger2 = new Logger('test2');
39 $logger3 = new Logger('test3');
40  
41 return array(
42 // only instances
43 array(
44 array($logger1),
45 array($logger1, $logger2),
46 array(true, false),
47 ),
48 // only names
49 array(
50 array($logger1),
51 array('test1', 'test2'),
52 array(true, false),
53 ),
54 // mixed case
55 array(
56 array($logger1, $logger2),
57 array('test1', $logger2, 'test3', $logger3),
58 array(true, true, false, false),
59 ),
60 );
61 }
62  
63 /**
64 * @covers Monolog\Registry::clear
65 */
66 public function testClearClears()
67 {
68 Registry::addLogger(new Logger('test1'), 'log');
69 Registry::clear();
70  
71 $this->setExpectedException('\InvalidArgumentException');
72 Registry::getInstance('log');
73 }
74  
75 /**
76 * @dataProvider removedLoggerProvider
77 * @covers Monolog\Registry::addLogger
78 * @covers Monolog\Registry::removeLogger
79 */
80 public function testRemovesLogger($loggerToAdd, $remove)
81 {
82 Registry::addLogger($loggerToAdd);
83 Registry::removeLogger($remove);
84  
85 $this->setExpectedException('\InvalidArgumentException');
86 Registry::getInstance($loggerToAdd->getName());
87 }
88  
89 public function removedLoggerProvider()
90 {
91 $logger1 = new Logger('test1');
92  
93 return array(
94 array($logger1, $logger1),
95 array($logger1, 'test1'),
96 );
97 }
98  
99 /**
100 * @covers Monolog\Registry::addLogger
101 * @covers Monolog\Registry::getInstance
102 * @covers Monolog\Registry::__callStatic
103 */
104 public function testGetsSameLogger()
105 {
106 $logger1 = new Logger('test1');
107 $logger2 = new Logger('test2');
108  
109 Registry::addLogger($logger1, 'test1');
110 Registry::addLogger($logger2);
111  
112 $this->assertSame($logger1, Registry::getInstance('test1'));
113 $this->assertSame($logger2, Registry::test2());
114 }
115  
116 /**
117 * @expectedException \InvalidArgumentException
118 * @covers Monolog\Registry::getInstance
119 */
120 public function testFailsOnNonExistantLogger()
121 {
122 Registry::getInstance('test1');
123 }
124  
125 /**
126 * @covers Monolog\Registry::addLogger
127 */
128 public function testReplacesLogger()
129 {
130 $log1 = new Logger('test1');
131 $log2 = new Logger('test2');
132  
133 Registry::addLogger($log1, 'log');
134  
135 Registry::addLogger($log2, 'log', true);
136  
137 $this->assertSame($log2, Registry::getInstance('log'));
138 }
139  
140 /**
141 * @expectedException \InvalidArgumentException
142 * @covers Monolog\Registry::addLogger
143 */
144 public function testFailsOnUnspecifiedReplacement()
145 {
146 $log1 = new Logger('test1');
147 $log2 = new Logger('test2');
148  
149 Registry::addLogger($log1, 'log');
150  
151 Registry::addLogger($log2, 'log');
152 }
153 }