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.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

AbstractBaseFactoryTest.php

Zuletzt modifiziert: 09.10.2024, 12:58 - Dateigröße: 5.82 KiB


 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