Base64JsonTest.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Serialize\Test\Unit\Serializer;
  7. class Base64JsonTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Framework\Serialize\Serializer\Base64Json
  11. */
  12. private $base64json;
  13. protected function setUp()
  14. {
  15. $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
  16. $this->base64json = $objectManager->getObject(\Magento\Framework\Serialize\Serializer\Base64Json::class, [
  17. 'jsonSerializer' => new \Magento\Framework\Serialize\Serializer\Json()
  18. ]);
  19. }
  20. /**
  21. * @param string|int|float|bool|array|null $value
  22. * @param string $expected
  23. * @dataProvider serializeDataProvider
  24. */
  25. public function testSerialize($value, $expected)
  26. {
  27. $this->assertEquals($expected, $this->base64json->serialize($value));
  28. }
  29. /**
  30. * @return array
  31. */
  32. public function serializeDataProvider()
  33. {
  34. $dataObject = new \Magento\Framework\DataObject(['something']);
  35. return [
  36. ['', 'IiI='], // ""
  37. ['string', 'InN0cmluZyI='], // "string"
  38. [null, 'bnVsbA=='], // null
  39. [false, 'ZmFsc2U='], // false
  40. [['a' => 'b', 'd' => 123], 'eyJhIjoiYiIsImQiOjEyM30='], // {"a":"b","d":123}
  41. [123, 'MTIz'], // 123
  42. [10.56, 'MTAuNTY='], // 10.56
  43. [$dataObject, 'e30='], // {}
  44. ];
  45. }
  46. /**
  47. * @param string $value
  48. * @param string|int|float|bool|array|null $expected
  49. * @dataProvider unserializeDataProvider
  50. */
  51. public function testUnserialize($value, $expected)
  52. {
  53. $this->assertEquals($expected, $this->base64json->unserialize($value));
  54. }
  55. /**
  56. * @return array
  57. */
  58. public function unserializeDataProvider()
  59. {
  60. return [
  61. ['""', ''],
  62. ['"string"', 'string'],
  63. ['null', null],
  64. ['false', false],
  65. ['{"a":"b","d":123}', ['a' => 'b', 'd' => 123]],
  66. ['123', 123],
  67. ['10.56', 10.56],
  68. ["IiI=", ''],
  69. ['InN0cmluZyI=', 'string'],
  70. ['bnVsbA==', null],
  71. ['ZmFsc2U=', false],
  72. ['eyJhIjoiYiIsImQiOjEyM30=', ['a' => 'b', 'd' => 123]],
  73. ['MTIz', 123],
  74. ['MTAuNTY=', 10.56],
  75. ['e30=', []],
  76. ];
  77. }
  78. }