@@ -56,31 +56,37 @@ class FakeStoreKitPlatform {
56
56
queueIsActive = false ;
57
57
}
58
58
59
- SKPaymentTransactionWrapper createPendingTransaction (String id) {
59
+ SKPaymentTransactionWrapper createPendingTransaction (String id,
60
+ {int quantity = 1 }) {
60
61
return SKPaymentTransactionWrapper (
61
- transactionIdentifier: '' ,
62
- payment: SKPaymentWrapper (productIdentifier: id),
63
- transactionState: SKPaymentTransactionStateWrapper .purchasing,
64
- transactionTimeStamp: 123123.121 ,
65
- error: null ,
66
- originalTransaction: null );
62
+ transactionIdentifier: '' ,
63
+ payment: SKPaymentWrapper (productIdentifier: id, quantity: quantity),
64
+ transactionState: SKPaymentTransactionStateWrapper .purchasing,
65
+ transactionTimeStamp: 123123.121 ,
66
+ error: null ,
67
+ originalTransaction: null ,
68
+ );
67
69
}
68
70
69
71
SKPaymentTransactionWrapper createPurchasedTransaction (
70
- String productId, String transactionId) {
72
+ String productId, String transactionId,
73
+ {int quantity = 1 }) {
71
74
return SKPaymentTransactionWrapper (
72
- payment: SKPaymentWrapper (productIdentifier: productId),
75
+ payment:
76
+ SKPaymentWrapper (productIdentifier: productId, quantity: quantity),
73
77
transactionState: SKPaymentTransactionStateWrapper .purchased,
74
78
transactionTimeStamp: 123123.121 ,
75
79
transactionIdentifier: transactionId,
76
80
error: null ,
77
81
originalTransaction: null );
78
82
}
79
83
80
- SKPaymentTransactionWrapper createFailedTransaction (String productId) {
84
+ SKPaymentTransactionWrapper createFailedTransaction (String productId,
85
+ {int quantity = 1 }) {
81
86
return SKPaymentTransactionWrapper (
82
87
transactionIdentifier: '' ,
83
- payment: SKPaymentWrapper (productIdentifier: productId),
88
+ payment:
89
+ SKPaymentWrapper (productIdentifier: productId, quantity: quantity),
84
90
transactionState: SKPaymentTransactionStateWrapper .failed,
85
91
transactionTimeStamp: 123123.121 ,
86
92
error: const SKError (
@@ -91,10 +97,12 @@ class FakeStoreKitPlatform {
91
97
}
92
98
93
99
SKPaymentTransactionWrapper createCanceledTransaction (
94
- String productId, int errorCode) {
100
+ String productId, int errorCode,
101
+ {int quantity = 1 }) {
95
102
return SKPaymentTransactionWrapper (
96
103
transactionIdentifier: '' ,
97
- payment: SKPaymentWrapper (productIdentifier: productId),
104
+ payment:
105
+ SKPaymentWrapper (productIdentifier: productId, quantity: quantity),
98
106
transactionState: SKPaymentTransactionStateWrapper .failed,
99
107
transactionTimeStamp: 123123.121 ,
100
108
error: SKError (
@@ -105,9 +113,11 @@ class FakeStoreKitPlatform {
105
113
}
106
114
107
115
SKPaymentTransactionWrapper createRestoredTransaction (
108
- String productId, String transactionId) {
116
+ String productId, String transactionId,
117
+ {int quantity = 1 }) {
109
118
return SKPaymentTransactionWrapper (
110
- payment: SKPaymentWrapper (productIdentifier: productId),
119
+ payment:
120
+ SKPaymentWrapper (productIdentifier: productId, quantity: quantity),
111
121
transactionState: SKPaymentTransactionStateWrapper .restored,
112
122
transactionTimeStamp: 123123.121 ,
113
123
transactionIdentifier: transactionId,
@@ -166,33 +176,38 @@ class FakeStoreKitPlatform {
166
176
return Future <void >.sync (() {});
167
177
case '-[InAppPurchasePlugin addPayment:result:]' :
168
178
final String id = call.arguments['productIdentifier' ] as String ;
179
+ final int quantity = call.arguments['quantity' ] as int ;
169
180
final SKPaymentTransactionWrapper transaction =
170
- createPendingTransaction (id);
181
+ createPendingTransaction (id, quantity: quantity);
182
+ transactions.add (transaction);
171
183
InAppPurchaseStoreKitPlatform .observer.updatedTransactions (
172
184
transactions: < SKPaymentTransactionWrapper > [transaction]);
173
185
sleep (const Duration (milliseconds: 30 ));
174
186
if (testTransactionFail) {
175
187
final SKPaymentTransactionWrapper transactionFailed =
176
- createFailedTransaction (id);
188
+ createFailedTransaction (id, quantity : quantity );
177
189
InAppPurchaseStoreKitPlatform .observer.updatedTransactions (
178
190
transactions: < SKPaymentTransactionWrapper > [transactionFailed]);
179
191
} else if (testTransactionCancel > 0 ) {
180
192
final SKPaymentTransactionWrapper transactionCanceled =
181
- createCanceledTransaction (id, testTransactionCancel);
193
+ createCanceledTransaction (id, testTransactionCancel,
194
+ quantity: quantity);
182
195
InAppPurchaseStoreKitPlatform .observer.updatedTransactions (
183
196
transactions: < SKPaymentTransactionWrapper > [transactionCanceled]);
184
197
} else {
185
198
final SKPaymentTransactionWrapper transactionFinished =
186
199
createPurchasedTransaction (
187
- id, transaction.transactionIdentifier ?? '' );
200
+ id, transaction.transactionIdentifier ?? '' ,
201
+ quantity: quantity);
188
202
InAppPurchaseStoreKitPlatform .observer.updatedTransactions (
189
203
transactions: < SKPaymentTransactionWrapper > [transactionFinished]);
190
204
}
191
205
break ;
192
206
case '-[InAppPurchasePlugin finishTransaction:result:]' :
193
207
finishedTransactions.add (createPurchasedTransaction (
194
208
call.arguments['productIdentifier' ] as String ,
195
- call.arguments['transactionIdentifier' ] as String ));
209
+ call.arguments['transactionIdentifier' ] as String ,
210
+ quantity: transactions.first.payment.quantity));
196
211
break ;
197
212
case '-[SKPaymentQueue startObservingTransactionQueue]' :
198
213
queueIsActive = true ;
0 commit comments