GuestCartRepositoryTest.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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. use Magento\GiftMessage\Api\Data\MessageInterface;
  9. use Magento\GiftMessage\Model\ItemRepository;
  10. use Magento\GiftMessage\Model\GuestItemRepository;
  11. use Magento\Quote\Model\QuoteIdMask;
  12. use Magento\Quote\Model\QuoteIdMaskFactory;
  13. class GuestCartRepositoryTest extends \PHPUnit\Framework\TestCase
  14. {
  15. /**
  16. * @var GuestItemRepository
  17. */
  18. protected $model;
  19. /**
  20. * @var ItemRepository|\PHPUnit_Framework_MockObject_MockObject
  21. */
  22. protected $repositoryMock;
  23. /**
  24. * @var QuoteIdMaskFactory|\PHPUnit_Framework_MockObject_MockObject
  25. */
  26. protected $quoteIdMaskFactoryMock;
  27. protected function setUp()
  28. {
  29. $this->repositoryMock = $this->getMockBuilder(\Magento\GiftMessage\Model\ItemRepository::class)
  30. ->disableOriginalConstructor()
  31. ->getMock();
  32. $this->quoteIdMaskFactoryMock = $this->getMockBuilder(\Magento\Quote\Model\QuoteIdMaskFactory::class)
  33. ->disableOriginalConstructor()
  34. ->setMethods(['create'])
  35. ->getMockForAbstractClass();
  36. $this->model = new GuestItemRepository(
  37. $this->repositoryMock,
  38. $this->quoteIdMaskFactoryMock
  39. );
  40. }
  41. public function testGet()
  42. {
  43. $cartId = 'jIUggbo76';
  44. $quoteId = 123;
  45. $itemId = 234;
  46. /** @var QuoteIdMask|\PHPUnit_Framework_MockObject_MockObject $quoteIdMaskMock */
  47. $quoteIdMaskMock = $this->getMockBuilder(\Magento\Quote\Model\QuoteIdMask::class)
  48. ->setMethods(['getQuoteId', 'load'])
  49. ->disableOriginalConstructor()
  50. ->getMock();
  51. $this->quoteIdMaskFactoryMock->expects($this->once())
  52. ->method('create')
  53. ->willReturn($quoteIdMaskMock);
  54. $quoteIdMaskMock->expects($this->once())
  55. ->method('load')
  56. ->with($cartId, 'masked_id')
  57. ->willReturnSelf();
  58. $quoteIdMaskMock->expects($this->once())
  59. ->method('getQuoteId')
  60. ->willReturn($quoteId);
  61. /** @var MessageInterface|\PHPUnit_Framework_MockObject_MockObject $messageMock */
  62. $messageMock = $this->getMockBuilder(\Magento\GiftMessage\Api\Data\MessageInterface::class)
  63. ->getMockForAbstractClass();
  64. $this->repositoryMock->expects($this->once())
  65. ->method('get')
  66. ->with($quoteId, $itemId)
  67. ->willReturn($messageMock);
  68. $this->assertEquals($messageMock, $this->model->get($cartId, $itemId));
  69. }
  70. public function testSave()
  71. {
  72. $cartId = 'jIUggbo76';
  73. $quoteId = 123;
  74. $itemId = 234;
  75. /** @var QuoteIdMask|\PHPUnit_Framework_MockObject_MockObject $quoteIdMaskMock */
  76. $quoteIdMaskMock = $this->getMockBuilder(\Magento\Quote\Model\QuoteIdMask::class)
  77. ->setMethods(['getQuoteId', 'load'])
  78. ->disableOriginalConstructor()
  79. ->getMock();
  80. $this->quoteIdMaskFactoryMock->expects($this->once())
  81. ->method('create')
  82. ->willReturn($quoteIdMaskMock);
  83. $quoteIdMaskMock->expects($this->once())
  84. ->method('load')
  85. ->with($cartId, 'masked_id')
  86. ->willReturnSelf();
  87. $quoteIdMaskMock->expects($this->once())
  88. ->method('getQuoteId')
  89. ->willReturn($quoteId);
  90. /** @var MessageInterface|\PHPUnit_Framework_MockObject_MockObject $messageMock */
  91. $messageMock = $this->getMockBuilder(\Magento\GiftMessage\Api\Data\MessageInterface::class)
  92. ->getMockForAbstractClass();
  93. $this->repositoryMock->expects($this->once())
  94. ->method('save')
  95. ->with($quoteId, $messageMock, $itemId)
  96. ->willReturn(true);
  97. $this->assertTrue($this->model->save($cartId, $messageMock, $itemId));
  98. }
  99. }