/tests/Zend/Serializer/SerializerTest.php

https://github.com/leerbag/zf2 · PHP · 138 lines · 90 code · 18 blank · 30 comment · 0 complexity · 9e88bdb95b1b63e181e0048946ce3850 MD5 · raw file

  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_Serializer
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. */
  21. /**
  22. * @namespace
  23. */
  24. namespace ZendTest\Serializer;
  25. use Zend\Serializer\Serializer,
  26. Zend\Serializer\AdapterBroker,
  27. Zend\Serializer\Adapter,
  28. Zend\Loader\Broker,
  29. Zend\Loader\PluginBroker;
  30. /**
  31. * @category Zend
  32. * @package Zend_Serializer
  33. * @subpackage UnitTests
  34. * @group Zend_Serializer
  35. * @copyright Copyright (c) 2005-2011 Zend Technologies USA Inc. (http://www.zend.com)
  36. * @license http://framework.zend.com/license/new-bsd New BSD License
  37. */
  38. class SerializerTest extends \PHPUnit_Framework_TestCase
  39. {
  40. public function setUp()
  41. {
  42. }
  43. public function tearDown()
  44. {
  45. Serializer::resetAdapterBroker();
  46. }
  47. public function testGetDefaultAdapterBroker()
  48. {
  49. $this->assertTrue(Serializer::getAdapterBroker() instanceof AdapterBroker);
  50. }
  51. public function testChangeAdapterBroker()
  52. {
  53. $newBroker = new PluginBroker();
  54. Serializer::setAdapterBroker($newBroker);
  55. $this->assertTrue(Serializer::getAdapterBroker() === $newBroker);
  56. }
  57. public function testDefaultAdapter()
  58. {
  59. $adapter = Serializer::getDefaultAdapter();
  60. $this->assertTrue($adapter instanceof Adapter);
  61. }
  62. public function testFactoryValidCall()
  63. {
  64. $serializer = Serializer::factory('PhpSerialize');
  65. $this->assertTrue($serializer instanceof Adapter\PHPSerialize);
  66. }
  67. public function testFactoryUnknownAdapter()
  68. {
  69. $this->setExpectedException('Zend\Loader\Exception\RuntimeException', 'locate class');
  70. Serializer::factory('unknown');
  71. }
  72. public function testFactoryOnADummyClassAdapter()
  73. {
  74. $this->setExpectedException('Zend\\Serializer\\Exception','must implement Zend\\Serializer\\Adapter');
  75. $broker = new AdapterBroker();
  76. $broker->getClassLoader()->registerPlugin('dummy', 'ZendTest\Serializer\TestAsset\Dummy');
  77. Serializer::setAdapterBroker($broker);
  78. Serializer::factory('dummy');
  79. }
  80. public function testChangeDefaultAdapterWithString()
  81. {
  82. Serializer::setDefaultAdapter('Json');
  83. $this->assertTrue(Serializer::getDefaultAdapter() instanceof Adapter\Json);
  84. }
  85. public function testChangeDefaultAdapterWithInstance()
  86. {
  87. $newAdapter = new Adapter\PhpSerialize();
  88. Serializer::setDefaultAdapter($newAdapter);
  89. $this->assertTrue($newAdapter === Serializer::getDefaultAdapter());
  90. }
  91. public function testSerializeDefaultAdapter()
  92. {
  93. $value = 'test';
  94. $adapter = Serializer::getDefaultAdapter();
  95. $expected = $adapter->serialize($value);
  96. $this->assertEquals($expected, Serializer::serialize($value));
  97. }
  98. public function testSerializeSpecificAdapter()
  99. {
  100. $value = 'test';
  101. $adapter = new Adapter\Json();
  102. $expected = $adapter->serialize($value);
  103. $this->assertEquals($expected, Serializer::serialize($value, array('adapter' => $adapter)));
  104. }
  105. public function testUnserializeDefaultAdapter()
  106. {
  107. $value = 'test';
  108. $adapter = Serializer::getDefaultAdapter();
  109. $value = $adapter->serialize($value);
  110. $expected = $adapter->unserialize($value);
  111. $this->assertEquals($expected, Serializer::unserialize($value));
  112. }
  113. public function testUnserializeSpecificAdapter()
  114. {
  115. $adapter = new Adapter\Json();
  116. $value = '"test"';
  117. $expected = $adapter->unserialize($value);
  118. $this->assertEquals($expected, Serializer::unserialize($value, array('adapter' => $adapter)));
  119. }
  120. }