Example #1
0
 /**
  * Generate class initialization code
  * @param Cogen\Code $code
  * @param string $instanceVariable
  * @return string
  */
 public function getClassInitialization(Code $code, $instanceVariable, $isMock = false)
 {
     if ($isMock) {
         $lines = array();
         foreach ($this->class->getGetters() as $method) {
             /* @var $method ReflectionMethod */
             $lines[] = "{$instanceVariable}->expects(\$this->once())->method('{$method->getName()}')";
             $lines[] = "\t->will(\$this->returnCallback(function() {";
             $lines[] = "\t\treturn null;";
             $lines[] = "\t}));";
         }
         $code->after($lines);
         return "{$instanceVariable} = \$this->getMock('{$this->class->getName()}');";
     }
     $lines = array();
     $arguments = '';
     $lines = array();
     foreach ($this->class->getSetters() as $method) {
         /* @var $method ReflectionMethod */
         $lines[] = $this->generateTestMethodCall($method, $instanceVariable, $code, true);
     }
     $code->after($lines);
     return "{$instanceVariable} = new {$this->class->getName()}({$arguments});";
 }