assertEquals(get_class($file), 'Zend_CodeGenerator_Php_File'); } public function testSourceContentGetterAndSetter() { $file = new Zend_CodeGenerator_Php_File(); $file->setSourceContent('Foo'); $this->assertEquals('Foo', $file->getSourceContent()); } public function testIndentationGetterAndSetter() { $file = new Zend_CodeGenerator_Php_File(); $file->setIndentation(' '); $this->assertEquals(' ', $file->getIndentation()); } public function testToString() { $codeGenFile = new Zend_CodeGenerator_Php_File(array( 'requiredFiles' => array('SampleClass.php'), 'class' => array( 'abstract' => true, 'name' => 'SampleClass', 'extendedClass' => 'ExtendedClassName', 'implementedInterfaces' => array('Iterator', 'Traversable') ) )); $expectedOutput = <<generate(); $this->assertEquals($expectedOutput, $output, $output); } public function testFromReflection() { $tempFile = tempnam(sys_get_temp_dir(), 'UnitFile'); $codeGenFile = new Zend_CodeGenerator_Php_File(array( 'class' => array( 'name' => 'SampleClass' ) )); file_put_contents($tempFile, $codeGenFile->generate()); require_once $tempFile; $codeGenFileFromDisk = Zend_CodeGenerator_Php_File::fromReflection(new Zend_Reflection_File($tempFile)); unlink($tempFile); $this->assertEquals(get_class($codeGenFileFromDisk), 'Zend_CodeGenerator_Php_File'); $this->assertEquals(count($codeGenFileFromDisk->getClasses()), 1); } public function testFromReflectionFile() { ///$this->markTestSkipped('skipme'); $file = dirname(__FILE__) . '/_files/TestSampleSingleClass.php'; require_once $file; $codeGenFileFromDisk = Zend_CodeGenerator_Php_File::fromReflection(new Zend_Reflection_File($file)); $codeGenFileFromDisk->getClass()->setMethod(array('name' => 'foobar')); $expectedOutput = << * */ /** * class docblock * * @package Zend_Reflection_TestSampleSingleClass * */ class Zend_Reflection_TestSampleSingleClass { /** * Enter description here... * * @return bool * */ public function someMethod() { /* test test */ } public function foobar() { } } EOS; $this->assertEquals($expectedOutput, $codeGenFileFromDisk->generate()); } public function testFileLineEndingsAreAlwaysLineFeed() { $codeGenFile = new Zend_CodeGenerator_Php_File(array( 'requiredFiles' => array('SampleClass.php'), 'class' => array( 'abstract' => true, 'name' => 'SampleClass', 'extendedClass' => 'ExtendedClassName', 'implementedInterfaces' => array('Iterator', 'Traversable') ) )); // explode by newline, this would leave CF in place if it were generated $lines = explode("\n", $codeGenFile); $targetLength = strlen('require_once \'SampleClass.php\';'); $this->assertEquals($targetLength, strlen($lines[2])); $this->assertEquals(';', $lines[2]{$targetLength-1}); } }