@@ -171,4 +171,71 @@ protected function getQuoteItemTotalsData(\Magento\Quote\Model\Quote $quote)
171
171
ItemTotals::KEY_BASE_ROW_TOTAL_INCL_TAX => $ item ->getBaseRowTotalInclTax (),
172
172
];
173
173
}
174
+
175
+ /**
176
+ * @magentoApiDataFixture Magento/Checkout/_files/quote_with_shipping_method.php
177
+ */
178
+ public function testGetMyTotals ()
179
+ {
180
+ // get customer ID token
181
+ /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
182
+ $ customerTokenService = $ this ->objectManager ->create (
183
+ 'Magento\Integration\Service\V1\CustomerTokenServiceInterface '
184
+ );
185
+ $ token = $ customerTokenService ->createCustomerAccessToken ('customer@example.com ' , 'password ' );
186
+
187
+ /** @var \Magento\Quote\Model\Quote $quote */
188
+ $ quote = $ this ->objectManager ->create ('Magento\Quote\Model\Quote ' );
189
+ $ quote ->load ('test_order_1 ' , 'reserved_order_id ' );
190
+ $ cartId = $ quote ->getId ();
191
+
192
+ $ serviceInfo = [
193
+ 'soap ' => [
194
+ 'service ' => 'quoteCartTotalRepositoryV1 ' ,
195
+ 'serviceVersion ' => 'V1 ' ,
196
+ 'operation ' => 'quoteCartTotalRepositoryV1get ' ,
197
+ 'token ' => $ token
198
+ ],
199
+ 'rest ' => [
200
+ 'resourcePath ' => '/V1/carts/mine/totals ' ,
201
+ 'httpMethod ' => \Magento \Framework \Webapi \Rest \Request::HTTP_METHOD_GET ,
202
+ 'token ' => $ token
203
+ ],
204
+ ];
205
+
206
+ /** @var \Magento\Quote\Model\Quote\Address $shippingAddress */
207
+ $ shippingAddress = $ quote ->getShippingAddress ();
208
+
209
+ $ data = [
210
+ Totals::KEY_BASE_GRAND_TOTAL => $ quote ->getBaseGrandTotal (),
211
+ Totals::KEY_GRAND_TOTAL => $ quote ->getGrandTotal (),
212
+ Totals::KEY_BASE_SUBTOTAL => $ quote ->getBaseSubtotal (),
213
+ Totals::KEY_SUBTOTAL => $ quote ->getSubtotal (),
214
+ Totals::KEY_BASE_SUBTOTAL_WITH_DISCOUNT => $ quote ->getBaseSubtotalWithDiscount (),
215
+ Totals::KEY_SUBTOTAL_WITH_DISCOUNT => $ quote ->getSubtotalWithDiscount (),
216
+ Totals::KEY_DISCOUNT_AMOUNT => $ shippingAddress ->getDiscountAmount (),
217
+ Totals::KEY_BASE_DISCOUNT_AMOUNT => $ shippingAddress ->getBaseDiscountAmount (),
218
+ Totals::KEY_SHIPPING_AMOUNT => $ shippingAddress ->getShippingAmount (),
219
+ Totals::KEY_BASE_SHIPPING_AMOUNT => $ shippingAddress ->getBaseShippingAmount (),
220
+ Totals::KEY_SHIPPING_DISCOUNT_AMOUNT => $ shippingAddress ->getShippingDiscountAmount (),
221
+ Totals::KEY_BASE_SHIPPING_DISCOUNT_AMOUNT => $ shippingAddress ->getBaseShippingDiscountAmount (),
222
+ Totals::KEY_TAX_AMOUNT => $ shippingAddress ->getTaxAmount (),
223
+ Totals::KEY_BASE_TAX_AMOUNT => $ shippingAddress ->getBaseTaxAmount (),
224
+ Totals::KEY_SHIPPING_TAX_AMOUNT => $ shippingAddress ->getShippingTaxAmount (),
225
+ Totals::KEY_BASE_SHIPPING_TAX_AMOUNT => $ shippingAddress ->getBaseShippingTaxAmount (),
226
+ Totals::KEY_SUBTOTAL_INCL_TAX => $ shippingAddress ->getSubtotalInclTax (),
227
+ Totals::KEY_BASE_SUBTOTAL_INCL_TAX => $ shippingAddress ->getBaseSubtotalTotalInclTax (),
228
+ Totals::KEY_SHIPPING_INCL_TAX => $ shippingAddress ->getShippingInclTax (),
229
+ Totals::KEY_BASE_SHIPPING_INCL_TAX => $ shippingAddress ->getBaseShippingInclTax (),
230
+ Totals::KEY_BASE_CURRENCY_CODE => $ quote ->getBaseCurrencyCode (),
231
+ Totals::KEY_QUOTE_CURRENCY_CODE => $ quote ->getQuoteCurrencyCode (),
232
+ Totals::KEY_ITEMS => [$ this ->getQuoteItemTotalsData ($ quote )],
233
+ ];
234
+
235
+ $ requestData = ['cartId ' => $ cartId ];
236
+
237
+ $ data = $ this ->formatTotalsData ($ data );
238
+
239
+ $ this ->assertEquals ($ data , $ this ->_webApiCall ($ serviceInfo , $ requestData ));
240
+ }
174
241
}
0 commit comments