ClassTest.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Reflection
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. * @version $Id $
  21. */
  22. /**
  23. * @see TestHelper
  24. */
  25. require_once dirname(__FILE__) . '/../../TestHelper.php';
  26. /** requires */
  27. require_once 'Zend/Reflection/Class.php';
  28. /**
  29. * @category Zend
  30. * @package Zend_Reflection
  31. * @subpackage UnitTests
  32. * @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
  33. * @license http://framework.zend.com/license/new-bsd New BSD License
  34. *
  35. * @group Zend_Reflection
  36. * @group Zend_Reflection_Class
  37. */
  38. class Zend_Reflection_ClassTest extends PHPUnit_Framework_TestCase
  39. {
  40. static protected $_sampleClassFileRequired = false;
  41. public function setup()
  42. {
  43. // ensure we are only required this file once per runtime
  44. if (self::$_sampleClassFileRequired === false) {
  45. $fileToRequire = dirname(__FILE__) . '/_files/TestSampleClass.php';
  46. require_once $fileToRequire;
  47. self::$_sampleClassFileRequired = true;
  48. }
  49. }
  50. public function testMethodReturns()
  51. {
  52. $reflectionClass = new Zend_Reflection_Class('Zend_Reflection_TestSampleClass2');
  53. $methodByName = $reflectionClass->getMethod('getProp1');
  54. $this->assertEquals('Zend_Reflection_Method', get_class($methodByName));
  55. $methodsAll = $reflectionClass->getMethods();
  56. $this->assertEquals(3, count($methodsAll));
  57. $firstMethod = array_shift($methodsAll);
  58. $this->assertEquals('getProp1', $firstMethod->getName());
  59. }
  60. public function testPropertyReturns()
  61. {
  62. $reflectionClass = new Zend_Reflection_Class('Zend_Reflection_TestSampleClass2');
  63. $propertyByName = $reflectionClass->getProperty('_prop1');
  64. $this->assertEquals('Zend_Reflection_Property', get_class($propertyByName));
  65. $propertiesAll = $reflectionClass->getProperties();
  66. $this->assertEquals(2, count($propertiesAll));
  67. $firstProperty = array_shift($propertiesAll);
  68. $this->assertEquals('_prop1', $firstProperty->getName());
  69. }
  70. public function testParentReturn()
  71. {
  72. $reflectionClass = new Zend_Reflection_Class('Zend_Reflection_TestSampleClass');
  73. $parent = $reflectionClass->getParentClass();
  74. $this->assertEquals('Zend_Reflection_Class', get_class($parent));
  75. $this->assertEquals('ArrayObject', $parent->getName());
  76. }
  77. public function testInterfaceReturn()
  78. {
  79. $reflectionClass = new Zend_Reflection_Class('Zend_Reflection_TestSampleClass4');
  80. $interfaces = $reflectionClass->getInterfaces();
  81. $this->assertEquals(1, count($interfaces));
  82. $interface = array_shift($interfaces);
  83. $this->assertEquals('Zend_Reflection_TestSampleClassInterface', $interface->getName());
  84. }
  85. public function testGetContentsReturnsContents()
  86. {
  87. $reflectionClass = new Zend_Reflection_Class('Zend_Reflection_TestSampleClass2');
  88. $target = <<<EOS
  89. {
  90. protected \$_prop1 = null;
  91. protected \$_prop2 = null;
  92. public function getProp1()
  93. {
  94. return \$this->_prop1;
  95. }
  96. public function getProp2(\$param1, Zend_Reflection_TestSampleClass \$param2)
  97. {
  98. return \$this->_prop2;
  99. }
  100. public function getIterator()
  101. {
  102. return array();
  103. }
  104. }
  105. EOS;
  106. $this->assertEquals($target, $reflectionClass->getContents());
  107. }
  108. public function testStartLine()
  109. {
  110. $reflectionClass = new Zend_Reflection_Class('Zend_Reflection_TestSampleClass5');
  111. $this->assertEquals(87, $reflectionClass->getStartLine());
  112. $this->assertEquals(76, $reflectionClass->getStartLine(true));
  113. }
  114. public function testGetDeclaringFileReturnsFilename()
  115. {
  116. $reflectionClass = new Zend_Reflection_Class('Zend_Reflection_TestSampleClass2');
  117. $this->assertContains('TestSampleClass.php', $reflectionClass->getDeclaringFile()->getFileName()); //ns(, $reflectionClass->getDeclaringFile());
  118. }
  119. }