Skip to content
This repository was archived by the owner on Dec 19, 2019. It is now read-only.

Commit eb82542

Browse files
committed
GraphQL-431: Covered SetBillingAddressToCart for guest user. Added couple new fixtures and rollbacks
1 parent 3469f4b commit eb82542

File tree

6 files changed

+147
-2
lines changed

6 files changed

+147
-2
lines changed

dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/SetBillingAddressOnCartTest.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -405,8 +405,6 @@ public function testSetBillingAddressIfCustomerIsNotOwnerOfAddress()
405405

406406
/**
407407
* @magentoApiDataFixture Magento/Checkout/_files/quote_with_multiple_addresses_saved.php
408-
* @magentoApiDataFixture Magento/Customer/_files/customer.php
409-
* @magentoApiDataFixture Magento/Customer/_files/customer_two_addresses.php
410408
* @throws \Exception
411409
*/
412410
public function testSetBillingAddressWithUseForShippingOptionForMultipleAddresses()

dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/SetBillingAddressOnCartTest.php

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,57 @@ public function testSetNewBillingAddressWithUseForShippingParameter()
171171
$this->assertNewAddressFields($shippingAddressResponse, 'SHIPPING');
172172
}
173173

174+
/**
175+
* @magentoApiDataFixture Magento/Checkout/_files/guest_quote_with_multiple_addresses_saved.php
176+
* @throws \Exception
177+
*/
178+
public function testSetBillingAddressWithUseForShippingOptionForMultipleAddresses()
179+
{
180+
$maskedQuoteId = $this->getMaskedQuoteIdByReversedQuoteId('test_order_with_simple_product_multiple_addresses');
181+
182+
$query = <<<QUERY
183+
mutation {
184+
setBillingAddressOnCart(
185+
input: {
186+
cart_id: "$maskedQuoteId"
187+
billing_address: {
188+
address: {
189+
firstname: "test firstname"
190+
lastname: "test lastname"
191+
company: "test company"
192+
street: ["test street 1", "test street 2"]
193+
city: "test city"
194+
region: "test region"
195+
postcode: "887766"
196+
country_code: "US"
197+
telephone: "88776655"
198+
save_in_address_book: false
199+
}
200+
use_for_shipping: true
201+
}
202+
}
203+
) {
204+
cart {
205+
billing_address {
206+
firstname
207+
lastname
208+
address_type
209+
}
210+
shipping_addresses {
211+
firstname
212+
lastname
213+
address_type
214+
}
215+
}
216+
}
217+
}
218+
QUERY;
219+
$this->expectExceptionMessage(
220+
"Using the \"use_for_shipping\" option with multishipping is not possible."
221+
);
222+
$this->graphQlQuery($query);
223+
}
224+
174225
/**
175226
* @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
176227
*/
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
require 'quote_with_simple_product_saved.php';
8+
9+
/** @var $objectManager \Magento\TestFramework\ObjectManager */
10+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
11+
12+
/** @var \Magento\Quote\Model\Quote\Address $quoteShippingAddress */
13+
$quoteShippingAddress = $objectManager->create(\Magento\Quote\Model\Quote\Address::class);
14+
$quoteShippingAddress->isObjectNew(true);
15+
$quoteShippingAddress->setData(
16+
[
17+
'attribute_set_id' => 2,
18+
'telephone' => 3468676,
19+
'postcode' => 75477,
20+
'country_id' => 'US',
21+
'city' => 'CityM',
22+
'company' => 'CompanyName',
23+
'street' => 'Green str, 67',
24+
'lastname' => 'Smith',
25+
'firstname' => 'John',
26+
'parent_id' => 1,
27+
'region_id' => 1,
28+
]
29+
);
30+
31+
/** @var \Magento\Quote\Model\Quote\Address $quoteSecondShippingAddressShippingAddress */
32+
$quoteSecondShippingAddress = $objectManager->create(\Magento\Quote\Model\Quote\Address::class);
33+
$quoteSecondShippingAddress->isObjectNew(true);
34+
$quoteSecondShippingAddress->setData(
35+
[
36+
'attribute_set_id' => 2,
37+
'telephone' => 3234676,
38+
'postcode' => 47676,
39+
'country_id' => 'US',
40+
'city' => 'CityX',
41+
'street' => ['Black str, 48'],
42+
'lastname' => 'Smith',
43+
'firstname' => 'Mia',
44+
'parent_id' => 1,
45+
'region_id' => 1,
46+
]
47+
);
48+
/** @var \Magento\Quote\Model\Quote $quote */
49+
$quote->setIsMultiShipping(true)
50+
->setReservedOrderId('test_order_with_simple_product_multiple_addresses')
51+
->setShippingAddress($quoteShippingAddress)
52+
->setShippingAddress($quoteSecondShippingAddress)
53+
->setCustomerEmail($quote->getCustomerEmail())
54+
->addProduct($product->load($product->getId()), 1);
55+
56+
$quote->collectTotals()->save();
57+
58+
/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
59+
$quoteIdMask->setQuoteId($quote->getId());
60+
$quoteIdMask->setDataChanges(true);
61+
$quoteIdMask->save();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
/** @var $objectManager \Magento\TestFramework\ObjectManager */
8+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
9+
$quote = $objectManager->create(\Magento\Quote\Model\Quote::class);
10+
$quote->load('test_order_with_simple_product_multiple_addresses', 'reserved_order_id')->delete();
11+
12+
/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
13+
$quoteIdMask = $objectManager->create(\Magento\Quote\Model\QuoteIdMask::class);
14+
$quoteIdMask->delete($quote->getId());

dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_multiple_addresses_saved.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
require 'quote_with_address_saved.php';
8+
require __DIR__ . '/../../Customer/_files/customer_two_addresses.php';
89

910
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
1011

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
8+
/** @var $objectManager \Magento\TestFramework\ObjectManager */
9+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
10+
$quote = $objectManager->create(\Magento\Quote\Model\Quote::class);
11+
$quote->load('test_order_1', 'reserved_order_id')->delete();
12+
13+
/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
14+
$quoteIdMask = $objectManager->create(\Magento\Quote\Model\QuoteIdMask::class);
15+
$quoteIdMask->delete($quote->getId());
16+
17+
require __DIR__ . '/../../Checkout/_files/quote_with_address_rollback.php';
18+
require __DIR__ . '/../../Customer/_files/customer_two_addresses_rollback.php';
19+
require __DIR__ . '/../../Customer/_files/customer_rollback.php';
20+
require __DIR__ . '/../../Catalog/_files/products_rollback.php';

0 commit comments

Comments
 (0)