web/lib/Zend/Tool/Project/Provider/Test.php
changeset 807 877f952ae2bd
parent 207 621fa6caec0c
child 1230 68c69c656a2c
equal deleted inserted replaced
805:5e7a0fedabdf 807:877f952ae2bd
    13  * to license@zend.com so we can send you a copy immediately.
    13  * to license@zend.com so we can send you a copy immediately.
    14  *
    14  *
    15  * @category   Zend
    15  * @category   Zend
    16  * @package    Zend_Tool
    16  * @package    Zend_Tool
    17  * @subpackage Framework
    17  * @subpackage Framework
    18  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
    18  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    19  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    19  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    20  * @version    $Id: Test.php 20096 2010-01-06 02:05:09Z bkarwin $
    20  * @version    $Id: Test.php 24593 2012-01-05 20:35:02Z matthew $
    21  */
    21  */
    22 
    22 
    23 /**
    23 /**
    24  * @see Zend_Tool_Project_Provider_Abstract
    24  * @see Zend_Tool_Project_Provider_Abstract
    25  */
    25  */
    31 require_once 'Zend/Tool/Project/Provider/Exception.php';
    31 require_once 'Zend/Tool/Project/Provider/Exception.php';
    32 
    32 
    33 /**
    33 /**
    34  * @category   Zend
    34  * @category   Zend
    35  * @package    Zend_Tool
    35  * @package    Zend_Tool
    36  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
    36  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    37  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    37  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    38  */
    38  */
    39 class Zend_Tool_Project_Provider_Test extends Zend_Tool_Project_Provider_Abstract
    39 class Zend_Tool_Project_Provider_Test extends Zend_Tool_Project_Provider_Abstract
    40 {
    40 {
    41 
    41 
    53         $testsDirectory = $profile->search($profileSearchParams);
    53         $testsDirectory = $profile->search($profileSearchParams);
    54 
    54 
    55         return $testsDirectory->isEnabled();
    55         return $testsDirectory->isEnabled();
    56     }
    56     }
    57 
    57 
       
    58     public static function isPHPUnitAvailable()
       
    59     {
       
    60         if (class_exists('PHPUnit_Runner_Version', false)) {
       
    61             return true;
       
    62         }
       
    63         
       
    64         $included = @include 'PHPUnit/Runner/Version.php';
       
    65         
       
    66         if ($included === false) {
       
    67             return false;
       
    68         } else {
       
    69             return true;
       
    70         }
       
    71     }
       
    72     
    58     /**
    73     /**
    59      * createApplicationResource()
    74      * createApplicationResource()
    60      *
    75      *
    61      * @param Zend_Tool_Project_Profile $profile
    76      * @param Zend_Tool_Project_Profile $profile
    62      * @param string $controllerName
    77      * @param string $controllerName
    74             throw new Zend_Tool_Project_Provider_Exception('Zend_Tool_Project_Provider_View::createApplicationResource() expects \"actionName\" is the name of a controller resource to create.');
    89             throw new Zend_Tool_Project_Provider_Exception('Zend_Tool_Project_Provider_View::createApplicationResource() expects \"actionName\" is the name of a controller resource to create.');
    75         }
    90         }
    76 
    91 
    77         $testsDirectoryResource = $profile->search('testsDirectory');
    92         $testsDirectoryResource = $profile->search('testsDirectory');
    78 
    93 
    79         if (($testAppDirectoryResource = $testsDirectoryResource->search('testApplicationDirectory')) === false) {
    94         // parentOfController could either be application/ or a particular module folder, which is why we use this name
    80             $testAppDirectoryResource = $testsDirectoryResource->createResource('testApplicationDirectory');
    95         if (($testParentOfControllerDirectoryResource = $testsDirectoryResource->search('testApplicationDirectory')) === false) {
       
    96             $testParentOfControllerDirectoryResource = $testsDirectoryResource->createResource('testApplicationDirectory');
    81         }
    97         }
    82 
    98 
    83         if ($moduleName) {
    99         if ($moduleName) {
    84             //@todo $moduleName
   100             if (($testAppModulesDirectoryResource = $testParentOfControllerDirectoryResource->search('testApplicationModulesDirectory')) === false) {
    85             $moduleName = '';
   101                 $testAppModulesDirectoryResource = $testParentOfControllerDirectoryResource->createResource('testApplicationModulesDirectory');
       
   102             }
       
   103             
       
   104             if (($testAppModuleDirectoryResource = $testAppModulesDirectoryResource->search(array('testApplicationModuleDirectory' => array('forModuleName' => $moduleName)))) === false) {
       
   105                 $testAppModuleDirectoryResource = $testAppModulesDirectoryResource->createResource('testApplicationModuleDirectory', array('forModuleName' => $moduleName));
       
   106             }
       
   107             
       
   108             $testParentOfControllerDirectoryResource = $testAppModuleDirectoryResource;
    86         }
   109         }
    87 
   110 
    88         if (($testAppControllerDirectoryResource = $testAppDirectoryResource->search('testApplicationControllerDirectory')) === false) {
   111         if (($testAppControllerDirectoryResource = $testParentOfControllerDirectoryResource->search('testApplicationControllerDirectory', 'testApplicationModuleDirectory')) === false) {
    89             $testAppControllerDirectoryResource = $testAppDirectoryResource->createResource('testApplicationControllerDirectory');
   112             $testAppControllerDirectoryResource = $testParentOfControllerDirectoryResource->createResource('testApplicationControllerDirectory');
    90         }
   113         }
    91 
   114 
    92         $testAppControllerFileResource = $testAppControllerDirectoryResource->createResource('testApplicationControllerFile', array('forControllerName' => $controllerName));
   115         if (($testAppControllerFileResource = $testAppControllerDirectoryResource->search(array('testApplicationControllerFile' => array('forControllerName' => $controllerName)))) === false) {
    93 
   116             $testAppControllerFileResource = $testAppControllerDirectoryResource->createResource('testApplicationControllerFile', array('forControllerName' => $controllerName));
    94         return $testAppControllerFileResource;
   117         }
       
   118         
       
   119         return $testAppControllerFileResource->createResource('testApplicationActionMethod', array('forActionName' => $actionName));
    95     }
   120     }
    96 
   121 
    97     /**
   122     /**
    98      * createLibraryResource()
   123      * createLibraryResource()
    99      *
   124      *
   118                     $currentDirectoryResource = $currentDirectoryResource->createResource('TestLibraryNamespaceDirectory', array('namespaceName' => $nameOrNamespacePart));
   143                     $currentDirectoryResource = $currentDirectoryResource->createResource('TestLibraryNamespaceDirectory', array('namespaceName' => $nameOrNamespacePart));
   119                 } else {
   144                 } else {
   120                     $currentDirectoryResource = $libraryDirectoryResource;
   145                     $currentDirectoryResource = $libraryDirectoryResource;
   121                 }
   146                 }
   122 
   147 
   123 
       
   124             } else {
   148             } else {
   125 
   149 
   126                 if (($libraryFileResource = $currentDirectoryResource->search(array('TestLibraryFile' => array('forClassName' => $libraryClassName)))) === false) {
   150                 if (($libraryFileResource = $currentDirectoryResource->search(array('TestLibraryFile' => array('forClassName' => $libraryClassName)))) === false) {
   127                     $libraryFileResource = $currentDirectoryResource->createResource('TestLibraryFile', array('forClassName' => $libraryClassName));
   151                     $libraryFileResource = $currentDirectoryResource->createResource('TestLibraryFile', array('forClassName' => $libraryClassName));
   128                 }
   152                 }
   145     }
   169     }
   146 
   170 
   147     /**
   171     /**
   148      * create()
   172      * create()
   149      *
   173      *
   150      * @param unknown_type $libraryClassName
   174      * @param string $libraryClassName
   151      */
   175      */
   152     public function create($libraryClassName)
   176     public function create($libraryClassName)
   153     {
   177     {
   154         $profile = $this->_loadProfile();
   178         $profile = $this->_loadProfile();
   155 
   179