SalesEventQuoteMergeTest.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\GiftMessage\Test\Unit\Observer;
  8. use Magento\GiftMessage\Observer\SalesEventQuoteMerge;
  9. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  10. use Magento\Framework\Event\Observer;
  11. use Magento\Quote\Model\Quote;
  12. /**
  13. * SalesEventQuoteMergeTest
  14. */
  15. class SalesEventQuoteMergeTest extends \PHPUnit\Framework\TestCase
  16. {
  17. /**
  18. * @var SalesEventQuoteMerge
  19. */
  20. private $salesEventQuoteMerge;
  21. /**
  22. * @return void
  23. */
  24. public function setUp(): void
  25. {
  26. $objectManger = new ObjectManager($this);
  27. $this->salesEventQuoteMerge = $objectManger->getObject(SalesEventQuoteMerge::class);
  28. }
  29. /**
  30. * @dataProvider dataProviderGiftMessageId
  31. *
  32. * @param null|int $giftMessageId
  33. *
  34. * @return void
  35. */
  36. public function testExecute($giftMessageId): void
  37. {
  38. $sourceQuoteMock = $this->createPartialMock(Quote::class, ['getGiftMessageId']);
  39. $sourceQuoteMock->expects($this->once())
  40. ->method('getGiftMessageId')
  41. ->willReturn($giftMessageId);
  42. $targetQuoteMock = $this->createPartialMock(Quote::class, ['setGiftMessageId']);
  43. if ($giftMessageId) {
  44. $targetQuoteMock->expects($this->once())
  45. ->method('setGiftMessageId');
  46. } else {
  47. $targetQuoteMock->expects($this->never())
  48. ->method('setGiftMessageId');
  49. }
  50. $observer = $this->createMock(Observer::class);
  51. $observer->expects($this->exactly(2))
  52. ->method('getData')
  53. ->willReturnMap([
  54. ['quote', null, $targetQuoteMock],
  55. ['source', null, $sourceQuoteMock]
  56. ]);
  57. $this->salesEventQuoteMerge->execute($observer);
  58. }
  59. /**
  60. * @return array
  61. */
  62. public function dataProviderGiftMessageId(): array
  63. {
  64. return [
  65. [null],
  66. [1]
  67. ];
  68. }
  69. }