ToOrderItemTest.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Quote\Test\Unit\Model\Quote\Item;
  7. /**
  8. * Class ToOrderItemTest
  9. */
  10. class ToOrderItemTest extends \PHPUnit\Framework\TestCase
  11. {
  12. /**
  13. * @var \Magento\Quote\Model\Quote\Item\ToOrderItem
  14. */
  15. protected $converter;
  16. /**
  17. * @var \Magento\Sales\Api\Data\OrderItemInterfaceFactory|\PHPUnit_Framework_MockObject_MockObject
  18. */
  19. protected $orderItemFactoryMock;
  20. /**
  21. * @var \Magento\Framework\DataObject\Copy|\PHPUnit_Framework_MockObject_MockObject
  22. */
  23. protected $objectCopyServiceMock;
  24. /**
  25. * @var \Magento\Quote\Model\Quote\Item|\PHPUnit_Framework_MockObject_MockObject
  26. */
  27. protected $quoteItemMock;
  28. /**
  29. * @var \Magento\Catalog\Model\Product|\PHPUnit_Framework_MockObject_MockObject
  30. */
  31. protected $productMock;
  32. /**
  33. * @var \Magento\Catalog\Model\Product\Type\Simple|\PHPUnit_Framework_MockObject_MockObject
  34. */
  35. protected $productTypeMock;
  36. /**
  37. * @var \Magento\Sales\Api\Data\OrderItemInterface|\PHPUnit_Framework_MockObject_MockObject
  38. */
  39. protected $orderItemMock;
  40. protected function setUp()
  41. {
  42. $this->orderItemFactoryMock = $this->createPartialMock(
  43. \Magento\Sales\Api\Data\OrderItemInterfaceFactory::class,
  44. ['create']
  45. );
  46. $this->objectCopyServiceMock = $this->createMock(\Magento\Framework\DataObject\Copy::class);
  47. $this->quoteItemMock = $this->createMock(\Magento\Quote\Model\Quote\Item::class);
  48. $this->productMock = $this->createMock(\Magento\Catalog\Model\Product::class);
  49. $this->productTypeMock = $this->createMock(\Magento\Catalog\Model\Product\Type\Simple::class);
  50. $this->orderItemMock = $this->createMock(\Magento\Sales\Model\Order\Item::class);
  51. $dataObjectHelper = $this->createMock(\Magento\Framework\Api\DataObjectHelper::class);
  52. $this->converter = new \Magento\Quote\Model\Quote\Item\ToOrderItem(
  53. $this->orderItemFactoryMock,
  54. $this->objectCopyServiceMock,
  55. $dataObjectHelper
  56. );
  57. }
  58. /**
  59. * test for convert method
  60. */
  61. public function testConvert()
  62. {
  63. $this->quoteItemMock->expects($this->exactly(2))
  64. ->method('getProduct')
  65. ->willReturn($this->productMock);
  66. $this->productMock->expects($this->once())
  67. ->method('getTypeInstance')
  68. ->willReturn($this->productTypeMock);
  69. $this->productTypeMock->expects($this->once())
  70. ->method('getOrderOptions')
  71. ->with($this->productMock)
  72. ->willReturn(['option']);
  73. $this->objectCopyServiceMock->expects($this->at(0))
  74. ->method('getDataFromFieldset')
  75. ->with('quote_convert_item', 'to_order_item', $this->quoteItemMock)
  76. ->willReturn([]);
  77. $this->objectCopyServiceMock->expects($this->at(1))
  78. ->method('getDataFromFieldset')
  79. ->with('quote_convert_item', 'to_order_item_discount', $this->quoteItemMock)
  80. ->willReturn([]);
  81. $this->orderItemFactoryMock->expects($this->once())
  82. ->method('create')
  83. ->willReturn($this->orderItemMock);
  84. $this->assertInstanceOf(
  85. \Magento\Sales\Model\Order\Item::class,
  86. $this->converter->convert($this->quoteItemMock, [])
  87. );
  88. }
  89. }