PageRenderTime 1498ms CodeModel.GetById 46ms RepoModel.GetById 4ms app.codeStats 0ms

/tests/Zend/Rest/ServerTest.php

https://github.com/jon9872/zend-framework
PHP | 775 lines | 552 code | 86 blank | 137 comment | 5 complexity | 26bd6407d5180d4036cbbd744d336836 MD5 | raw file
  1. <?php
  2. /**
  3. * @package Zend_Rest
  4. * @subpackage UnitTests
  5. */
  6. // Call Zend_Rest_ServerTest::main() if this source file is executed directly.
  7. if (!defined("PHPUnit_MAIN_METHOD")) {
  8. require_once dirname(__FILE__) . '/../../TestHelper.php';
  9. define("PHPUnit_MAIN_METHOD", "Zend_Rest_ServerTest::main");
  10. }
  11. require_once "PHPUnit/Framework/TestCase.php";
  12. require_once "PHPUnit/Framework/TestSuite.php";
  13. /**
  14. * Zend_Rest_Server
  15. */
  16. require_once 'Zend/Rest/Server.php';
  17. /**
  18. * Test cases for Zend_Rest_Server
  19. *
  20. * @package Zend_Rest
  21. * @subpackage UnitTests
  22. */
  23. class Zend_Rest_ServerTest extends PHPUnit_Framework_TestCase
  24. {
  25. /**
  26. * Runs the test methods of this class.
  27. *
  28. * @return void
  29. */
  30. public static function main()
  31. {
  32. require_once "PHPUnit/TextUI/TestRunner.php";
  33. $suite = new PHPUnit_Framework_TestSuite("Zend_Rest_ServerTest");
  34. $result = PHPUnit_TextUI_TestRunner::run($suite);
  35. }
  36. public function setUp()
  37. {
  38. if (isset($this->request)) {
  39. $_REQUEST = $this->request;
  40. } else {
  41. $this->request = $_REQUEST;
  42. }
  43. }
  44. public function testAddFunctionSimple()
  45. {
  46. $server = new Zend_Rest_Server();
  47. $server->addFunction('Zend_Rest_Server_TestFunc');
  48. $funcs = $server->getFunctions();
  49. $this->assertTrue(isset($funcs['Zend_Rest_Server_TestFunc']), "Function not registered.");
  50. }
  51. public function testSetClass()
  52. {
  53. $server = new Zend_Rest_Server();
  54. $server->setClass('Zend_Rest_Server_Test');
  55. $funcs = $server->getFunctions();
  56. $this->assertTrue(isset($funcs['testFunc']), "Class Not Registered. testFunc not found");
  57. $this->assertTrue(isset($funcs['testFunc2']), "Class Not Registered. testFunc2 not found");
  58. $this->assertTrue(isset($funcs['testFunc3']), "Class Not Registered. testFunc3 not found");
  59. }
  60. public function testHandleNamedArgFunction()
  61. {
  62. $server = new Zend_Rest_Server();
  63. $server->addFunction('Zend_Rest_Server_TestFunc');
  64. ob_start();
  65. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc', 'who' => 'Davey'));
  66. $result = ob_get_clean();
  67. $this->assertContains('<Zend_Rest_Server_TestFunc generator="zend" version="1.0"><response>Hello Davey</response><status>success</status></Zend_Rest_Server_TestFunc>', $result, "Bad Result");
  68. }
  69. public function testHandleFunctionNoArgs()
  70. {
  71. $server = new Zend_Rest_Server();
  72. $server->addFunction('Zend_Rest_Server_TestFunc2');
  73. ob_start();
  74. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc2'));
  75. $result = ob_get_clean();
  76. $this->assertContains('<Zend_Rest_Server_TestFunc2 generator="zend" version="1.0"><response>Hello World</response><status>success</status></Zend_Rest_Server_TestFunc2>', $result, "Bad Result");
  77. }
  78. public function testHandleFunctionNoArgsThrowsExceptionWithFewerArgs()
  79. {
  80. $server = new Zend_Rest_Server();
  81. $server->addFunction('Zend_Rest_Server_TestFunc');
  82. try {
  83. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc'));
  84. $this->fail('Call should fail if missing args');
  85. } catch (Exception $e) {
  86. // success
  87. }
  88. }
  89. public function testHandleFunctionNoArgsUsingRequest()
  90. {
  91. $_REQUEST = array(
  92. 'method' => 'Zend_Rest_Server_TestFunc2'
  93. );
  94. $server = new Zend_Rest_Server();
  95. $server->addFunction('Zend_Rest_Server_TestFunc2');
  96. ob_start();
  97. $server->handle();
  98. $result = ob_get_clean();
  99. $this->assertContains('<Zend_Rest_Server_TestFunc2 generator="zend" version="1.0"><response>Hello World</response><status>success</status></Zend_Rest_Server_TestFunc2>', $result, "Bad Result");
  100. }
  101. public function testHandleAnonymousArgFunction()
  102. {
  103. $server = new Zend_Rest_Server();
  104. $server->addFunction('Zend_Rest_Server_TestFunc');
  105. ob_start();
  106. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc', 'arg1' => 'Davey'));
  107. $result = ob_get_clean();
  108. $this->assertContains('<Zend_Rest_Server_TestFunc generator="zend" version="1.0"><response>Hello Davey</response><status>success</status></Zend_Rest_Server_TestFunc>', $result, "Bad Result");
  109. }
  110. public function testHandleMultipleFunction()
  111. {
  112. $server = new Zend_Rest_Server();
  113. $server->addFunction('Zend_Rest_Server_TestFunc2');
  114. $server->addFunction('Zend_Rest_Server_TestFunc');
  115. ob_start();
  116. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc2'));
  117. $result = ob_get_clean();
  118. $this->assertContains('<Zend_Rest_Server_TestFunc2 generator="zend" version="1.0"><response>Hello World</response><status>success</status></Zend_Rest_Server_TestFunc2>', $result, "Bad Result");
  119. ob_start();
  120. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc', 'arg1' => 'Davey'));
  121. $result = ob_get_clean();
  122. $this->assertContains('<Zend_Rest_Server_TestFunc generator="zend" version="1.0"><response>Hello Davey</response><status>success</status></Zend_Rest_Server_TestFunc>', $result, "Bad Result");
  123. }
  124. public function testHandleMethodNoArgs()
  125. {
  126. $server = new Zend_Rest_Server();
  127. $server->setClass('Zend_Rest_Server_Test');
  128. ob_start();
  129. $server->handle(array('method' => 'testFunc'));
  130. $result = ob_get_clean();
  131. $this->assertContains('<Zend_Rest_Server_Test generator="zend" version="1.0"><testFunc><response>Hello World</response><status>success</status></testFunc></Zend_Rest_Server_Test>', $result, 'Bad Result');
  132. }
  133. public function testHandleMethodOfClassWithConstructor()
  134. {
  135. $server = new Zend_Rest_Server();
  136. $server->setClass('Zend_Rest_Server_Test2', '', array('testing args'));
  137. ob_start();
  138. $server->handle(array('method' => 'test2Func1'));
  139. $result = ob_get_clean();
  140. $this->assertContains("testing args", $result, "Bad Result");
  141. }
  142. public function testHandleAnonymousArgMethod()
  143. {
  144. $server = new Zend_Rest_Server();
  145. $server->setClass('Zend_Rest_Server_Test');
  146. ob_start();
  147. $server->handle(array('method' => 'testFunc2', 'arg1' => "Davey"));
  148. $result = ob_get_clean();
  149. $this->assertContains('<Zend_Rest_Server_Test generator="zend" version="1.0"><testFunc2><response>Hello Davey</response><status>success</status></testFunc2></Zend_Rest_Server_Test>', $result, 'Bad Result');
  150. }
  151. public function testHandleNamedArgMethod()
  152. {
  153. $server = new Zend_Rest_Server();
  154. $server->setClass('Zend_Rest_Server_Test');
  155. ob_start();
  156. $server->handle(array('method' => 'testFunc3', 'who' => "Davey", 'when' => 'today'));
  157. $result = ob_get_clean();
  158. $this->assertContains('<Zend_Rest_Server_Test generator="zend" version="1.0"><testFunc3><response>Hello Davey, How are you today</response><status>success</status></testFunc3></Zend_Rest_Server_Test>', $result, 'Bad Result');
  159. }
  160. public function testHandleStaticNoArgs()
  161. {
  162. $server = new Zend_Rest_Server();
  163. $server->setClass('Zend_Rest_Server_Test');
  164. ob_start();
  165. $server->handle(array('method' => 'testFunc4'));
  166. $result = ob_get_clean();
  167. $this->assertContains('<Zend_Rest_Server_Test generator="zend" version="1.0"><testFunc4><response>Hello World</response><status>success</status></testFunc4></Zend_Rest_Server_Test>', $result, 'Bad Result');
  168. }
  169. public function testHandleAnonymousArgStatic()
  170. {
  171. $server = new Zend_Rest_Server();
  172. $server->setClass('Zend_Rest_Server_Test');
  173. ob_start();
  174. $server->handle(array('method' => 'testFunc5', 'arg1' => "Davey"));
  175. $result = ob_get_clean();
  176. $this->assertContains('<Zend_Rest_Server_Test generator="zend" version="1.0"><testFunc5><response>Hello Davey</response><status>success</status></testFunc5></Zend_Rest_Server_Test>', $result, 'Bad Result');
  177. }
  178. public function testHandleNamedArgStatic()
  179. {
  180. $server = new Zend_Rest_Server();
  181. $server->setClass('Zend_Rest_Server_Test');
  182. ob_start();
  183. $server->handle(array('method' => 'testFunc6', 'who' => "Davey", 'when' => 'today'));
  184. $result = ob_get_clean();
  185. $this->assertContains('<Zend_Rest_Server_Test generator="zend" version="1.0"><testFunc6><response>Hello Davey, How are you today</response><status>success</status></testFunc6></Zend_Rest_Server_Test>', $result, 'Bad Result');
  186. }
  187. public function testHandleMultipleAnonymousArgs()
  188. {
  189. $server = new Zend_Rest_Server();
  190. $server->addFunction('Zend_Rest_Server_TestFunc9');
  191. ob_start();
  192. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc9', 'arg1' => "Hello", 'arg2' => "Davey"));
  193. $result = ob_get_clean();
  194. $this->assertContains('<Zend_Rest_Server_TestFunc9 generator="zend" version="1.0"><response>Hello Davey</response><status>success</status></Zend_Rest_Server_TestFunc9>', $result, "Bad Result");
  195. }
  196. public function testHandleReturnFalse()
  197. {
  198. $server = new Zend_Rest_Server();
  199. $server->addFunction('Zend_Rest_Server_TestFunc3');
  200. ob_start();
  201. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc3'));
  202. $result = ob_get_clean();
  203. $this->assertContains('<Zend_Rest_Server_TestFunc3 generator="zend" version="1.0"><response>0</response><status>success</status></Zend_Rest_Server_TestFunc3>', $result, 'Bas Response');
  204. }
  205. public function testHandleReturnTrue()
  206. {
  207. $server = new Zend_Rest_Server();
  208. $server->addFunction('Zend_Rest_Server_TestFunc4');
  209. ob_start();
  210. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc4'));
  211. $result = ob_get_clean();
  212. $this->assertContains('<Zend_Rest_Server_TestFunc4 generator="zend" version="1.0"><response>1</response><status>success</status></Zend_Rest_Server_TestFunc4>', $result, 'Bas Response');
  213. }
  214. public function testHandleReturnInteger()
  215. {
  216. $server = new Zend_Rest_Server();
  217. $server->addFunction('Zend_Rest_Server_TestFunc5');
  218. ob_start();
  219. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc5'));
  220. $result = ob_get_clean();
  221. $this->assertContains('<Zend_Rest_Server_TestFunc5 generator="zend" version="1.0"><response>123</response><status>success</status></Zend_Rest_Server_TestFunc5>', $result, 'Bas Response');
  222. }
  223. public function testHandleReturnString()
  224. {
  225. $server = new Zend_Rest_Server();
  226. $server->addFunction('Zend_Rest_Server_TestFunc6');
  227. ob_start();
  228. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc6'));
  229. $result = ob_get_clean();
  230. $this->assertContains('<Zend_Rest_Server_TestFunc6 generator="zend" version="1.0"><response>string</response><status>success</status></Zend_Rest_Server_TestFunc6>', $result, 'Bas Response');
  231. }
  232. public function testHandleReturnArray()
  233. {
  234. $server = new Zend_Rest_Server();
  235. $server->addFunction('Zend_Rest_Server_TestFunc7');
  236. ob_start();
  237. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc7'));
  238. $result = ob_get_clean();
  239. $this->assertContains('<Zend_Rest_Server_TestFunc7 generator="zend" version="1.0"><foo>bar</foo><baz>1</baz><key_1>0</key_1><bat>123</bat><status>success</status></Zend_Rest_Server_TestFunc7>', $result, $result);
  240. }
  241. public function testHandleReturnNestedArray()
  242. {
  243. $server = new Zend_Rest_Server();
  244. $server->addFunction('Zend_Rest_Server_TestFunc12');
  245. ob_start();
  246. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc12'));
  247. $result = ob_get_clean();
  248. $this->assertContains('Zend_Rest_Server_TestFunc12', $result, $result);
  249. $this->assertContains('<foo><baz>1</baz>', $result, $result);
  250. $this->assertContains('<bat>123</bat></foo><bar>baz</bar>', $result, $result);
  251. $this->assertContains('</bar><status>success</status', $result, $result);
  252. }
  253. public function testHandleMethodReturnObject()
  254. {
  255. $server = new Zend_Rest_Server();
  256. $server->setClass('Zend_Rest_Server_Test2');
  257. ob_start();
  258. $server->handle(array('method' => 'test2Struct'));
  259. $result = ob_get_clean();
  260. $this->assertContains('<Zend_Rest_Server_Test2', $result, $result);
  261. $this->assertContains('<test2Struct', $result, $result);
  262. $this->assertContains('<foo><baz>1</baz>', $result, $result);
  263. $this->assertContains('<bat>123</bat></foo><bar>baz</bar>', $result, $result);
  264. $this->assertContains('</bar><status>success</status', $result, $result);
  265. }
  266. public function testHandleReturnObject()
  267. {
  268. $server = new Zend_Rest_Server();
  269. $server->addFunction('Zend_Rest_Server_TestFunc8');
  270. ob_start();
  271. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc8'));
  272. $result = ob_get_clean();
  273. $this->assertContains('<Zend_Rest_Server_TestFunc8 generator="zend" version="1.0"><foo>bar</foo><baz>1</baz><bat>123</bat><qux>0</qux><status>success</status></Zend_Rest_Server_TestFunc8>', $result, $result);
  274. }
  275. public function testHandleReturnSimpleXml()
  276. {
  277. $server = new Zend_Rest_Server();
  278. $server->setClass('Zend_Rest_Server_Test2');
  279. ob_start();
  280. $server->handle(array('method' => 'test2Xml'));
  281. $result = ob_get_clean();
  282. $this->assertContains("<foo>bar</foo>", $result, "Bad Result");
  283. }
  284. public function testHandleReturnDomDocument()
  285. {
  286. $server = new Zend_Rest_Server();
  287. $server->setClass('Zend_Rest_Server_Test2');
  288. ob_start();
  289. $server->handle(array('method' => 'test2DomDocument'));
  290. $result = ob_get_clean();
  291. $this->assertContains("<foo>bar</foo>", $result, "Bad Result");
  292. }
  293. public function testHandleReturnDomElement()
  294. {
  295. $server = new Zend_Rest_Server();
  296. $server->setClass('Zend_Rest_Server_Test2');
  297. ob_start();
  298. $server->handle(array('method' => 'test2DomElement'));
  299. $result = ob_get_clean();
  300. $this->assertContains("<foo>bar</foo>", $result, "Bad Result");
  301. }
  302. public function testHandleInvalidMethod()
  303. {
  304. $server = new Zend_Rest_Server();
  305. $server->setClass('Zend_Rest_Server_Test2');
  306. $server->returnResponse(true);
  307. $response = $server->handle(array('method' => 'test3DomElement'));
  308. $this->assertContains('<status>failed</status>', $response);
  309. }
  310. public function testFault()
  311. {
  312. $e = new Exception('testing fault');
  313. $server = new Zend_Rest_Server();
  314. $fault = $server->fault($e);
  315. $this->assertTrue($fault instanceof DOMDocument);
  316. $sx = simplexml_import_dom($fault);
  317. $this->assertTrue(isset($sx->response));
  318. $this->assertTrue(isset($sx->response->message));
  319. $this->assertContains('testing fault', (string) $sx->response->message);
  320. }
  321. public function testFaultWithoutException()
  322. {
  323. $server = new Zend_Rest_Server();
  324. $fault = $server->fault('testing fault');
  325. $this->assertTrue($fault instanceof DOMDocument);
  326. $sx = simplexml_import_dom($fault);
  327. $this->assertTrue(isset($sx->response));
  328. $this->assertTrue(isset($sx->response->message));
  329. $this->assertContains('An unknown error occured. Please try again.', (string) $sx->response->message);
  330. }
  331. public function testHandleException()
  332. {
  333. $server = new Zend_Rest_Server();
  334. $server->addFunction('Zend_Rest_Server_TestFunc11');
  335. ob_start();
  336. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc11'));
  337. $result = ob_get_clean();
  338. $this->assertContains("<Zend_Rest_Server_TestFunc11", $result);
  339. $this->assertContains("<message>testing rest server faults</message>", $result);
  340. }
  341. public function testHandleClassMethodException()
  342. {
  343. $server = new Zend_Rest_Server();
  344. $server->setClass('Zend_Rest_Server_Test2');
  345. ob_start();
  346. $server->handle(array('method' => 'test2ThrowException'));
  347. $result = ob_get_clean();
  348. $this->assertContains("<Zend_Rest_Server_Test2", $result);
  349. $this->assertContains("<test2ThrowException>", $result);
  350. $this->assertContains("<message>testing class method exception</message>", $result);
  351. }
  352. public function testHandleVoid()
  353. {
  354. $server = new Zend_Rest_Server();
  355. $server->addFunction('Zend_Rest_Server_TestFunc10');
  356. ob_start();
  357. $server->handle(array('method' => 'Zend_Rest_Server_TestFunc10'));
  358. $result = ob_get_clean();
  359. $this->assertContains('<Zend_Rest_Server_TestFunc10 generator="zend" version="1.0"><response/><status>success</status></Zend_Rest_Server_TestFunc10>', $result, $result);
  360. }
  361. public function testGetHeaders()
  362. {
  363. $server = new Zend_Rest_Server();
  364. $server->setClass('Zend_Rest_Server_Test2');
  365. ob_start();
  366. $server->handle(array('method' => 'test2ThrowException'));
  367. $result = ob_get_clean();
  368. $headers = $server->getHeaders();
  369. $this->assertContains('HTTP/1.0 400 Bad Request', $headers);
  370. }
  371. public function testReturnResponse()
  372. {
  373. $server = new Zend_Rest_Server();
  374. $this->assertFalse($server->returnResponse());
  375. $server->returnResponse(true);
  376. $this->assertTrue($server->returnResponse());
  377. }
  378. public function testReturnResponseForcesHandleToReturnResponse()
  379. {
  380. $server = new Zend_Rest_Server();
  381. $server->returnResponse(true);
  382. $server->setClass('Zend_Rest_Server_Test2');
  383. ob_start();
  384. $response = $server->handle(array('method' => 'test2Xml'));
  385. $result = ob_get_clean();
  386. $this->assertTrue(empty($result));
  387. $this->assertContains('<foo>bar</foo>', $response);
  388. }
  389. public function testGeneratedXmlEncodesScalarAmpersands()
  390. {
  391. $server = new Zend_Rest_Server();
  392. $server->returnResponse(true);
  393. $server->setClass('Zend_Rest_Server_Test');
  394. ob_start();
  395. $response = $server->handle(array('method' => 'testScalarEncoding'));
  396. $result = ob_get_clean();
  397. $this->assertTrue(empty($result));
  398. $this->assertContains('This string has chars &amp; ampersands', $response);
  399. }
  400. public function testGeneratedXmlEncodesStructAmpersands()
  401. {
  402. $server = new Zend_Rest_Server();
  403. $server->returnResponse(true);
  404. $server->setClass('Zend_Rest_Server_Test');
  405. ob_start();
  406. $response = $server->handle(array('method' => 'testStructEncoding'));
  407. $result = ob_get_clean();
  408. $this->assertTrue(empty($result));
  409. $this->assertContains('bar &amp; baz', $response);
  410. }
  411. public function testGeneratedXmlEncodesFaultAmpersands()
  412. {
  413. $server = new Zend_Rest_Server();
  414. $server->returnResponse(true);
  415. $server->setClass('Zend_Rest_Server_Test');
  416. ob_start();
  417. $response = $server->handle(array('method' => 'testExceptionsEncoding'));
  418. $result = ob_get_clean();
  419. $this->assertTrue(empty($result));
  420. $this->assertContains('testing class method exception &amp; encoding', $response);
  421. }
  422. /**
  423. * @see ZF-1992
  424. */
  425. public function testDefaultEncodingShouldBeUtf8()
  426. {
  427. $server = new Zend_Rest_Server();
  428. $this->assertEquals('UTF-8', $server->getEncoding());
  429. }
  430. /**
  431. * @see ZF-1992
  432. */
  433. public function testEncodingShouldBeMutableViaAccessors()
  434. {
  435. $server = new Zend_Rest_Server();
  436. $this->assertEquals('UTF-8', $server->getEncoding());
  437. $server->setEncoding('ISO-8859-1');
  438. $this->assertEquals('ISO-8859-1', $server->getEncoding());
  439. }
  440. }
  441. /* Test Functions */
  442. /**
  443. * Test Function
  444. *
  445. * @param string $arg
  446. * @return string
  447. */
  448. function Zend_Rest_Server_TestFunc($who)
  449. {
  450. return "Hello $who";
  451. }
  452. /**
  453. * Test Function 2
  454. */
  455. function Zend_Rest_Server_TestFunc2()
  456. {
  457. return "Hello World";
  458. }
  459. /**
  460. * Return false
  461. *
  462. * @return bool
  463. */
  464. function Zend_Rest_Server_TestFunc3()
  465. {
  466. return false;
  467. }
  468. /**
  469. * Return true
  470. *
  471. * @return bool
  472. */
  473. function Zend_Rest_Server_TestFunc4()
  474. {
  475. return true;
  476. }
  477. /**
  478. * Return integer
  479. *
  480. * @return int
  481. */
  482. function Zend_Rest_Server_TestFunc5()
  483. {
  484. return 123;
  485. }
  486. /**
  487. * Return string
  488. *
  489. * @return string
  490. */
  491. function Zend_Rest_Server_TestFunc6()
  492. {
  493. return "string";
  494. }
  495. /**
  496. * Return array
  497. *
  498. * @return array
  499. */
  500. function Zend_Rest_Server_TestFunc7()
  501. {
  502. return array('foo' => 'bar', 'baz' => true, 1 => false, 'bat' => 123);
  503. }
  504. /**
  505. * Return Object
  506. *
  507. * @return StdClass
  508. */
  509. function Zend_Rest_Server_TestFunc8()
  510. {
  511. $return = (object) array('foo' => 'bar', 'baz' => true, 'bat' => 123, 'qux' => false);
  512. return $return;
  513. }
  514. /**
  515. * Multiple Args
  516. *
  517. * @param string $foo
  518. * @param string $bar
  519. * @return string
  520. */
  521. function Zend_Rest_Server_TestFunc9($foo, $bar)
  522. {
  523. return "$foo $bar";
  524. }
  525. /**
  526. * Void arguments
  527. *
  528. * @return void
  529. */
  530. function Zend_Rest_Server_TestFunc10()
  531. {
  532. // returns nothing
  533. }
  534. /**
  535. * throws exception
  536. *
  537. * @return void
  538. * @throws Exception
  539. */
  540. function Zend_Rest_Server_TestFunc11()
  541. {
  542. throw new Exception('testing rest server faults');
  543. }
  544. /**
  545. * Return nested array
  546. *
  547. * @return struct
  548. */
  549. function Zend_Rest_Server_TestFunc12()
  550. {
  551. return array('foo' => array('baz' => true, 1 => false, 'bat' => 123), 'bar' => 'baz');
  552. }
  553. /**
  554. * Test Class
  555. */
  556. class Zend_Rest_Server_Test
  557. {
  558. /**
  559. * Test Function
  560. */
  561. public function testFunc()
  562. {
  563. return "Hello World";
  564. }
  565. /**
  566. * Test Function 2
  567. *
  568. * @param string $who Some Arg
  569. */
  570. public function testFunc2($who)
  571. {
  572. return "Hello $who";
  573. }
  574. /**
  575. * Test Function 3
  576. *
  577. * @param string $who Some Arg
  578. * @param int $when Some Arg2
  579. */
  580. public function testFunc3($who, $when)
  581. {
  582. return "Hello $who, How are you $when";
  583. }
  584. /**
  585. * Test Function 4
  586. */
  587. public static function testFunc4()
  588. {
  589. return "Hello World";
  590. }
  591. /**
  592. * Test Function 5
  593. *
  594. * @param string $who Some Arg
  595. */
  596. public static function testFunc5($who)
  597. {
  598. return "Hello $who";
  599. }
  600. /**
  601. * Test Function 6
  602. *
  603. * @param string $who Some Arg
  604. * @param int $when Some Arg2
  605. */
  606. public static function testFunc6($who, $when)
  607. {
  608. return "Hello $who, How are you $when";
  609. }
  610. /**
  611. * Test scalar encoding
  612. *
  613. * @return string
  614. */
  615. public function testScalarEncoding()
  616. {
  617. return 'This string has chars & ampersands';
  618. }
  619. /**
  620. * Test structs encode correctly
  621. *
  622. * @return struct
  623. */
  624. public function testStructEncoding()
  625. {
  626. return array(
  627. 'foo' => 'bar & baz'
  628. );
  629. }
  630. /**
  631. * Test exceptions encode correctly
  632. *
  633. * @return void
  634. */
  635. public function testExceptionsEncoding()
  636. {
  637. throw new Exception('testing class method exception & encoding');
  638. }
  639. }
  640. class Zend_Rest_Server_Test2
  641. {
  642. public function __construct($arg1 = 'unset')
  643. {
  644. $this->arg1 = $arg1;
  645. }
  646. public function test2Func1()
  647. {
  648. return $this->arg1;
  649. }
  650. public function test2Xml()
  651. {
  652. $sx = new SimpleXMLElement('<root><foo>bar</foo></root>');
  653. return $sx;
  654. }
  655. public function test2DomDocument()
  656. {
  657. $dom = new DOMDocument('1.0', 'UTF-8');
  658. $root = $dom->createElement('root');
  659. $dom->appendChild($root);
  660. $foo = $dom->createElement('foo', 'bar');
  661. $root->appendChild($foo);
  662. return $dom;
  663. }
  664. public function test2DomElement()
  665. {
  666. $dom = new DOMDocument('1.0', 'UTF-8');
  667. $root = $dom->createElement('root');
  668. $dom->appendChild($root);
  669. $foo = $dom->createElement('foo', 'bar');
  670. $root->appendChild($foo);
  671. return $foo;
  672. }
  673. public function test2ThrowException()
  674. {
  675. throw new Exception('testing class method exception');
  676. }
  677. public function test2Struct()
  678. {
  679. $o = new stdClass();
  680. $o->foo = array('baz' => true, 1 => false, 'bat' => 123);
  681. $o->bar = 'baz';
  682. return $o;
  683. }
  684. }
  685. class Zend_Rest_TestException extends Exception { }
  686. // Call Zend_Rest_ServerTest::main() if this source file is executed directly.
  687. if (PHPUnit_MAIN_METHOD == "Zend_Rest_ServerTest::main") {
  688. Zend_Rest_ServerTest::main();
  689. }