QuoteTest.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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\ResourceModel;
  7. use Magento\Framework\DB\Sequence\SequenceInterface;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  9. use Magento\Quote\Model\Quote;
  10. use Magento\Quote\Model\ResourceModel\Quote as QuoteResource;
  11. use Magento\SalesSequence\Model\Manager;
  12. /**
  13. * Unit test for \Magento\Quote\Model\ResourceModel\Quote.
  14. */
  15. class QuoteTest extends \PHPUnit\Framework\TestCase
  16. {
  17. /**
  18. * @var Quote|\PHPUnit_Framework_MockObject_MockObject
  19. */
  20. private $quoteMock;
  21. /**
  22. * @var Manager|\PHPUnit_Framework_MockObject_MockObject
  23. */
  24. private $sequenceManagerMock;
  25. /**
  26. * @var SequenceInterface|\PHPUnit_Framework_MockObject_MockObject
  27. */
  28. private $sequenceMock;
  29. /**
  30. * @var QuoteResource
  31. */
  32. private $model;
  33. /**
  34. * @inheritdoc
  35. */
  36. protected function setUp()
  37. {
  38. $objectManagerHelper = new ObjectManager($this);
  39. $this->quoteMock = $this->createMock(Quote::class);
  40. $this->sequenceManagerMock = $this->createMock(Manager::class);
  41. $this->sequenceMock = $this->createMock(SequenceInterface::class);
  42. $this->model = $objectManagerHelper->getObject(
  43. QuoteResource::class,
  44. [
  45. 'sequenceManager' => $this->sequenceManagerMock,
  46. ]
  47. );
  48. }
  49. /**
  50. * @param string $entityType
  51. * @param int $storeId
  52. * @param string $reservedOrderId
  53. * @return void
  54. * @dataProvider getReservedOrderIdDataProvider
  55. */
  56. public function testGetReservedOrderId(string $entityType, int $storeId, string $reservedOrderId): void
  57. {
  58. $this->sequenceManagerMock->expects($this->once())
  59. ->method('getSequence')
  60. ->with($entityType, $storeId)
  61. ->willReturn($this->sequenceMock);
  62. $this->quoteMock->expects($this->once())
  63. ->method('getStoreId')
  64. ->willReturn($storeId);
  65. $this->sequenceMock->expects($this->once())
  66. ->method('getNextValue')
  67. ->willReturn($reservedOrderId);
  68. $this->assertEquals($reservedOrderId, $this->model->getReservedOrderId($this->quoteMock));
  69. }
  70. /**
  71. * @return array
  72. */
  73. public function getReservedOrderIdDataProvider(): array
  74. {
  75. return [
  76. [\Magento\Sales\Model\Order::ENTITY, 1, '1000000001'],
  77. [\Magento\Sales\Model\Order::ENTITY, 2, '2000000001'],
  78. [\Magento\Sales\Model\Order::ENTITY, 3, '3000000001'],
  79. ];
  80. }
  81. }