SaveTest.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\GiftMessage\Test\Unit\Model;
  8. class SaveTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /**
  11. * @var \PHPUnit_Framework_MockObject_MockObject
  12. */
  13. protected $messageFactoryMock;
  14. /**
  15. * @var \Magento\GiftMessage\Model\Save
  16. */
  17. protected $model;
  18. protected function setUp()
  19. {
  20. $productRepositoryMock = $this->createMock(\Magento\Catalog\Api\ProductRepositoryInterface::class);
  21. $this->messageFactoryMock = $this->getMockBuilder(\Magento\GiftMessage\Model\MessageFactory::class)
  22. ->setMethods(['create'])
  23. ->disableOriginalConstructor()
  24. ->getMock();
  25. $sessionMock = $this->createMock(\Magento\Backend\Model\Session\Quote::class);
  26. $giftMessageHelperMock = $this->createMock(\Magento\GiftMessage\Helper\Message::class);
  27. $this->model = new \Magento\GiftMessage\Model\Save(
  28. $productRepositoryMock,
  29. $this->messageFactoryMock,
  30. $sessionMock,
  31. $giftMessageHelperMock
  32. );
  33. }
  34. public function testSaveAllInOrder()
  35. {
  36. $message = [1 =>
  37. [
  38. 'from' => 'John Doe',
  39. 'to' => 'Jane Doe',
  40. 'message' => 'I love Magento',
  41. 'type' => 'order'
  42. ]
  43. ];
  44. $this->model->setGiftmessages($message);
  45. $messageMock = $this->createMock(\Magento\GiftMessage\Model\Message::class);
  46. $entityModelMock = $this->createMock(\Magento\Sales\Model\Order::class);
  47. $this->messageFactoryMock->expects($this->once())->method('create')->willReturn($messageMock);
  48. $messageMock->expects($this->once())->method('getEntityModelByType')->with('order')->willReturnSelf();
  49. $messageMock->expects($this->once())->method('load')->with(1)->willReturn($entityModelMock);
  50. $messageMock->expects($this->atLeastOnce())->method('isMessageEmpty')->willReturn(false);
  51. $messageMock->expects($this->once())->method('save');
  52. $entityModelMock->expects($this->once())->method('save');
  53. $this->assertEquals($this->model, $this->model->saveAllInOrder());
  54. }
  55. }