SerializeToJsonTest.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Migration\Handler;
  7. class SerializeToJsonTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @return void
  11. * @dataProvider handleDataProvider
  12. */
  13. public function testHandle($serializedData, $unserializedData)
  14. {
  15. $fieldName = 'fieldname';
  16. /** @var \Migration\ResourceModel\Record|\PHPUnit_Framework_MockObject_MockObject $record */
  17. $record = $this->createPartialMock(
  18. \Migration\ResourceModel\Record::class,
  19. ['setValue', 'getValue', 'getFields']
  20. );
  21. $record->expects($this->any())->method('getFields')->willReturn([$fieldName]);
  22. $record->expects($this->any())->method('getValue')->with($fieldName)->willReturn($serializedData);
  23. $record->expects($this->any())->method('setValue')->with($fieldName, $unserializedData);
  24. $record2 = $this->getMockBuilder(\Migration\ResourceModel\Record::class)
  25. ->disableOriginalConstructor()
  26. ->getMock();
  27. $documentIdField = $this->getMockBuilder(\Migration\Model\DocumentIdField::class)
  28. ->setMethods(['getFiled'])
  29. ->disableOriginalConstructor()
  30. ->getMock();
  31. $logger = $this->getMockBuilder(\Migration\Logger\Logger::class)
  32. ->setMethods(['warning'])
  33. ->disableOriginalConstructor()
  34. ->getMock();
  35. $handler = new SerializeToJson($logger, $documentIdField, true, false);
  36. $handler->setField($fieldName);
  37. $this->assertNull($handler->handle($record, $record2));
  38. }
  39. /**
  40. * @return array
  41. */
  42. public function handleDataProvider()
  43. {
  44. $array = ['some_field' => 'value'];
  45. return [
  46. [
  47. serialize($array),
  48. json_encode($array)
  49. ],
  50. [
  51. null,
  52. null
  53. ]
  54. ];
  55. }
  56. }