WddxTest.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <?php
  2. /**
  3. * @package Zend_Cache
  4. * @subpackage UnitTests
  5. */
  6. /** @see Zend_Serializer_Adapter_Wddx */
  7. require_once 'Zend/Serializer/Adapter/Wddx.php';
  8. /**
  9. * PHPUnit test case
  10. */
  11. require_once 'PHPUnit/Framework/TestCase.php';
  12. /**
  13. * @package Zend_Serializer
  14. * @subpackage UnitTests
  15. */
  16. class Zend_Serializer_Adapter_WddxTest extends PHPUnit_Framework_TestCase
  17. {
  18. private $_adapter;
  19. public function setUp()
  20. {
  21. $this->_adapter = new Zend_Serializer_Adapter_Wddx();
  22. }
  23. public function tearDown()
  24. {
  25. $this->_adapter = null;
  26. }
  27. public function testSerializeString() {
  28. $value = 'test';
  29. $expected = '<wddxPacket version=\'1.0\'><header/>'
  30. . '<data><string>test</string></data></wddxPacket>';
  31. $data = $this->_adapter->serialize($value);
  32. $this->assertEquals($expected, $data);
  33. }
  34. public function testSerializeStringWithComment() {
  35. $value = 'test';
  36. $expected = '<wddxPacket version=\'1.0\'><header><comment>a test comment</comment></header>'
  37. . '<data><string>test</string></data></wddxPacket>';
  38. $data = $this->_adapter->serialize($value, array('comment' => 'a test comment'));
  39. $this->assertEquals($expected, $data);
  40. }
  41. public function testSerializeFalse() {
  42. $value = false;
  43. $expected = '<wddxPacket version=\'1.0\'><header/>'
  44. . '<data><boolean value=\'false\'/></data></wddxPacket>';
  45. $data = $this->_adapter->serialize($value);
  46. $this->assertEquals($expected, $data);
  47. }
  48. public function testSerializeTrue() {
  49. $value = true;
  50. $expected = '<wddxPacket version=\'1.0\'><header/>'
  51. . '<data><boolean value=\'true\'/></data></wddxPacket>';
  52. $data = $this->_adapter->serialize($value);
  53. $this->assertEquals($expected, $data);
  54. }
  55. public function testSerializeNull() {
  56. $value = null;
  57. $expected = '<wddxPacket version=\'1.0\'><header/>'
  58. . '<data><null/></data></wddxPacket>';
  59. $data = $this->_adapter->serialize($value);
  60. $this->assertEquals($expected, $data);
  61. }
  62. public function testSerializeNumeric() {
  63. $value = 100;
  64. $expected = '<wddxPacket version=\'1.0\'><header/>'
  65. . '<data><number>100</number></data></wddxPacket>';
  66. $data = $this->_adapter->serialize($value);
  67. $this->assertEquals($expected, $data);
  68. }
  69. public function testSerializeObject() {
  70. $value = new stdClass();
  71. $value->test = "test";
  72. $expected = '<wddxPacket version=\'1.0\'><header/>'
  73. . '<data><struct>'
  74. . '<var name=\'php_class_name\'><string>stdClass</string></var>'
  75. . '<var name=\'test\'><string>test</string></var>'
  76. . '</struct></data></wddxPacket>';
  77. $data = $this->_adapter->serialize($value);
  78. $this->assertEquals($expected, $data);
  79. }
  80. public function testUnserializeString() {
  81. $value = '<wddxPacket version=\'1.0\'><header/>'
  82. . '<data><string>test</string></data></wddxPacket>';
  83. $expected = 'test';
  84. $data = $this->_adapter->unserialize($value);
  85. $this->assertEquals($expected, $data);
  86. }
  87. public function testUnserializeFalse() {
  88. $value = '<wddxPacket version=\'1.0\'><header/>'
  89. . '<data><boolean value=\'false\'/></data></wddxPacket>';
  90. $expected = false;
  91. $data = $this->_adapter->unserialize($value);
  92. $this->assertEquals($expected, $data);
  93. }
  94. public function testUnserializeTrue() {
  95. $value = '<wddxPacket version=\'1.0\'><header/>'
  96. . '<data><boolean value=\'true\'/></data></wddxPacket>';
  97. $expected = true;
  98. $data = $this->_adapter->unserialize($value);
  99. $this->assertEquals($expected, $data);
  100. }
  101. public function testUnserializeNull1() {
  102. $value = '<wddxPacket version=\'1.0\'><header/>'
  103. . '<data><null/></data></wddxPacket>';
  104. $expected = null;
  105. $data = $this->_adapter->unserialize($value);
  106. $this->assertEquals($expected, $data);
  107. }
  108. /**
  109. * test to unserialize a valid null value by an valid wddx
  110. * but with some differenzes to the null cenerated by php
  111. * -> the invalid check have to success for all valid wddx null
  112. */
  113. public function testUnserializeNull2() {
  114. $value = '<wddxPacket version=\'1.0\'><header/>' . "\n"
  115. . '<data><null/></data></wddxPacket>';
  116. $expected = null;
  117. $data = $this->_adapter->unserialize($value);
  118. $this->assertEquals($expected, $data);
  119. }
  120. public function testUnserializeNumeric() {
  121. $value = '<wddxPacket version=\'1.0\'><header/>'
  122. . '<data><number>100</number></data></wddxPacket>';
  123. $expected = 100;
  124. $data = $this->_adapter->unserialize($value);
  125. $this->assertEquals($expected, $data);
  126. }
  127. public function testUnserializeObject() {
  128. $value = '<wddxPacket version=\'1.0\'><header/>'
  129. . '<data><struct>'
  130. . '<var name=\'php_class_name\'><string>stdClass</string></var>'
  131. . '<var name=\'test\'><string>test</string></var>'
  132. . '</struct></data></wddxPacket>';
  133. $expected = new stdClass();
  134. $expected->test = 'test';
  135. $data = $this->_adapter->unserialize($value);
  136. $this->assertEquals($expected, $data);
  137. }
  138. public function testUnserialzeInvalid() {
  139. $value = 'not a serialized string';
  140. $this->setExpectedException('Zend_Serializer_Exception');
  141. $this->_adapter->unserialize($value);
  142. }
  143. }
  144. /**
  145. * @category Zend
  146. * @package Zend_Serializer
  147. * @subpackage UnitTests
  148. * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
  149. * @license http://framework.zend.com/license/new-bsd New BSD License
  150. */
  151. class Zend_Serializer_Adapter_WddxSkipTest extends PHPUnit_Framework_TestCase
  152. {
  153. public $message = null;
  154. public function setUp()
  155. {
  156. $message = 'Skipped Zend_Serializer_Adapter_WddxTest';
  157. if ($this->message) {
  158. $message.= ': ' . $this->message;
  159. }
  160. $this->markTestSkipped($message);
  161. }
  162. public function testEmpty()
  163. {
  164. // this is here only so we have at least one test
  165. }
  166. }