From 66290e6fc0c3c9308c964f689ee590091a2ff988 Mon Sep 17 00:00:00 2001 From: Vitaliy Boyko Date: Sat, 31 Aug 2019 15:01:15 +0300 Subject: [PATCH 01/10] graphQl-864: Prevent to return a shipping address until it be set on a cart --- .../Model/Resolver/ShippingAddresses.php | 4 ++++ .../Customer/GetSpecifiedShippingAddressTest.php | 16 ++++++++++++++++ .../Guest/GetSpecifiedShippingAddressTest.php | 15 +++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php b/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php index eb3b0966740e..eebe2a66e92f 100644 --- a/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php +++ b/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php @@ -44,6 +44,10 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value $cart = $value['model']; $addressesData = []; + if (!$cart->getExtensionAttributes()->getShippingAssignments()) { + return $addressesData; + } + $shippingAddresses = $cart->getAllShippingAddresses(); if (count($shippingAddresses)) { diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSpecifiedShippingAddressTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSpecifiedShippingAddressTest.php index de3c384e6578..3b4e5edb917c 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSpecifiedShippingAddressTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSpecifiedShippingAddressTest.php @@ -77,6 +77,22 @@ public function testGetSpecifiedShippingAddress() self::assertEquals($expectedShippingAddressData, current($response['cart']['shipping_addresses'])); } + /** + * @magentoApiDataFixture Magento/Customer/_files/customer.php + * @magentoApiDataFixture Magento/GraphQl/Quote/_files/customer/create_empty_cart.php + */ + public function testShippingAddressOnCreatedEmptyCart() + { + $maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_quote'); + $query = $this->getQuery($maskedQuoteId); + + $response = $this->graphQlQuery($query, [], '', $this->getHeaderMap()); + self::assertArrayHasKey('cart', $response); + self::assertArrayHasKey('shipping_addresses', $response['cart']); + + self::assertCount(0, $response['cart']['shipping_addresses']); + } + /** * @magentoApiDataFixture Magento/Customer/_files/customer.php * @magentoApiDataFixture Magento/GraphQl/Catalog/_files/simple_product.php diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/GetSpecifiedShippingAddressTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/GetSpecifiedShippingAddressTest.php index f71915bab650..0809f9b13660 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/GetSpecifiedShippingAddressTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/GetSpecifiedShippingAddressTest.php @@ -68,6 +68,21 @@ public function testGetSpecifiedShippingAddress() self::assertEquals($expectedShippingAddressData, current($response['cart']['shipping_addresses'])); } + /** + * @magentoApiDataFixture Magento/GraphQl/Quote/_files/guest/create_empty_cart.php + */ + public function testShippingAddressOnCreatedEmptyCart() + { + $maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_quote'); + $query = $this->getQuery($maskedQuoteId); + + $response = $this->graphQlQuery($query); + self::assertArrayHasKey('cart', $response); + self::assertArrayHasKey('shipping_addresses', $response['cart']); + + self::assertCount(0, $response['cart']['shipping_addresses']); + } + /** * @magentoApiDataFixture Magento/GraphQl/Catalog/_files/simple_product.php * @magentoApiDataFixture Magento/GraphQl/Quote/_files/guest/create_empty_cart.php From 5a45cce48135291dcbf3bb7cb0c8201eecb12cb3 Mon Sep 17 00:00:00 2001 From: Cristian Partica Date: Thu, 5 Sep 2019 12:01:40 -0500 Subject: [PATCH 02/10] MC-19746: The shipping address contains `null` values when there's no shipping address set on a cart - return null instead of fields when there's no selected method --- .../Resolver/ShippingAddress/SelectedShippingMethod.php | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddress/SelectedShippingMethod.php b/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddress/SelectedShippingMethod.php index f2dacf6d007f..5d2c4b81cf4a 100644 --- a/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddress/SelectedShippingMethod.php +++ b/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddress/SelectedShippingMethod.php @@ -64,14 +64,7 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value ], ]; } else { - $data = [ - 'carrier_code' => null, - 'method_code' => null, - 'carrier_title' => $carrierTitle, - 'method_title' => $methodTitle, - 'amount' => null, - 'base_amount' => null, - ]; + $data = null; } return $data; } From 2667d9387c1291c0bb84751ea2566023e04d1734 Mon Sep 17 00:00:00 2001 From: Cristian Partica Date: Thu, 5 Sep 2019 19:57:34 -0500 Subject: [PATCH 03/10] MC-19746: The shipping address contains `null` values when there's no shipping address set on a cart - remove condition because it not the correct condition --- .../QuoteGraphQl/Model/Resolver/ShippingAddresses.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php b/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php index eebe2a66e92f..76ffb99aeaab 100644 --- a/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php +++ b/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php @@ -43,11 +43,6 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value /** @var Quote $cart */ $cart = $value['model']; - $addressesData = []; - if (!$cart->getExtensionAttributes()->getShippingAssignments()) { - return $addressesData; - } - $shippingAddresses = $cart->getAllShippingAddresses(); if (count($shippingAddresses)) { From a8cd0327b381bbf10e4fe03ed44cc796a4ffec69 Mon Sep 17 00:00:00 2001 From: Cristian Partica Date: Thu, 5 Sep 2019 19:58:31 -0500 Subject: [PATCH 04/10] MC-19746: The shipping address contains `null` values when there's no shipping address set on a cart - add validator to check if address was set --- .../Model/Resolver/ShippingAddresses.php | 46 +++++++++++++++++-- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php b/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php index 76ffb99aeaab..4c299402780d 100644 --- a/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php +++ b/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php @@ -13,6 +13,8 @@ use Magento\Framework\GraphQl\Schema\Type\ResolveInfo; use Magento\Quote\Model\Quote; use Magento\QuoteGraphQl\Model\Cart\ExtractQuoteAddressData; +use Magento\Framework\GraphQl\Schema\Type\TypeRegistry; +use Magento\Framework\App\ObjectManager; /** * @inheritdoc @@ -24,12 +26,21 @@ class ShippingAddresses implements ResolverInterface */ private $extractQuoteAddressData; + /** + * @var TypeRegistry + */ + private $typeRegistry; + /** * @param ExtractQuoteAddressData $extractQuoteAddressData + * @param TypeRegistry|null $typeRegistry */ - public function __construct(ExtractQuoteAddressData $extractQuoteAddressData) - { + public function __construct( + ExtractQuoteAddressData $extractQuoteAddressData, + TypeRegistry $typeRegistry = null + ) { $this->extractQuoteAddressData = $extractQuoteAddressData; + $this->typeRegistry = $typeRegistry ?: ObjectManager::getInstance()->get(TypeRegistry::class); } /** @@ -47,9 +58,38 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value if (count($shippingAddresses)) { foreach ($shippingAddresses as $shippingAddress) { - $addressesData[] = $this->extractQuoteAddressData->execute($shippingAddress); + $address = $this->extractQuoteAddressData->execute($shippingAddress); + + if ($this->validateAddressFromSchema($address)) { + $addressesData[] = $address; + } } } return $addressesData; } + + /** + * Validate data from address against mandatory fields from graphql schema for address + * + * @param array $address + * @return bool + */ + private function validateAddressFromSchema(array $address) : bool + { + /** @var \Magento\Framework\GraphQL\Schema\Type\Input\InputObjectType $cartAddressInput */ + $cartAddressInput = $this->typeRegistry->get('CartAddressInput'); + $fields = $cartAddressInput->getFields(); + + foreach ($fields as $field) { + if ($field->getType() instanceof \Magento\Framework\GraphQL\Schema\Type\NonNull) { + // an array key has to exist but it's value should not be null + if (array_key_exists($field->name, $address) + && !is_array($address[$field->name]) + && !isset($address[$field->name])) { + return false; + } + } + } + return true; + } } From 3852a7e7b2e52f13b764c99bf566764b09c21204 Mon Sep 17 00:00:00 2001 From: Cristian Partica Date: Thu, 5 Sep 2019 20:01:47 -0500 Subject: [PATCH 05/10] MC-19746: The shipping address contains `null` values when there's no shipping address set on a cart - fix variable initialization --- .../Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php b/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php index 4c299402780d..5968576e3a8d 100644 --- a/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php +++ b/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php @@ -56,7 +56,8 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value $shippingAddresses = $cart->getAllShippingAddresses(); - if (count($shippingAddresses)) { + $addressesData = []; + if (!empty($shippingAddresses)) { foreach ($shippingAddresses as $shippingAddress) { $address = $this->extractQuoteAddressData->execute($shippingAddress); From 997e676a00fb1a4713ee2a2d587a2875633fda61 Mon Sep 17 00:00:00 2001 From: Cristian Partica Date: Thu, 5 Sep 2019 21:12:04 -0500 Subject: [PATCH 06/10] MC-19746: The shipping address contains `null` values when there's no shipping address set on a cart - fix tests --- .../GetSpecifiedShippingAddressTest.php | 39 +------------------ .../Guest/GetSpecifiedShippingAddressTest.php | 37 +----------------- 2 files changed, 2 insertions(+), 74 deletions(-) diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSpecifiedShippingAddressTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSpecifiedShippingAddressTest.php index 3b4e5edb917c..d843748263ce 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSpecifiedShippingAddressTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSpecifiedShippingAddressTest.php @@ -77,22 +77,6 @@ public function testGetSpecifiedShippingAddress() self::assertEquals($expectedShippingAddressData, current($response['cart']['shipping_addresses'])); } - /** - * @magentoApiDataFixture Magento/Customer/_files/customer.php - * @magentoApiDataFixture Magento/GraphQl/Quote/_files/customer/create_empty_cart.php - */ - public function testShippingAddressOnCreatedEmptyCart() - { - $maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_quote'); - $query = $this->getQuery($maskedQuoteId); - - $response = $this->graphQlQuery($query, [], '', $this->getHeaderMap()); - self::assertArrayHasKey('cart', $response); - self::assertArrayHasKey('shipping_addresses', $response['cart']); - - self::assertCount(0, $response['cart']['shipping_addresses']); - } - /** * @magentoApiDataFixture Magento/Customer/_files/customer.php * @magentoApiDataFixture Magento/GraphQl/Catalog/_files/simple_product.php @@ -108,28 +92,7 @@ public function testGetSpecifiedShippingAddressIfShippingAddressIsNotSet() self::assertArrayHasKey('cart', $response); self::assertArrayHasKey('shipping_addresses', $response['cart']); - $expectedShippingAddressData = [ - 'firstname' => null, - 'lastname' => null, - 'company' => null, - 'street' => [ - '' - ], - 'city' => null, - 'region' => [ - 'code' => null, - 'label' => null, - ], - 'postcode' => null, - 'country' => [ - 'code' => null, - 'label' => null, - ], - 'telephone' => null, - '__typename' => 'ShippingCartAddress', - 'customer_notes' => null, - ]; - self::assertEquals($expectedShippingAddressData, current($response['cart']['shipping_addresses'])); + self::assertEquals(0, $response['cart']['shipping_addresses']); } /** diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/GetSpecifiedShippingAddressTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/GetSpecifiedShippingAddressTest.php index 0809f9b13660..b5fa0d8f12df 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/GetSpecifiedShippingAddressTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/GetSpecifiedShippingAddressTest.php @@ -68,21 +68,6 @@ public function testGetSpecifiedShippingAddress() self::assertEquals($expectedShippingAddressData, current($response['cart']['shipping_addresses'])); } - /** - * @magentoApiDataFixture Magento/GraphQl/Quote/_files/guest/create_empty_cart.php - */ - public function testShippingAddressOnCreatedEmptyCart() - { - $maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_quote'); - $query = $this->getQuery($maskedQuoteId); - - $response = $this->graphQlQuery($query); - self::assertArrayHasKey('cart', $response); - self::assertArrayHasKey('shipping_addresses', $response['cart']); - - self::assertCount(0, $response['cart']['shipping_addresses']); - } - /** * @magentoApiDataFixture Magento/GraphQl/Catalog/_files/simple_product.php * @magentoApiDataFixture Magento/GraphQl/Quote/_files/guest/create_empty_cart.php @@ -97,27 +82,7 @@ public function testGetSpecifiedShippingAddressIfShippingAddressIsNotSet() self::assertArrayHasKey('cart', $response); self::assertArrayHasKey('shipping_addresses', $response['cart']); - $expectedShippingAddressData = [ - 'firstname' => null, - 'lastname' => null, - 'company' => null, - 'street' => [ - '' - ], - 'city' => null, - 'region' => [ - 'code' => null, - 'label' => null, - ], - 'postcode' => null, - 'country' => [ - 'code' => null, - 'label' => null, - ], - 'telephone' => null, - '__typename' => 'ShippingCartAddress', - ]; - self::assertEquals($expectedShippingAddressData, current($response['cart']['shipping_addresses'])); + self::assertEquals([], $response['cart']['shipping_addresses']); } /** From 4dad2e5b010b26308cce4ea0c4465a3e50d330d7 Mon Sep 17 00:00:00 2001 From: Cristian Partica Date: Fri, 6 Sep 2019 09:33:19 -0500 Subject: [PATCH 07/10] MC-19746: The shipping address contains `null` values when there's no shipping address set on a cart - fix changes to also apply to 2.3.2 --- .../Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php b/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php index 5968576e3a8d..ae97f7efda45 100644 --- a/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php +++ b/app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddresses.php @@ -54,10 +54,10 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value /** @var Quote $cart */ $cart = $value['model']; + $addressesData = []; $shippingAddresses = $cart->getAllShippingAddresses(); - $addressesData = []; - if (!empty($shippingAddresses)) { + if (count($shippingAddresses)) { foreach ($shippingAddresses as $shippingAddress) { $address = $this->extractQuoteAddressData->execute($shippingAddress); From 2b5a39b6088e34a11ac14e0f19f3b8bcdd4ca866 Mon Sep 17 00:00:00 2001 From: Cristian Partica Date: Fri, 6 Sep 2019 13:39:23 -0500 Subject: [PATCH 08/10] MC-19746: The shipping address contains `null` values when there's no shipping address set on a cart - fix test --- .../GraphQl/Quote/Customer/GetSpecifiedShippingAddressTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSpecifiedShippingAddressTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSpecifiedShippingAddressTest.php index d843748263ce..2023603a21ee 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSpecifiedShippingAddressTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSpecifiedShippingAddressTest.php @@ -92,7 +92,7 @@ public function testGetSpecifiedShippingAddressIfShippingAddressIsNotSet() self::assertArrayHasKey('cart', $response); self::assertArrayHasKey('shipping_addresses', $response['cart']); - self::assertEquals(0, $response['cart']['shipping_addresses']); + self::assertEquals([], $response['cart']['shipping_addresses']); } /** From 7852b00a993ff176aedaba68f96646dedd5c583d Mon Sep 17 00:00:00 2001 From: Cristian Partica Date: Fri, 6 Sep 2019 14:00:21 -0500 Subject: [PATCH 09/10] MC-19746: The shipping address contains `null` values when there's no shipping address set on a cart - fix test --- .../GetSelectedShippingMethodTest.php | 21 ++----------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSelectedShippingMethodTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSelectedShippingMethodTest.php index 9bb36bf8f092..c8a80c493e28 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSelectedShippingMethodTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSelectedShippingMethodTest.php @@ -108,18 +108,7 @@ public function testGetSelectedShippingMethodBeforeSet() $shippingAddress = current($response['cart']['shipping_addresses']); self::assertArrayHasKey('selected_shipping_method', $shippingAddress); - - self::assertArrayHasKey('carrier_code', $shippingAddress['selected_shipping_method']); - self::assertNull($shippingAddress['selected_shipping_method']['carrier_code']); - - self::assertArrayHasKey('method_code', $shippingAddress['selected_shipping_method']); - self::assertNull($shippingAddress['selected_shipping_method']['method_code']); - - self::assertArrayHasKey('carrier_title', $shippingAddress['selected_shipping_method']); - self::assertNull($shippingAddress['selected_shipping_method']['carrier_title']); - - self::assertArrayHasKey('method_title', $shippingAddress['selected_shipping_method']); - self::assertNull($shippingAddress['selected_shipping_method']['method_title']); + self::assertNull($shippingAddress['selected_shipping_method']); } /** @@ -182,13 +171,7 @@ public function testGetGetSelectedShippingMethodIfShippingMethodIsNotSet() $shippingAddress = current($response['cart']['shipping_addresses']); self::assertArrayHasKey('selected_shipping_method', $shippingAddress); - - self::assertNull($shippingAddress['selected_shipping_method']['carrier_code']); - self::assertNull($shippingAddress['selected_shipping_method']['method_code']); - self::assertNull($shippingAddress['selected_shipping_method']['carrier_title']); - self::assertNull($shippingAddress['selected_shipping_method']['method_title']); - self::assertNull($shippingAddress['selected_shipping_method']['amount']); - self::assertNull($shippingAddress['selected_shipping_method']['base_amount']); + self::assertNull('selected_shipping_method', $shippingAddress['selected_shipping_method']); } /** From af414b085fa7c13267169aaafc79675448872c88 Mon Sep 17 00:00:00 2001 From: Cristian Partica Date: Fri, 6 Sep 2019 14:57:54 -0500 Subject: [PATCH 10/10] MC-19746: The shipping address contains `null` values when there's no shipping address set on a cart - fix test --- .../Customer/GetSelectedShippingMethodTest.php | 2 +- .../Quote/Guest/GetSelectedShippingMethodTest.php | 13 +------------ 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSelectedShippingMethodTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSelectedShippingMethodTest.php index c8a80c493e28..90107ad2220d 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSelectedShippingMethodTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSelectedShippingMethodTest.php @@ -171,7 +171,7 @@ public function testGetGetSelectedShippingMethodIfShippingMethodIsNotSet() $shippingAddress = current($response['cart']['shipping_addresses']); self::assertArrayHasKey('selected_shipping_method', $shippingAddress); - self::assertNull('selected_shipping_method', $shippingAddress['selected_shipping_method']); + self::assertNull($shippingAddress['selected_shipping_method']); } /** diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/GetSelectedShippingMethodTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/GetSelectedShippingMethodTest.php index 5d1033b39819..fb694508a643 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/GetSelectedShippingMethodTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/GetSelectedShippingMethodTest.php @@ -99,18 +99,7 @@ public function testGetSelectedShippingMethodBeforeSet() $shippingAddress = current($response['cart']['shipping_addresses']); self::assertArrayHasKey('selected_shipping_method', $shippingAddress); - - self::assertArrayHasKey('carrier_code', $shippingAddress['selected_shipping_method']); - self::assertNull($shippingAddress['selected_shipping_method']['carrier_code']); - - self::assertArrayHasKey('method_code', $shippingAddress['selected_shipping_method']); - self::assertNull($shippingAddress['selected_shipping_method']['method_code']); - - self::assertArrayHasKey('carrier_title', $shippingAddress['selected_shipping_method']); - self::assertNull($shippingAddress['selected_shipping_method']['carrier_title']); - - self::assertArrayHasKey('method_title', $shippingAddress['selected_shipping_method']); - self::assertNull($shippingAddress['selected_shipping_method']['method_title']); + self::assertNull($shippingAddress['selected_shipping_method']); } /**