@@ -56,31 +56,37 @@ class FakeStoreKitPlatform {
5656 queueIsActive = false ;
5757 }
5858
59- SKPaymentTransactionWrapper createPendingTransaction (String id) {
59+ SKPaymentTransactionWrapper createPendingTransaction (String id,
60+ {int quantity = 1 }) {
6061 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+ );
6769 }
6870
6971 SKPaymentTransactionWrapper createPurchasedTransaction (
70- String productId, String transactionId) {
72+ String productId, String transactionId,
73+ {int quantity = 1 }) {
7174 return SKPaymentTransactionWrapper (
72- payment: SKPaymentWrapper (productIdentifier: productId),
75+ payment:
76+ SKPaymentWrapper (productIdentifier: productId, quantity: quantity),
7377 transactionState: SKPaymentTransactionStateWrapper .purchased,
7478 transactionTimeStamp: 123123.121 ,
7579 transactionIdentifier: transactionId,
7680 error: null ,
7781 originalTransaction: null );
7882 }
7983
80- SKPaymentTransactionWrapper createFailedTransaction (String productId) {
84+ SKPaymentTransactionWrapper createFailedTransaction (String productId,
85+ {int quantity = 1 }) {
8186 return SKPaymentTransactionWrapper (
8287 transactionIdentifier: '' ,
83- payment: SKPaymentWrapper (productIdentifier: productId),
88+ payment:
89+ SKPaymentWrapper (productIdentifier: productId, quantity: quantity),
8490 transactionState: SKPaymentTransactionStateWrapper .failed,
8591 transactionTimeStamp: 123123.121 ,
8692 error: const SKError (
@@ -91,10 +97,12 @@ class FakeStoreKitPlatform {
9197 }
9298
9399 SKPaymentTransactionWrapper createCanceledTransaction (
94- String productId, int errorCode) {
100+ String productId, int errorCode,
101+ {int quantity = 1 }) {
95102 return SKPaymentTransactionWrapper (
96103 transactionIdentifier: '' ,
97- payment: SKPaymentWrapper (productIdentifier: productId),
104+ payment:
105+ SKPaymentWrapper (productIdentifier: productId, quantity: quantity),
98106 transactionState: SKPaymentTransactionStateWrapper .failed,
99107 transactionTimeStamp: 123123.121 ,
100108 error: SKError (
@@ -105,9 +113,11 @@ class FakeStoreKitPlatform {
105113 }
106114
107115 SKPaymentTransactionWrapper createRestoredTransaction (
108- String productId, String transactionId) {
116+ String productId, String transactionId,
117+ {int quantity = 1 }) {
109118 return SKPaymentTransactionWrapper (
110- payment: SKPaymentWrapper (productIdentifier: productId),
119+ payment:
120+ SKPaymentWrapper (productIdentifier: productId, quantity: quantity),
111121 transactionState: SKPaymentTransactionStateWrapper .restored,
112122 transactionTimeStamp: 123123.121 ,
113123 transactionIdentifier: transactionId,
@@ -166,33 +176,38 @@ class FakeStoreKitPlatform {
166176 return Future <void >.sync (() {});
167177 case '-[InAppPurchasePlugin addPayment:result:]' :
168178 final String id = call.arguments['productIdentifier' ] as String ;
179+ final int quantity = call.arguments['quantity' ] as int ;
169180 final SKPaymentTransactionWrapper transaction =
170- createPendingTransaction (id);
181+ createPendingTransaction (id, quantity: quantity);
182+ transactions.add (transaction);
171183 InAppPurchaseStoreKitPlatform .observer.updatedTransactions (
172184 transactions: < SKPaymentTransactionWrapper > [transaction]);
173185 sleep (const Duration (milliseconds: 30 ));
174186 if (testTransactionFail) {
175187 final SKPaymentTransactionWrapper transactionFailed =
176- createFailedTransaction (id);
188+ createFailedTransaction (id, quantity : quantity );
177189 InAppPurchaseStoreKitPlatform .observer.updatedTransactions (
178190 transactions: < SKPaymentTransactionWrapper > [transactionFailed]);
179191 } else if (testTransactionCancel > 0 ) {
180192 final SKPaymentTransactionWrapper transactionCanceled =
181- createCanceledTransaction (id, testTransactionCancel);
193+ createCanceledTransaction (id, testTransactionCancel,
194+ quantity: quantity);
182195 InAppPurchaseStoreKitPlatform .observer.updatedTransactions (
183196 transactions: < SKPaymentTransactionWrapper > [transactionCanceled]);
184197 } else {
185198 final SKPaymentTransactionWrapper transactionFinished =
186199 createPurchasedTransaction (
187- id, transaction.transactionIdentifier ?? '' );
200+ id, transaction.transactionIdentifier ?? '' ,
201+ quantity: quantity);
188202 InAppPurchaseStoreKitPlatform .observer.updatedTransactions (
189203 transactions: < SKPaymentTransactionWrapper > [transactionFinished]);
190204 }
191205 break ;
192206 case '-[InAppPurchasePlugin finishTransaction:result:]' :
193207 finishedTransactions.add (createPurchasedTransaction (
194208 call.arguments['productIdentifier' ] as String ,
195- call.arguments['transactionIdentifier' ] as String ));
209+ call.arguments['transactionIdentifier' ] as String ,
210+ quantity: transactions.first.payment.quantity));
196211 break ;
197212 case '-[SKPaymentQueue startObservingTransactionQueue]' :
198213 queueIsActive = true ;
0 commit comments