[ Index ] |
PHP Cross Reference of phpBB-3.2.11-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 /* 3 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 4 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 5 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 6 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 7 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 8 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 9 * 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\ParameterGenerator; 23 use Zend\Code\Reflection\ParameterReflection; 24 25 /** 26 * Tests for {@see \ProxyManager\Generator\ParameterGenerator} 27 * 28 * @author Marco Pivetta <ocramius@gmail.com> 29 * @license MIT 30 * 31 * @covers \ProxyManager\Generator\ParameterGenerator 32 * @group Coverage 33 */ 34 class ParameterGeneratorTest extends PHPUnit_Framework_TestCase 35 { 36 public function testGeneratesProperTypeHint() 37 { 38 $generator = new ParameterGenerator('foo'); 39 40 $generator->setType('array'); 41 $this->assertSame('array $foo', $generator->generate()); 42 43 $generator->setType('stdClass'); 44 $this->assertSame('\\stdClass $foo', $generator->generate()); 45 46 $generator->setType('\\fooClass'); 47 $this->assertSame('\\fooClass $foo', $generator->generate()); 48 } 49 50 public function testGeneratesMethodWithCallableType() 51 { 52 if (PHP_VERSION_ID < 50400) { 53 $this->markTestSkipped('`callable` is only supported in PHP >=5.4.0'); 54 } 55 56 $generator = new ParameterGenerator(); 57 58 $generator->setType('callable'); 59 $generator->setName('foo'); 60 61 $this->assertSame('callable $foo', $generator->generate()); 62 } 63 64 public function testVisitMethodWithCallable() 65 { 66 if (PHP_VERSION_ID < 50400) { 67 $this->markTestSkipped('`callable` is only supported in PHP >=5.4.0'); 68 } 69 70 $parameter = new ParameterReflection( 71 array('ProxyManagerTestAsset\\CallableTypeHintClass', 'callableTypeHintMethod'), 72 'parameter' 73 ); 74 75 $generator = ParameterGenerator::fromReflection($parameter); 76 77 $this->assertSame('callable', $generator->getType()); 78 } 79 80 public function testReadsParameterDefaults() 81 { 82 $parameter = ParameterGenerator::fromReflection(new ParameterReflection( 83 array( 84 'ProxyManagerTestAsset\\ClassWithMethodWithDefaultParameters', 85 'publicMethodWithDefaults' 86 ), 87 'parameter' 88 )); 89 90 /* @var $defaultValue \Zend\Code\Generator\ValueGenerator */ 91 $defaultValue = $parameter->getDefaultValue(); 92 93 $this->assertInstanceOf('Zend\\Code\\Generator\\ValueGenerator', $defaultValue); 94 $this->assertSame(array('foo'), $defaultValue->getValue()); 95 96 $this->assertStringMatchesFormat('array%a$parameter%a=%aarray(\'foo\')', $parameter->generate()); 97 } 98 99 public function testReadsParameterTypeHint() 100 { 101 $parameter = ParameterGenerator::fromReflection(new ParameterReflection( 102 array('ProxyManagerTestAsset\\BaseClass', 'publicTypeHintedMethod'), 103 'param' 104 )); 105 106 $this->assertSame('stdClass', $parameter->getType()); 107 } 108 109 public function testGeneratesParameterPassedByReference() 110 { 111 $parameter = new ParameterGenerator('foo'); 112 113 $parameter->setPassedByReference(true); 114 115 $this->assertStringMatchesFormat('&%A$foo', $parameter->generate()); 116 } 117 118 public function testGeneratesDefaultParameterForInternalPhpClasses() 119 { 120 $parameter = ParameterGenerator::fromReflection(new ParameterReflection( 121 array( 122 'Phar', 123 'compress' 124 ), 125 1 126 )); 127 128 $this->assertSame('null', strtolower((string) $parameter->getDefaultValue())); 129 } 130 131 public function testGeneratedParametersAreProperlyEscaped() 132 { 133 $parameter = new ParameterGenerator(); 134 135 $parameter->setName('foo'); 136 $parameter->setDefaultValue('\'bar\\baz'); 137 138 $this->assertThat( 139 $parameter->generate(), 140 $this->logicalOr( 141 $this->equalTo('$foo = \'\\\'bar\\baz\''), 142 $this->equalTo('$foo = \'\\\'bar\\\\baz\'') 143 ) 144 ); 145 } 146 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Nov 11 20:33:01 2020 | Cross-referenced by PHPXref 0.7.1 |