6
6
7
7
namespace Magento \Quote \Test \Unit \Model \ResourceModel ;
8
8
9
+
10
+ use Magento \Framework \App \ResourceConnection ;
11
+ use Magento \Framework \DB \Adapter \Pdo \Mysql ;
12
+ use Magento \Framework \DB \Select ;
13
+ use Magento \Framework \DB \Sequence \SequenceInterface ;
14
+ use Magento \Framework \Model \ResourceModel \Db \Context ;
15
+ use Magento \Framework \Model \ResourceModel \Db \VersionControl \RelationComposite ;
16
+ use Magento \Framework \Model \ResourceModel \Db \VersionControl \Snapshot ;
17
+ use Magento \Framework \TestFramework \Unit \Helper \ObjectManager ;
18
+ use Magento \Quote \Model \Quote ;
19
+ use Magento \Quote \Model \ResourceModel \Quote as QuoteResource ;
20
+ use Magento \SalesSequence \Model \Manager ;
21
+
9
22
class QuoteTest extends \PHPUnit \Framework \TestCase
10
23
{
11
24
/**
12
- * @var \Magento\Quote\Model\ResourceModel\Quote
13
- */
14
- private $ model ;
15
-
16
- /**
17
- * @var \Magento\Framework\App\ResourceConnection
25
+ * @var ResourceConnection
18
26
*/
19
27
private $ resourceMock ;
20
28
21
29
/**
22
- * @var \Magento\Framework\DB\Adapter\Pdo\ Mysql
30
+ * @var Mysql
23
31
*/
24
32
private $ adapterMock ;
25
33
26
34
/**
27
- * @var \Magento\Framework\DB\ Select
35
+ * @var Select
28
36
*/
29
37
private $ selectMock ;
30
38
39
+ /**
40
+ * @var Quote|\PHPUnit_Framework_MockObject_MockObject
41
+ */
42
+ private $ quoteMock ;
43
+
44
+ /**
45
+ * @var Manager|\PHPUnit_Framework_MockObject_MockObject
46
+ */
47
+ private $ sequenceManagerMock ;
48
+
49
+ /**
50
+ * @var SequenceInterface|\PHPUnit_Framework_MockObject_MockObject
51
+ */
52
+ private $ sequenceMock ;
53
+
54
+ /**
55
+ * @var QuoteResource
56
+ */
57
+ private $ model ;
58
+
31
59
protected function setUp ()
32
60
{
33
- $ objectManagerHelper = new \ Magento \ Framework \ TestFramework \ Unit \ Helper \ ObjectManager ($ this );
34
- $ this ->selectMock = $ this ->getMockBuilder (\ Magento \ Framework \ DB \ Select::class)
61
+ $ objectManagerHelper = new ObjectManager ($ this );
62
+ $ this ->selectMock = $ this ->getMockBuilder (Select::class)
35
63
->disableOriginalConstructor ()
36
64
->getMock ();
37
65
$ this ->selectMock ->expects ($ this ->any ())->method ('from ' )->will ($ this ->returnSelf ());
38
66
$ this ->selectMock ->expects ($ this ->any ())->method ('where ' );
39
67
40
- $ this ->adapterMock = $ this ->getMockBuilder (\ Magento \ Framework \ DB \ Adapter \ Pdo \ Mysql::class)
68
+ $ this ->adapterMock = $ this ->getMockBuilder (Mysql::class)
41
69
->disableOriginalConstructor ()
42
70
->getMock ();
43
71
$ this ->adapterMock ->expects ($ this ->any ())->method ('select ' )->will ($ this ->returnValue ($ this ->selectMock ));
44
72
45
- $ this ->resourceMock = $ this ->getMockBuilder (\ Magento \ Framework \ App \ ResourceConnection::class)
73
+ $ this ->resourceMock = $ this ->getMockBuilder (ResourceConnection::class)
46
74
->disableOriginalConstructor ()
47
75
->getMock ();
48
76
$ this ->resourceMock ->expects (
@@ -53,10 +81,38 @@ protected function setUp()
53
81
$ this ->returnValue ($ this ->adapterMock )
54
82
);
55
83
56
- $ this ->model = $ objectManagerHelper ->getObject (
57
- \Magento \Quote \Model \ResourceModel \Quote::class,
58
- [
59
- 'resource ' => $ this ->resourceMock
84
+ $ context = $ this ->getMockBuilder (Context::class)
85
+ ->disableOriginalConstructor ()
86
+ ->getMock ();
87
+ $ context ->expects (
88
+ $ this ->once ()
89
+ )->method (
90
+ 'getResources '
91
+ )->will (
92
+ $ this ->returnValue ($ this ->resourceMock )
93
+ );
94
+
95
+ $ snapshot = $ this ->getMockBuilder (Snapshot::class)
96
+ ->disableOriginalConstructor ()
97
+ ->getMock ();
98
+ $ relationComposite = $ this ->getMockBuilder (RelationComposite::class)
99
+ ->disableOriginalConstructor ()
100
+ ->getMock ();
101
+ $ this ->quoteMock = $ this ->getMockBuilder (Quote::class)
102
+ ->disableOriginalConstructor ()
103
+ ->getMock ();
104
+ $ this ->sequenceManagerMock = $ this ->getMockBuilder (Manager::class)
105
+ ->disableOriginalConstructor ()
106
+ ->getMock ();
107
+ $ this ->sequenceMock = $ this ->getMockBuilder (SequenceInterface::class)
108
+ ->disableOriginalConstructor ()
109
+ ->getMock ();
110
+ $ this ->model = $ objectManagerHelper ->getObject (QuoteResource::class, [
111
+ 'context ' => $ context ,
112
+ 'entitySnapshot ' => $ snapshot ,
113
+ 'entityRelationComposite ' => $ relationComposite ,
114
+ 'sequenceManager ' => $ this ->sequenceManagerMock ,
115
+ 'connectionName ' => null ,
60
116
]
61
117
);
62
118
}
@@ -81,4 +137,39 @@ public function isOrderIncrementIdUsedDataProvider()
81
137
{
82
138
return [[100000001 ], ['10000000001 ' ], ['M10000000001 ' ]];
83
139
}
140
+
141
+ /**
142
+ * /**
143
+ * @param $entityType
144
+ * @param $storeId
145
+ * @param $reservedOrderId
146
+ * @dataProvider getReservedOrderIdDataProvider
147
+ */
148
+ public function testGetReservedOrderId ($ entityType , $ storeId , $ reservedOrderId )
149
+ {
150
+ $ this ->sequenceManagerMock ->expects ($ this ->once ())
151
+ ->method ('getSequence ' )
152
+ ->with ($ entityType , $ storeId )
153
+ ->willReturn ($ this ->sequenceMock );
154
+ $ this ->quoteMock ->expects ($ this ->once ())
155
+ ->method ('getStoreId ' )
156
+ ->willReturn ($ storeId );
157
+ $ this ->sequenceMock ->expects ($ this ->once ())
158
+ ->method ('getNextValue ' )
159
+ ->willReturn ($ reservedOrderId );
160
+
161
+ $ this ->assertEquals ($ reservedOrderId , $ this ->model ->getReservedOrderId ($ this ->quoteMock ));
162
+ }
163
+
164
+ /**
165
+ * @return array
166
+ */
167
+ public function getReservedOrderIdDataProvider (): array
168
+ {
169
+ return [
170
+ [\Magento \Sales \Model \Order::ENTITY , 1 , '1000000001 ' ],
171
+ [\Magento \Sales \Model \Order::ENTITY , 2 , '2000000001 ' ],
172
+ [\Magento \Sales \Model \Order::ENTITY , 3 , '3000000001 ' ]
173
+ ];
174
+ }
84
175
}
0 commit comments