PageRenderTime 46ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/DevApp/library/ServerLibraries/ZendFramework/1.7/tests/Zend/XmlRpc/Server/FaultTest.php

http://firephp.googlecode.com/
PHP | 259 lines | 178 code | 38 blank | 43 comment | 4 complexity | 2a3bcfbd685a69f4e4a72317e7106ddd MD5 | raw file
Possible License(s): BSD-3-Clause, LGPL-2.0, MIT, Apache-2.0
  1. <?php
  2. // Call Zend_XmlRpc_Server_FaultTest::main() if this source file is executed directly.
  3. if (!defined("PHPUnit_MAIN_METHOD")) {
  4. require_once dirname(__FILE__) . '/../../../TestHelper.php';
  5. define("PHPUnit_MAIN_METHOD", "Zend_XmlRpc_Server_FaultTest::main");
  6. }
  7. require_once "PHPUnit/Framework/TestCase.php";
  8. require_once "PHPUnit/Framework/TestSuite.php";
  9. require_once 'Zend/XmlRpc/Server.php';
  10. require_once 'Zend/XmlRpc/Server/Fault.php';
  11. /**
  12. * Test case for Zend_XmlRpc_Server_Fault
  13. *
  14. * @package Zend_XmlRpc
  15. * @subpackage UnitTests
  16. * @version $Id: FaultTest.php 12568 2008-11-11 19:54:06Z matthew $
  17. */
  18. class Zend_XmlRpc_Server_FaultTest extends PHPUnit_Framework_TestCase
  19. {
  20. /**
  21. * Runs the test methods of this class.
  22. *
  23. * @access public
  24. * @static
  25. */
  26. public static function main()
  27. {
  28. require_once "PHPUnit/TextUI/TestRunner.php";
  29. $suite = new PHPUnit_Framework_TestSuite("Zend_XmlRpc_Server_FaultTest");
  30. $result = PHPUnit_TextUI_TestRunner::run($suite);
  31. }
  32. /**
  33. * Zend_XmlRpc_Server_Fault::getInstance() test
  34. */
  35. public function testGetInstance()
  36. {
  37. $e = new Zend_XmlRpc_Server_Exception('Testing fault', 411);
  38. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  39. $this->assertTrue($fault instanceof Zend_XmlRpc_Server_Fault);
  40. }
  41. /**
  42. * Zend_XmlRpc_Server_Fault::attachFaultException() test
  43. */
  44. public function testAttachFaultException()
  45. {
  46. Zend_XmlRpc_Server_Fault::attachFaultException('zxrs_fault_test_exception');
  47. $e = new zxrs_fault_test_exception('test exception', 411);
  48. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  49. $this->assertEquals('test exception', $fault->getMessage());
  50. $this->assertEquals(411, $fault->getCode());
  51. Zend_XmlRpc_Server_Fault::detachFaultException('zxrs_fault_test_exception');
  52. $exceptions = array(
  53. 'zxrs_fault_test_exception',
  54. 'zxrs_fault_test_exception2',
  55. 'zxrs_fault_test_exception3'
  56. );
  57. Zend_XmlRpc_Server_Fault::attachFaultException($exceptions);
  58. foreach ($exceptions as $class) {
  59. $e = new $class('test exception', 411);
  60. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  61. $this->assertEquals('test exception', $fault->getMessage());
  62. $this->assertEquals(411, $fault->getCode());
  63. }
  64. Zend_XmlRpc_Server_Fault::detachFaultException($exceptions);
  65. }
  66. /**
  67. * Tests ZF-1825
  68. * @return void
  69. */
  70. public function testAttachFaultExceptionAllowsForDerivativeExceptionClasses()
  71. {
  72. Zend_XmlRpc_Server_Fault::attachFaultException('zxrs_fault_test_exception');
  73. $e = new zxrs_fault_test_exception4('test exception', 411);
  74. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  75. $this->assertEquals('test exception', $fault->getMessage());
  76. $this->assertEquals(411, $fault->getCode());
  77. Zend_XmlRpc_Server_Fault::detachFaultException('zxrs_fault_test_exception');
  78. }
  79. /**
  80. * Zend_XmlRpc_Server_Fault::detachFaultException() test
  81. */
  82. public function testDetachFaultException()
  83. {
  84. Zend_XmlRpc_Server_Fault::attachFaultException('zxrs_fault_test_exception');
  85. $e = new zxrs_fault_test_exception('test exception', 411);
  86. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  87. $this->assertEquals('test exception', $fault->getMessage());
  88. $this->assertEquals(411, $fault->getCode());
  89. Zend_XmlRpc_Server_Fault::detachFaultException('zxrs_fault_test_exception');
  90. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  91. $this->assertEquals('Unknown error', $fault->getMessage());
  92. $this->assertEquals(404, $fault->getCode());
  93. $exceptions = array(
  94. 'zxrs_fault_test_exception',
  95. 'zxrs_fault_test_exception2',
  96. 'zxrs_fault_test_exception3'
  97. );
  98. Zend_XmlRpc_Server_Fault::attachFaultException($exceptions);
  99. foreach ($exceptions as $class) {
  100. $e = new $class('test exception', 411);
  101. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  102. $this->assertEquals('test exception', $fault->getMessage());
  103. $this->assertEquals(411, $fault->getCode());
  104. }
  105. Zend_XmlRpc_Server_Fault::detachFaultException($exceptions);
  106. foreach ($exceptions as $class) {
  107. $e = new $class('test exception', 411);
  108. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  109. $this->assertEquals('Unknown error', $fault->getMessage());
  110. $this->assertEquals(404, $fault->getCode());
  111. }
  112. }
  113. /**
  114. * Zend_XmlRpc_Server_Fault::attachObserver() test
  115. */
  116. public function testAttachObserver()
  117. {
  118. Zend_XmlRpc_Server_Fault::attachObserver('zxrs_fault_observer');
  119. $e = new Zend_XmlRpc_Server_Exception('Checking observers', 411);
  120. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  121. $observed = zxrs_fault_observer::getObserved();
  122. zxrs_fault_observer::clearObserved();
  123. Zend_XmlRpc_Server_Fault::detachObserver('zxrs_fault_observer');
  124. $this->assertTrue(!empty($observed));
  125. $f = array_shift($observed);
  126. $this->assertTrue($f instanceof Zend_XmlRpc_Server_Fault);
  127. $this->assertEquals('Checking observers', $f->getMessage());
  128. $this->assertEquals(411, $f->getCode());
  129. }
  130. /**
  131. * Zend_XmlRpc_Server_Fault::detachObserver() test
  132. */
  133. public function testDetachObserver()
  134. {
  135. Zend_XmlRpc_Server_Fault::attachObserver('zxrs_fault_observer');
  136. $e = new Zend_XmlRpc_Server_Exception('Checking observers', 411);
  137. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  138. zxrs_fault_observer::clearObserved();
  139. Zend_XmlRpc_Server_Fault::detachObserver('zxrs_fault_observer');
  140. $e = new Zend_XmlRpc_Server_Exception('Checking observers', 411);
  141. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  142. $observed = zxrs_fault_observer::getObserved();
  143. $this->assertTrue(empty($observed));
  144. }
  145. /**
  146. * getCode() test
  147. */
  148. public function testGetCode()
  149. {
  150. $e = new Zend_XmlRpc_Server_Exception('Testing fault', 411);
  151. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  152. $this->assertEquals(411, $fault->getCode());
  153. }
  154. /**
  155. * getMessage() test
  156. */
  157. public function testGetMessage()
  158. {
  159. $e = new Zend_XmlRpc_Server_Exception('Testing fault', 411);
  160. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  161. $this->assertEquals('Testing fault', $fault->getMessage());
  162. }
  163. /**
  164. * __toString() test
  165. */
  166. public function test__toString()
  167. {
  168. $dom = new DOMDocument('1.0', 'UTF-8');
  169. $r = $dom->appendChild($dom->createElement('methodResponse'));
  170. $f = $r->appendChild($dom->createElement('fault'));
  171. $v = $f->appendChild($dom->createElement('value'));
  172. $s = $v->appendChild($dom->createElement('struct'));
  173. $m1 = $s->appendChild($dom->createElement('member'));
  174. $m1->appendChild($dom->createElement('name', 'faultCode'));
  175. $cv = $m1->appendChild($dom->createElement('value'));
  176. $cv->appendChild($dom->createElement('int', 411));
  177. $m2 = $s->appendChild($dom->createElement('member'));
  178. $m2->appendChild($dom->createElement('name', 'faultString'));
  179. $sv = $m2->appendChild($dom->createElement('value'));
  180. $sv->appendChild($dom->createElement('string', 'Testing fault'));
  181. $xml = $dom->saveXML();
  182. $e = new Zend_XmlRpc_Server_Exception('Testing fault', 411);
  183. $fault = Zend_XmlRpc_Server_Fault::getInstance($e);
  184. $this->assertEquals($xml, $fault->__toString());
  185. }
  186. }
  187. class zxrs_fault_test_exception extends Exception {}
  188. class zxrs_fault_test_exception2 extends Exception {}
  189. class zxrs_fault_test_exception3 extends Exception {}
  190. class zxrs_fault_test_exception4 extends zxrs_fault_test_exception {}
  191. class zxrs_fault_observer
  192. {
  193. private static $_instance = false;
  194. public $observed = array();
  195. private function __construct()
  196. {
  197. }
  198. public static function getInstance()
  199. {
  200. if (!self::$_instance) {
  201. self::$_instance = new self();
  202. }
  203. return self::$_instance;
  204. }
  205. public static function observe(Zend_XmlRpc_Server_Fault $fault)
  206. {
  207. self::getInstance()->observed[] = $fault;
  208. }
  209. public static function clearObserved()
  210. {
  211. self::getInstance()->observed = array();
  212. }
  213. public static function getObserved()
  214. {
  215. return self::getInstance()->observed;
  216. }
  217. }
  218. // Call Zend_XmlRpc_Server_FaultTest::main() if this source file is executed directly.
  219. if (PHPUnit_MAIN_METHOD == "Zend_XmlRpc_Server_FaultTest::main") {
  220. Zend_XmlRpc_Server_FaultTest::main();
  221. }