MapperTest.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\DataObject\Test\Unit;
  7. class MapperTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Framework\DataObject\Mapper
  11. */
  12. protected $mapper;
  13. /**
  14. * @var \PHPUnit_Framework_MockObject_MockObject
  15. */
  16. protected $fromMock;
  17. /**
  18. * @var \PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $toMock;
  21. protected function setUp()
  22. {
  23. $this->fromMock = $this->createMock(\Magento\Framework\DataObject::class);
  24. $this->toMock = $this->createMock(\Magento\Framework\DataObject::class);
  25. $this->mapper = new \Magento\Framework\DataObject\Mapper();
  26. }
  27. public function testAccumulateByMapWhenToIsArrayFromIsObject()
  28. {
  29. $map['key'] = 'map_value';
  30. $to['key'] = 'from_value';
  31. $default['new_key'] = 'default_value';
  32. $this->fromMock->expects($this->once())->method('hasData')->with('key')->will($this->returnValue(true));
  33. $this->fromMock->expects($this->once())->method('getData')->with('key')->will($this->returnValue('from_value'));
  34. $expected['key'] = 'from_value';
  35. $expected['map_value'] = 'from_value';
  36. $expected['new_key'] = 'default_value';
  37. $this->assertEquals($expected, $this->mapper->accumulateByMap($this->fromMock, $to, $map, $default));
  38. }
  39. public function testAccumulateByMapWhenToAndFromAreObjects()
  40. {
  41. $from = [
  42. $this->fromMock,
  43. 'getData',
  44. ];
  45. $to = [
  46. $this->toMock,
  47. 'setData',
  48. ];
  49. $default = [0];
  50. $map['key'] = ['value'];
  51. $this->fromMock->expects($this->once())->method('hasData')->with('key')->will($this->returnValue(false));
  52. $this->fromMock->expects($this->once())->method('getData')->with('key')->will($this->returnValue(true));
  53. $this->assertEquals($this->toMock, $this->mapper->accumulateByMap($from, $to, $map, $default));
  54. }
  55. public function testAccumulateByMapWhenFromIsArrayToIsObject()
  56. {
  57. $map['key'] = 'map_value';
  58. $from['key'] = 'from_value';
  59. $default['new_key'] = 'default_value';
  60. $this->toMock->expects($this->exactly(2))->method('setData');
  61. $this->assertEquals($this->toMock, $this->mapper->accumulateByMap($from, $this->toMock, $map, $default));
  62. }
  63. public function testAccumulateByMapFromAndToAreArrays()
  64. {
  65. $from['value'] = 'from_value';
  66. $map[false] = 'value';
  67. $to['key'] = 'to_value';
  68. $default['new_key'] = 'value';
  69. $expected['key'] = 'to_value';
  70. $expected['value'] = 'from_value';
  71. $expected['new_key'] = 'value';
  72. $this->assertEquals($expected, $this->mapper->accumulateByMap($from, $to, $map, $default));
  73. }
  74. }