[ Index ]

PHP Cross Reference of phpBB-3.2.11-deutsch

title

Body

[close]

/vendor/ocramius/proxy-manager/tests/ProxyManagerTest/Generator/ -> MethodGeneratorTest.php (source)

   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\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  }


Generated: Wed Nov 11 20:33:01 2020 Cross-referenced by PHPXref 0.7.1