Verzeichnisstruktur phpBB-3.2.0
- Veröffentlicht
- 06.01.2017
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
AbstractBaseFactoryTest.php
001 <?php
002 /*
003 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
004 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
005 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
006 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
007 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
008 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
009 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
010 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
011 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
012 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
013 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
014 *
015 * This software consists of voluntary contributions made by many individuals
016 * and is licensed under the MIT license.
017 */
018
019 namespace ProxyManagerTest\Factory;
020
021 use PHPUnit_Framework_TestCase;
022 use ProxyManager\Generator\Util\UniqueIdentifierGenerator;
023 use ReflectionMethod;
024
025 /**
026 * Tests for {@see \ProxyManager\Factory\AbstractBaseFactory}
027 *
028 * @author Marco Pivetta <ocramius@gmail.com>
029 * @license MIT
030 *
031 * @covers \ProxyManager\Factory\AbstractBaseFactory
032 * @group Coverage
033 */
034 class AbstractBaseFactoryTest extends PHPUnit_Framework_TestCase
035 {
036 /**
037 * @var \ProxyManager\Factory\AbstractBaseFactory
038 */
039 private $factory;
040
041 /**
042 * @var \ProxyManager\ProxyGenerator\ProxyGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject
043 */
044 private $generator;
045
046 /**
047 * @var \ProxyManager\Inflector\ClassNameInflectorInterface|\PHPUnit_Framework_MockObject_MockObject
048 */
049 private $classNameInflector;
050
051 /**
052 * @var \ProxyManager\GeneratorStrategy\GeneratorStrategyInterface|\PHPUnit_Framework_MockObject_MockObject
053 */
054 private $generatorStrategy;
055
056 /**
057 * @var \ProxyManager\Autoloader\AutoloaderInterface|\PHPUnit_Framework_MockObject_MockObject
058 */
059 private $proxyAutoloader;
060
061 /**
062 * @var \ProxyManager\Signature\SignatureCheckerInterface|\PHPUnit_Framework_MockObject_MockObject
063 */
064 private $signatureChecker;
065
066 /**
067 * @var \ProxyManager\Signature\ClassSignatureGeneratorInterface|\PHPUnit_Framework_MockObject_MockObject
068 */
069 private $classSignatureGenerator;
070
071 /**
072 * {@inheritDoc}
073 */
074 public function setUp()
075 {
076 $configuration = $this->getMock('ProxyManager\\Configuration');
077 $this->generator = $this->getMock('ProxyManager\\ProxyGenerator\\ProxyGeneratorInterface');
078 $this->classNameInflector = $this->getMock('ProxyManager\\Inflector\\ClassNameInflectorInterface');
079 $this->generatorStrategy = $this->getMock('ProxyManager\\GeneratorStrategy\\GeneratorStrategyInterface');
080 $this->proxyAutoloader = $this->getMock('ProxyManager\\Autoloader\\AutoloaderInterface');
081 $this->signatureChecker = $this->getMock('ProxyManager\\Signature\\SignatureCheckerInterface');
082 $this->classSignatureGenerator = $this->getMock('ProxyManager\\Signature\\ClassSignatureGeneratorInterface');
083
084 $configuration
085 ->expects($this->any())
086 ->method('getClassNameInflector')
087 ->will($this->returnValue($this->classNameInflector));
088
089 $configuration
090 ->expects($this->any())
091 ->method('getGeneratorStrategy')
092 ->will($this->returnValue($this->generatorStrategy));
093
094 $configuration
095 ->expects($this->any())
096 ->method('getProxyAutoloader')
097 ->will($this->returnValue($this->proxyAutoloader));
098
099 $configuration
100 ->expects($this->any())
101 ->method('getSignatureChecker')
102 ->will($this->returnValue($this->signatureChecker));
103
104 $configuration
105 ->expects($this->any())
106 ->method('getClassSignatureGenerator')
107 ->will($this->returnValue($this->classSignatureGenerator));
108
109 $this
110 ->classNameInflector
111 ->expects($this->any())
112 ->method('getUserClassName')
113 ->will($this->returnValue('stdClass'));
114
115 $this->factory = $this->getMockForAbstractClass(
116 'ProxyManager\\Factory\\AbstractBaseFactory',
117 array($configuration)
118 );
119
120 $this->factory->expects($this->any())->method('getGenerator')->will($this->returnValue($this->generator));
121 }
122
123 public function testGeneratesClass()
124 {
125 $generateProxy = new ReflectionMethod($this->factory, 'generateProxy');
126
127 $generateProxy->setAccessible(true);
128 $generatedClass = UniqueIdentifierGenerator::getIdentifier('fooBar');
129
130 $this
131 ->classNameInflector
132 ->expects($this->any())
133 ->method('getProxyClassName')
134 ->with('stdClass')
135 ->will($this->returnValue($generatedClass));
136
137 $this
138 ->generatorStrategy
139 ->expects($this->once())
140 ->method('generate')
141 ->with($this->isInstanceOf('Zend\\Code\\Generator\\ClassGenerator'));
142 $this
143 ->proxyAutoloader
144 ->expects($this->once())
145 ->method('__invoke')
146 ->with($generatedClass)
147 ->will($this->returnCallback(function ($className) {
148 eval('class ' . $className . ' {}');
149 }));
150
151 $this->signatureChecker->expects($this->atLeastOnce())->method('checkSignature');
152 $this->classSignatureGenerator->expects($this->once())->method('addSignature')->will($this->returnArgument(0));
153
154 $this->assertSame($generatedClass, $generateProxy->invoke($this->factory, 'stdClass'));
155 $this->assertTrue(class_exists($generatedClass, false));
156 $this->assertSame($generatedClass, $generateProxy->invoke($this->factory, 'stdClass'));
157 }
158 }
159