/**
  * @param \PhpUnitTestGenerator\Generator\TestMethod $method
  * @return null|\phpDocumentor\Reflection\DocBlock
  */
 public function getParsedDocComment(\PhpUnitTestGenerator\Generator\TestMethod $method)
 {
     if ($method->getOriginalMethod()->getDocComment()) {
         return new \phpDocumentor\Reflection\DocBlock($method->getOriginalMethod()->getDocComment());
     }
     return null;
 }
 /**
  * checks if provider can generate for this method
  *
  * @param \PhpUnitTestGenerator\Generator\TestMethod $method
  * @return boolean
  */
 public function canHandleTestableMethod(\PhpUnitTestGenerator\Generator\TestMethod $method)
 {
     if ($method->getOriginalMethod()->isStatic()) {
         $doc = $this->getParsedDocComment($method);
         if ($doc !== null) {
             if ($doc->hasTag("return")) {
                 $returns = $doc->getTagsByName("return");
                 $return = $returns[0];
                 /* @var $return \phpDocumentor\Reflection\DocBlock\Tag\ReturnTag */
                 if ($return->getType() != "" && !in_array($return->getType(), self::$types)) {
                     if (class_exists($return->getType()) || interface_exists($return->getType())) {
                         return true;
                     }
                 }
             }
         }
     }
     return false;
 }
 public function handleTestableMethod(\PhpUnitTestGenerator\Generator\TestMethod $method)
 {
     $method->setStatus(\PhpUnitTestGenerator\Generator\TestMethod::STATUS_FINAL);
     $method->setContent(\PhpUnitTestGenerator\Resource\Helper::getParsedTemplateByNameAndHash('TestMethodSingleton.tpl.dist', array('methodName' => ucfirst($method->getName()), 'origMethodName' => $method->getOriginalMethod()->getName(), 'className' => '\\' . $method->getOriginalMethod()->getDeclaringClass()->getName())));
 }
 private function isGetterMethod(\PhpUnitTestGenerator\Generator\TestMethod $method)
 {
     return 0 != preg_match('/^(get)[A-Z0-9]/', $method->getOriginalMethod()->getName()) && $method->getOriginalMethod()->getNumberOfParameters() == 0 && false === $method->getOriginalMethod()->isStatic();
     //return 0 != preg_match('/^(get|is)[A-Z0-9]/', $method->getOriginalMethod()->getName()) && $method->getOriginalMethod()->getNumberOfParameters() == 0 && false === $method->getOriginalMethod()->isStatic();
 }