Explorar o código

ZF-11053
- Added check to ensure PHPUnit exists before generating test stubs


git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@23767 44c647ce-9c0f-0410-b52a-842ac1e357ba

ralph %!s(int64=15) %!d(string=hai) anos
pai
achega
481e85ca14

+ 12 - 4
library/Zend/Tool/Project/Provider/Action.php

@@ -131,10 +131,22 @@ class Zend_Tool_Project_Provider_Action
 
         $this->_loadProfile();
 
+        // get request/response object
+        $request = $this->_registry->getRequest();
+        $response = $this->_registry->getResponse();
+        
         // determine if testing is enabled in the project
         require_once 'Zend/Tool/Project/Provider/Test.php';
         $testingEnabled = Zend_Tool_Project_Provider_Test::isTestingEnabled($this->_loadedProfile);
         
+        if ($testingEnabled && !Zend_Tool_Project_Provider_Test::isPHPUnitAvailable()) {
+            $testingEnabled = false;
+            $response->appendContent(
+                'Note: PHPUnit is required in order to generate controller test stubs.',
+                array('color' => array('yellow'))
+                );
+        }
+        
         // Check that there is not a dash or underscore, return if doesnt match regex
         if (preg_match('#[_-]#', $name)) {
             throw new Zend_Tool_Project_Provider_Exception('Action names should be camel cased.');
@@ -158,10 +170,6 @@ class Zend_Tool_Project_Provider_Action
         if ($testingEnabled) {
             $testActionMethodResource = Zend_Tool_Project_Provider_Test::createApplicationResource($this->_loadedProfile, $controllerName, $name, $module);
         }
-        
-        // get request/response object
-        $request = $this->_registry->getRequest();
-        $response = $this->_registry->getResponse();
 
         // alert the user about inline converted names
         $tense = (($request->isPretend()) ? 'would be' : 'is');

+ 12 - 4
library/Zend/Tool/Project/Provider/Controller.php

@@ -112,10 +112,22 @@ class Zend_Tool_Project_Provider_Controller
     {
         $this->_loadProfile(self::NO_PROFILE_THROW_EXCEPTION);
 
+        // get request & response
+        $request = $this->_registry->getRequest();
+        $response = $this->_registry->getResponse();
+        
         // determine if testing is enabled in the project
         require_once 'Zend/Tool/Project/Provider/Test.php';
         $testingEnabled = Zend_Tool_Project_Provider_Test::isTestingEnabled($this->_loadedProfile);
 
+        if ($testingEnabled && !Zend_Tool_Project_Provider_Test::isPHPUnitAvailable()) {
+            $testingEnabled = false;
+            $response->appendContent(
+                'Note: PHPUnit is required in order to generate controller test stubs.',
+                array('color' => array('yellow'))
+                );
+        }
+        
         if (self::hasResource($this->_loadedProfile, $name, $module)) {
             throw new Zend_Tool_Project_Provider_Exception('This project already has a controller named ' . $name);
         }
@@ -128,10 +140,6 @@ class Zend_Tool_Project_Provider_Controller
         $originalName = $name;
         $name = ucfirst($name);
 
-        // get request & response
-        $request = $this->_registry->getRequest();
-        $response = $this->_registry->getResponse();
-
         try {
             $controllerResource = self::createResource($this->_loadedProfile, $name, $module);
             if ($indexActionIncluded) {