ResultTest.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. /**
  3. * @package Zend_Rest
  4. * @subpackage UnitTests
  5. */
  6. /**
  7. * Zend_Rest_Server
  8. */
  9. require_once 'Zend/Rest/Client/Result.php';
  10. /**
  11. * PHPUnit Test Case
  12. */
  13. require_once 'PHPUnit/Framework/TestCase.php';
  14. /**
  15. * Test cases for Zend_Rest_Server
  16. *
  17. * @package Zend_Rest
  18. * @subpackage UnitTests
  19. */
  20. class Zend_Rest_ResultTest extends PHPUnit_Framework_TestCase
  21. {
  22. static $path;
  23. public function __construct()
  24. {
  25. self::$path = dirname(__FILE__).'/responses/';
  26. }
  27. public function testResponseSuccess()
  28. {
  29. $xml = file_get_contents(self::$path ."returnString.xml");
  30. $client = new Zend_Rest_Client_Result($xml);
  31. $this->assertTrue($client->isSuccess());
  32. }
  33. public function testResponseIsError()
  34. {
  35. $xml = file_get_contents(self::$path ."returnError.xml");
  36. $client = new Zend_Rest_Client_Result($xml);
  37. $this->assertTrue($client->isError());
  38. }
  39. public function testResponseString()
  40. {
  41. $xml = file_get_contents(self::$path ."returnString.xml");
  42. $client = new Zend_Rest_Client_Result($xml);
  43. $this->assertEquals("string", $client->__toString());
  44. }
  45. public function testResponseInt()
  46. {
  47. $xml = file_get_contents(self::$path ."returnInt.xml");
  48. $client = new Zend_Rest_Client_Result($xml);
  49. $this->assertEquals("123", $client->__toString());
  50. }
  51. public function testResponseArray()
  52. {
  53. $xml = file_get_contents(self::$path ."returnArray.xml");
  54. // <foo>bar</foo><baz>1</baz><key_1>0</key_1><bat>123</bat>
  55. $client = new Zend_Rest_Client_Result($xml);
  56. foreach ($client as $key => $value) {
  57. $result_array[$key] = (string) $value;
  58. }
  59. $this->assertEquals(array("foo" => "bar", "baz" => "1", "key_1" => "0", "bat" => "123", "status" => "success"), $result_array);
  60. }
  61. public function testResponseObject()
  62. {
  63. $xml = file_get_contents(self::$path ."returnObject.xml");
  64. // <foo>bar</foo><baz>1</baz><bat>123</bat><qux>0</qux><status>success</status>
  65. $client = new Zend_Rest_Client_Result($xml);
  66. $this->assertEquals("bar", $client->foo());
  67. $this->assertEquals(1, $client->baz());
  68. $this->assertEquals(123, $client->bat());
  69. $this->assertEquals(0, $client->qux());
  70. $this->assertEquals("success", $client->status());
  71. }
  72. public function testResponseTrue()
  73. {
  74. $xml = file_get_contents(self::$path ."returnTrue.xml");
  75. $client = new Zend_Rest_Client_Result($xml);
  76. $this->assertTrue((bool)$client->response);
  77. }
  78. public function testResponseFalse()
  79. {
  80. $xml = file_get_contents(self::$path ."returnFalse.xml");
  81. $client = new Zend_Rest_Client_Result($xml);
  82. $this->assertFalse((bool) $client->response());
  83. }
  84. public function testResponseVoid()
  85. {
  86. $xml = file_get_contents(self::$path . "returnVoid.xml");
  87. $client = new Zend_Rest_Client_Result($xml);
  88. $this->assertEquals(null, $client->response());
  89. }
  90. public function testResponseException()
  91. {
  92. $xml = file_get_contents(self::$path . "returnError.xml");
  93. $client = new Zend_Rest_Client_Result($xml);
  94. $this->assertTrue($client->isError());
  95. }
  96. public function testGetXpathValue()
  97. {
  98. $xml = file_get_contents(self::$path . DIRECTORY_SEPARATOR . 'returnNestedArray.xml');
  99. $result = new Zend_Rest_Client_Result($xml);
  100. $key_1 = $result->key_1();
  101. $this->assertEquals(0, $key_1);
  102. }
  103. public function testGetXpathValueMissing()
  104. {
  105. $xml = file_get_contents(self::$path . DIRECTORY_SEPARATOR . 'returnNestedArray.xml');
  106. $result = new Zend_Rest_Client_Result($xml);
  107. $lola = $result->lola;
  108. $this->assertNull($lola);
  109. }
  110. public function testGetXpathValueArray()
  111. {
  112. $xml = file_get_contents(self::$path . DIRECTORY_SEPARATOR . 'returnNestedArray.xml');
  113. $result = new Zend_Rest_Client_Result($xml);
  114. $baz = $result->baz;
  115. $this->assertTrue(is_array($baz), var_export($baz, 1));
  116. $this->assertEquals('1', (string) $baz[0]);
  117. $this->assertEquals('farama', (string) $baz[1]);
  118. }
  119. public function testIsset()
  120. {
  121. $xml = file_get_contents(self::$path . DIRECTORY_SEPARATOR . 'returnNestedArray.xml');
  122. $result = new Zend_Rest_Client_Result($xml);
  123. $this->assertTrue(isset($result->bar));
  124. }
  125. public function testIssetXpathValue()
  126. {
  127. $xml = file_get_contents(self::$path . DIRECTORY_SEPARATOR . 'returnNestedArray.xml');
  128. $result = new Zend_Rest_Client_Result($xml);
  129. $this->assertTrue(isset($result->baz));
  130. }
  131. public function testIssetInvalidValue()
  132. {
  133. $xml = file_get_contents(self::$path . DIRECTORY_SEPARATOR . 'returnNestedArray.xml');
  134. $result = new Zend_Rest_Client_Result($xml);
  135. $this->assertFalse(isset($result->lola));
  136. }
  137. public function testCall()
  138. {
  139. $xml = file_get_contents(self::$path . DIRECTORY_SEPARATOR . 'returnNestedArray.xml');
  140. $result = new Zend_Rest_Client_Result($xml);
  141. $returned = $result->key_1();
  142. $this->assertEquals(0, $returned);
  143. }
  144. }