1+ <?php
2+ /**
3+ * Copyright © Magento, Inc. All rights reserved.
4+ * See COPYING.txt for license details.
5+ */
6+
7+ namespace Magento \Quote \Test \Unit \Model \ResourceModel ;
8+
9+ use Magento \Framework \DB \Sequence \SequenceInterface ;
10+ use Magento \Framework \Model \ResourceModel \Db \Context ;
11+ use Magento \Framework \Model \ResourceModel \Db \VersionControl \RelationComposite ;
12+ use Magento \Framework \Model \ResourceModel \Db \VersionControl \Snapshot ;
13+ use Magento \Quote \Model \Quote ;
14+ use Magento \SalesSequence \Model \Manager ;
15+
16+ class QuoteTest extends \PHPUnit_Framework_TestCase
17+ {
18+ /**
19+ * @var Quote|\PHPUnit_Framework_MockObject_MockObject
20+ */
21+ private $ quoteMock ;
22+ /**
23+ * @var Manager|\PHPUnit_Framework_MockObject_MockObject
24+ */
25+ private $ sequenceManagerMock ;
26+ /**
27+ * @var SequenceInterface|\PHPUnit_Framework_MockObject_MockObject
28+ */
29+ private $ sequenceMock ;
30+ /**
31+ * @var \Magento\Quote\Model\ResourceModel\Quote
32+ */
33+ private $ quote ;
34+
35+ /**
36+ * {@inheritdoc}
37+ */
38+ protected function setUp ()
39+ {
40+ $ context = $ this ->getMockBuilder (Context::class)
41+ ->disableOriginalConstructor ()
42+ ->getMock ();
43+ $ snapshot = $ this ->getMockBuilder (Snapshot::class)
44+ ->disableOriginalConstructor ()
45+ ->getMock ();
46+ $ relationComposite = $ this ->getMockBuilder (RelationComposite::class)
47+ ->disableOriginalConstructor ()
48+ ->getMock ();
49+ $ this ->quoteMock = $ this ->getMockBuilder (Quote::class)
50+ ->disableOriginalConstructor ()
51+ ->getMock ();
52+ $ this ->sequenceManagerMock = $ this ->getMockBuilder (Manager::class)
53+ ->disableOriginalConstructor ()
54+ ->getMock ();
55+ $ this ->sequenceMock = $ this ->getMockBuilder (SequenceInterface::class)
56+ ->disableOriginalConstructor ()
57+ ->getMock ();
58+ $ this ->quote = new \Magento \Quote \Model \ResourceModel \Quote (
59+ $ context ,
60+ $ snapshot ,
61+ $ relationComposite ,
62+ $ this ->sequenceManagerMock ,
63+ null
64+ );
65+ }
66+
67+ /**
68+ * @param $entityType
69+ * @param $storeId
70+ * @param $reservedOrderId
71+ * @dataProvider getReservedOrderIdDataProvider
72+ */
73+ public function testGetReservedOrderId ($ entityType , $ storeId , $ reservedOrderId )
74+ {
75+ $ this ->sequenceManagerMock ->expects ($ this ->once ())
76+ ->method ('getSequence ' )
77+ ->with ($ entityType , $ storeId )
78+ ->willReturn ($ this ->sequenceMock );
79+ $ this ->quoteMock ->expects ($ this ->once ())
80+ ->method ('getStoreId ' )
81+ ->willReturn ($ storeId );
82+ $ this ->sequenceMock ->expects ($ this ->once ())
83+ ->method ('getNextValue ' )
84+ ->willReturn ($ reservedOrderId );
85+ $ this ->assertEquals ($ reservedOrderId , $ this ->quote ->getReservedOrderId ($ this ->quoteMock ));
86+ }
87+
88+ /**
89+ * @return array
90+ */
91+ public function getReservedOrderIdDataProvider ()
92+ {
93+ return [
94+ [\Magento \Sales \Model \Order::ENTITY , 1 , '1000000001 ' ],
95+ [\Magento \Sales \Model \Order::ENTITY , 2 , '2000000001 ' ],
96+ [\Magento \Sales \Model \Order::ENTITY , 3 , '3000000001 ' ]
97+ ];
98+ }
99+ }
0 commit comments