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 |
MethodGeneratorTest.php
01 <?php
02 /*
03 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
04 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
05 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
06 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
07 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
08 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
09 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
10 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
11 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
12 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
13 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
14 *
15 * This software consists of voluntary contributions made by many individuals
16 * and is licensed under the MIT license.
17 */
18
19 namespace ProxyManagerTest\Generator;
20
21 use PHPUnit_Framework_TestCase;
22 use ProxyManager\Generator\MethodGenerator;
23 use ProxyManager\Generator\ParameterGenerator;
24 use Zend\Code\Reflection\MethodReflection;
25
26 /**
27 * Tests for {@see \ProxyManager\Generator\MethodGenerator}
28 *
29 * @author Marco Pivetta <ocramius@gmail.com>
30 * @license MIT
31 *
32 * @covers \ProxyManager\Generator\MethodGenerator
33 * @group Coverage
34 */
35 class MethodGeneratorTest extends PHPUnit_Framework_TestCase
36 {
37 public function testGenerateSimpleMethod()
38 {
39 $methodGenerator = new MethodGenerator();
40
41 $methodGenerator->setReturnsReference(true);
42 $methodGenerator->setName('methodName');
43 $methodGenerator->setVisibility('protected');
44 $methodGenerator->setBody('/* body */');
45 $methodGenerator->setDocBlock('docBlock');
46 $methodGenerator->setParameter(new ParameterGenerator('foo'));
47
48 $this->assertSame(true, $methodGenerator->returnsReference());
49 $this->assertStringMatchesFormat(
50 '%a/**%adocBlock%a*/%aprotected function & methodName($foo)%a{%a/* body */%a}',
51 $methodGenerator->generate()
52 );
53 }
54
55 /**
56 * Verify that building from reflection works
57 */
58 public function testGenerateFromReflection()
59 {
60 $method = MethodGenerator::fromReflection(new MethodReflection(__CLASS__, __FUNCTION__));
61
62 $this->assertSame(__FUNCTION__, $method->getName());
63 $this->assertSame(MethodGenerator::VISIBILITY_PUBLIC, $method->getVisibility());
64 $this->assertFalse($method->isStatic());
65 $this->assertSame('Verify that building from reflection works', $method->getDocBlock()->getShortDescription());
66
67 $method = MethodGenerator::fromReflection(
68 new MethodReflection('ProxyManagerTestAsset\\BaseClass', 'protectedMethod')
69 );
70
71 $this->assertSame(MethodGenerator::VISIBILITY_PROTECTED, $method->getVisibility());
72
73 $method = MethodGenerator::fromReflection(
74 new MethodReflection('ProxyManagerTestAsset\\BaseClass', 'privateMethod')
75 );
76
77 $this->assertSame(MethodGenerator::VISIBILITY_PRIVATE, $method->getVisibility());
78 }
79
80 public function testGeneratedParametersFromReflection()
81 {
82 $method = MethodGenerator::fromReflection(new MethodReflection(
83 'ProxyManagerTestAsset\\BaseClass',
84 'publicTypeHintedMethod'
85 ));
86
87 $this->assertSame('publicTypeHintedMethod', $method->getName());
88
89 $parameters = $method->getParameters();
90
91 $this->assertCount(1, $parameters);
92
93 $param = $parameters['param'];
94
95 $this->assertSame('stdClass', $param->getType());
96 }
97 }
98