SerializedToJsonTest.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\DB\Test\Unit\DataConverter;
  7. use Magento\Framework\Serialize\Serializer\Serialize;
  8. use Magento\Framework\Serialize\Serializer\Json;
  9. use Magento\Framework\DB\DataConverter\SerializedToJson;
  10. class SerializedToJsonTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var SerializedToJson
  14. */
  15. private $serializedToJson;
  16. protected function setUp()
  17. {
  18. $this->serializedToJson = new SerializedToJson(
  19. new Serialize(),
  20. new Json()
  21. );
  22. }
  23. /**
  24. * Tests converting from serialized to JSON format with different precision settings.
  25. *
  26. * @param $serializedData
  27. * @param $expectedJson
  28. * @dataProvider convertDataProvider
  29. */
  30. public function testConvert($serializedData, $expectedJson)
  31. {
  32. $this->assertEquals($expectedJson, $this->serializedToJson->convert($serializedData));
  33. }
  34. /**
  35. * @case #1 - Serialized 0.1234567890123456789 with serialize_precision = 17 (default for PHP version < 7.1.0)
  36. * @case #2 - Serialized 2.203 with serialize_precision = 17 (default for PHP version < 7.1.0 )
  37. * @return array
  38. */
  39. public function convertDataProvider()
  40. {
  41. return [
  42. 1 => ['serializedData' => 'a:1:{i:0;d:0.12345678901234568;}', 'expectedJson' => '[0.12345678901234568]'],
  43. 2 => ['serializedData' => 'a:1:{i:0;d:2.2029999999999998;}', 'expectedJson' => '[2.2029999999999998]']
  44. ];
  45. }
  46. }