@@ -139,6 +139,70 @@ public function testSetNewShippingAddressOnCartWithSimpleProduct()
139139 $ this ->assertNewShippingAddressFields ($ shippingAddressResponse );
140140 }
141141
142+ /**
143+ * @magentoApiDataFixture Magento/Customer/_files/customer.php
144+ * @magentoApiDataFixture Magento/GraphQl/Catalog/_files/simple_product.php
145+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/customer/create_empty_cart.php
146+ * @magentoApiDataFixture Magento/GraphQl/Quote/_files/add_simple_product.php
147+ */
148+ public function testSetShippingAddressOnCartWithRegionIdForSimpleProduct ()
149+ {
150+ $ maskedQuoteId = $ this ->getMaskedQuoteIdByReservedOrderId ->execute ('test_quote ' );
151+
152+ $ query = <<<QUERY
153+ mutation {
154+ setShippingAddressesOnCart(
155+ input: {
156+ cart_id: " $ maskedQuoteId"
157+ shipping_addresses: [
158+ {
159+ address: {
160+ firstname: "Francesco"
161+ lastname: "Alba"
162+ company: "Magento"
163+ street: ["Via Solferino", "45"]
164+ city: "Ceriano Laghetto"
165+ region: "1"
166+ postcode: "20816"
167+ country_code: "FR"
168+ telephone: "3273581975",
169+ save_in_address_book: false
170+ }
171+ }
172+ ]
173+ }
174+ ) {
175+ cart {
176+ shipping_addresses {
177+ firstname
178+ lastname
179+ company
180+ street
181+ city
182+ region {
183+ code
184+ label
185+ }
186+ postcode
187+ telephone
188+ country {
189+ label
190+ code
191+ }
192+ }
193+ }
194+ }
195+ }
196+ QUERY ;
197+ $ response = $ this ->graphQlMutation ($ query , [], '' , $ this ->getHeaderMap ());
198+
199+ self ::assertArrayHasKey ('cart ' , $ response ['setShippingAddressesOnCart ' ]);
200+ $ cartResponse = $ response ['setShippingAddressesOnCart ' ]['cart ' ];
201+ self ::assertArrayHasKey ('shipping_addresses ' , $ cartResponse );
202+ $ shippingAddressResponse = current ($ cartResponse ['shipping_addresses ' ]);
203+ $ this ->assertShippingAddressWithRegionIdFields ($ shippingAddressResponse );
204+ }
205+
142206 /**
143207 * @magentoApiDataFixture Magento/Customer/_files/customer.php
144208 * @magentoApiDataFixture Magento/Catalog/_files/product_virtual.php
@@ -1819,6 +1883,28 @@ private function assertNewShippingAddressFields(array $shippingAddressResponse):
18191883 $ this ->assertResponseFields ($ shippingAddressResponse , $ assertionMap );
18201884 }
18211885
1886+ /**
1887+ * Verify the all the whitelisted fields for a New Address with region id Object
1888+ *
1889+ * @param array $shippingAddressResponse
1890+ */
1891+ private function assertShippingAddressWithRegionIdFields (array $ shippingAddressResponse ): void
1892+ {
1893+ $ assertionMap = [
1894+ ['response_field ' => 'firstname ' , 'expected_value ' => 'Francesco ' ],
1895+ ['response_field ' => 'lastname ' , 'expected_value ' => 'Alba ' ],
1896+ ['response_field ' => 'company ' , 'expected_value ' => 'Magento ' ],
1897+ ['response_field ' => 'street ' , 'expected_value ' => [0 => 'Via Solferino ' , 1 => '45 ' ]],
1898+ ['response_field ' => 'city ' , 'expected_value ' => 'Ceriano Laghetto ' ],
1899+ ['response_field ' => 'postcode ' , 'expected_value ' => '20816 ' ],
1900+ ['response_field ' => 'telephone ' , 'expected_value ' => '3273581975 ' ],
1901+ ['response_field ' => 'region ' , 'expected_value ' => ['code ' => '1 ' , 'label ' => 'Ain ' ]],
1902+ ['response_field ' => 'country ' , 'expected_value ' => ['code ' => 'FR ' , 'label ' => 'FR ' ]]
1903+ ];
1904+
1905+ $ this ->assertResponseFields ($ shippingAddressResponse , $ assertionMap );
1906+ }
1907+
18221908 /**
18231909 * Verify the all the whitelisted fields for a Address Object
18241910 *
0 commit comments