From 8545267601d2923df9cd091a1e1d312f2e31506a Mon Sep 17 00:00:00 2001 From: Alexandra Zota Date: Wed, 5 Jun 2024 13:35:17 +0300 Subject: [PATCH 1/2] ACP2E-3108: fixes for random webapi tests failures --- .../CmsGraphQl/Model/Resolver/BlockTest.php | 91 +++++++++++-------- .../Customer/SetBillingAddressOnCartTest.php | 57 ++++++++++-- .../Sales/RetrieveOrdersByOrderNumberTest.php | 77 +++++++--------- 3 files changed, 137 insertions(+), 88 deletions(-) diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/CmsGraphQl/Model/Resolver/BlockTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/CmsGraphQl/Model/Resolver/BlockTest.php index f67089a4a1c1..94d0b8ba5006 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/CmsGraphQl/Model/Resolver/BlockTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/CmsGraphQl/Model/Resolver/BlockTest.php @@ -11,9 +11,16 @@ use Magento\Cms\Api\Data\BlockInterface; use Magento\Cms\Model\Block; use Magento\CmsGraphQl\Model\Resolver\Blocks; +use Magento\Framework\Exception\LocalizedException; use Magento\GraphQlResolverCache\Model\Resolver\Result\CacheKey\Calculator\ProviderInterface; use Magento\GraphQlResolverCache\Model\Resolver\Result\Type as GraphQlResolverCache; use Magento\Store\Model\StoreManagerInterface; +use Magento\Store\Test\Fixture\Store; +use Magento\Cms\Test\Fixture\Block as BlockFixture; +use Magento\TestFramework\Fixture\Config; +use Magento\TestFramework\Fixture\DataFixture; +use Magento\TestFramework\Fixture\DataFixtureStorage; +use Magento\TestFramework\Fixture\DataFixtureStorageManager; use Magento\TestFramework\ObjectManager; use Magento\TestFramework\TestCase\GraphQl\ResolverCacheAbstract; use Magento\TestFramework\TestCase\GraphQl\ResponseContainsErrorsException; @@ -21,6 +28,8 @@ /** * Test for cms block resolver cache + * + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class BlockTest extends ResolverCacheAbstract { @@ -44,6 +53,11 @@ class BlockTest extends ResolverCacheAbstract */ private $storeManager; + /** + * @var DataFixtureStorage + */ + private $fixtures; + protected function setUp(): void { $objectManager = ObjectManager::getInstance(); @@ -51,17 +65,17 @@ protected function setUp(): void $this->graphQlResolverCache = $objectManager->get(GraphQlResolverCache::class); $this->widgetFilter = $objectManager->get(FilterEmulate::class); $this->storeManager = $objectManager->get(StoreManagerInterface::class); + $this->fixtures = $objectManager->get(DataFixtureStorageManager::class)->getStorage(); parent::setUp(); } - /** - * @magentoConfigFixture default_store web/seo/use_rewrites 1 - * @magentoDataFixture Magento/Cms/_files/blocks.php - */ + #[ + DataFixture(BlockFixture::class, as: 'guest_block') + ] public function testCmsSingleBlockResolverCacheAndInvalidationAsGuest() { - $block = $this->blockRepository->getById('enabled_block'); + $block = $this->fixtures->get('guest_block'); $query = $this->getQuery([ $block->getIdentifier(), @@ -94,15 +108,14 @@ public function testCmsSingleBlockResolverCacheAndInvalidationAsGuest() ); } - /** - * @magentoConfigFixture default_store web/seo/use_rewrites 1 - * @magentoDataFixture Magento/Cms/_files/block.php - * @magentoDataFixture Magento/Cms/_files/blocks.php - */ + #[ + DataFixture(BlockFixture::class, as: 'block1'), + DataFixture(BlockFixture::class, as: 'block2') + ] public function testCmsMultipleBlockResolverCacheAndInvalidationAsGuest() { - $block1 = $this->blockRepository->getById('enabled_block'); - $block2 = $this->blockRepository->getById('fixture_block'); + $block1 = $this->fixtures->get('block1'); + $block2 = $this->fixtures->get('block2'); $query = $this->getQuery([ $block1->getIdentifier(), @@ -139,13 +152,12 @@ public function testCmsMultipleBlockResolverCacheAndInvalidationAsGuest() ); } - /** - * @magentoConfigFixture default_store web/seo/use_rewrites 1 - * @magentoDataFixture Magento/Cms/_files/block.php - */ + #[ + DataFixture(BlockFixture::class, as: 'deleted_block') + ] public function testCmsBlockResolverCacheInvalidatesWhenBlockGetsDeleted() { - $block = $this->blockRepository->getById('fixture_block'); + $block = $this->fixtures->get('deleted_block'); $query = $this->getQuery([ $block->getIdentifier(), @@ -177,13 +189,12 @@ public function testCmsBlockResolverCacheInvalidatesWhenBlockGetsDeleted() ); } - /** - * @magentoConfigFixture default_store web/seo/use_rewrites 1 - * @magentoDataFixture Magento/Cms/_files/blocks.php - */ + #[ + DataFixture(BlockFixture::class, as: 'disabled_block') + ] public function testCmsBlockResolverCacheInvalidatesWhenBlockGetsDisabled() { - $block = $this->blockRepository->getById('enabled_block'); + $block = $this->fixtures->get('disabled_block'); $query = $this->getQuery([ $block->getIdentifier(), @@ -217,14 +228,20 @@ public function testCmsBlockResolverCacheInvalidatesWhenBlockGetsDisabled() } /** - * @magentoConfigFixture default_store web/seo/use_rewrites 1 - * @magentoDataFixture Magento/Cms/_files/block.php - * @magentoDataFixture Magento/Store/_files/second_store.php + * @throws LocalizedException + * @throws \Zend_Cache_Exception */ + #[ + DataFixture(BlockFixture::class, as: 'block'), + DataFixture(Store::class, as: 'second_store'), + ] public function testCmsBlockResolverCacheIsInvalidatedAfterChangingItsStoreView() { /** @var Block $block */ - $block = $this->blockRepository->getById('fixture_block'); + $block = $this->fixtures->get('block'); + + /** @var \Magento\Store\Model\Store $store */ + $store = $this->fixtures->get('second_store'); $query = $this->getQuery([ $block->getIdentifier(), @@ -238,17 +255,17 @@ public function testCmsBlockResolverCacheIsInvalidatedAfterChangingItsStoreView( $cacheEntryDecoded = json_decode($cacheEntry, true); $this->assertEqualsCanonicalizing( - $this->generateExpectedDataFromBlocks([$block]), - $cacheEntryDecoded + $cacheEntryDecoded, + $this->generateExpectedDataFromBlocks([$block]) ); $this->assertTagsByCacheIdentityAndBlocks( - $cacheKey, + (string)$cacheKey, [$block] ); // assert that cache is invalidated after changing block's store view - $secondStoreViewId = $this->storeManager->getStore('fixture_second_store')->getId(); + $secondStoreViewId = $store->getId(); $block->setStoreId($secondStoreViewId); $this->blockRepository->save($block); @@ -283,15 +300,15 @@ public function testCmsBlockResolverCacheDoesNotSaveNonExistentCmsBlock() ); } - /** - * @magentoConfigFixture default/system/full_page_cache/caching_application 2 - * @magentoDataFixture Magento/Cms/_files/block.php - * @magentoDataFixture Magento/Cms/_files/blocks.php - */ + #[ + Config('system/full_page_cache/caching_application', '2', 'store', 'default'), + DataFixture(BlockFixture::class, as: 'block1'), + DataFixture(BlockFixture::class, as: 'block2') + ] public function testCmsBlockResolverCacheRetainsEntriesThatHaveNotBeenUpdated() { // query block1 - $block1 = $this->blockRepository->getById('fixture_block'); + $block1 = $this->fixtures->get('block1'); $queryBlock1 = $this->getQuery([ $block1->getIdentifier(), @@ -302,7 +319,7 @@ public function testCmsBlockResolverCacheRetainsEntriesThatHaveNotBeenUpdated() $cacheKeyBlock1 = $this->getResolverCacheKeyFromBlocks([$block1]); // query block2 - $block2 = $this->blockRepository->getById('enabled_block'); + $block2 = $this->fixtures->get('block2'); $queryBlock2 = $this->getQuery([ $block2->getIdentifier(), diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/SetBillingAddressOnCartTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/SetBillingAddressOnCartTest.php index 2c3f38c5d896..61112b156642 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/SetBillingAddressOnCartTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/SetBillingAddressOnCartTest.php @@ -7,14 +7,23 @@ namespace Magento\GraphQl\Quote\Customer; +use Magento\Catalog\Test\Fixture\Product; use Magento\Customer\Api\AddressRepositoryInterface; use Magento\Customer\Api\CustomerRepositoryInterface; +use Magento\Customer\Test\Fixture\Customer; use Magento\Framework\Api\SearchCriteriaBuilder; use Magento\GraphQl\Quote\GetMaskedQuoteIdByReservedOrderId; use Magento\Integration\Api\CustomerTokenServiceInterface; +use Magento\Quote\Model\Quote; use Magento\Quote\Model\QuoteFactory; use Magento\Quote\Model\QuoteIdToMaskedQuoteIdInterface; use Magento\Quote\Model\ResourceModel\Quote as QuoteResource; +use Magento\Quote\Test\Fixture\AddProductToCart; +use Magento\Quote\Test\Fixture\GuestCart; +use Magento\Quote\Test\Fixture\QuoteIdMask; +use Magento\TestFramework\Fixture\DataFixture; +use Magento\TestFramework\Fixture\DataFixtureStorage; +use Magento\TestFramework\Fixture\DataFixtureStorageManager; use Magento\TestFramework\Helper\Bootstrap; use Magento\TestFramework\TestCase\GraphQlAbstract; @@ -61,6 +70,11 @@ class SetBillingAddressOnCartTest extends GraphQlAbstract */ private $customerRepository; + /** + * @var DataFixtureStorage + */ + private $fixtures; + protected function setUp(): void { $objectManager = Bootstrap::getObjectManager(); @@ -72,6 +86,7 @@ protected function setUp(): void $this->customerAddressRepository = $objectManager->get(AddressRepositoryInterface::class); $this->searchCriteriaBuilder = $objectManager->get(SearchCriteriaBuilder::class); $this->customerRepository = $objectManager->get(CustomerRepositoryInterface::class); + $this->fixtures = $objectManager->get(DataFixtureStorageManager::class)->getStorage(); } /** @@ -715,17 +730,41 @@ public function testSetBillingAddressToAnotherCustomerCart() * Tests that a logged-in customer cannot use a saved customer address that is not their own. * * _security - * @magentoApiDataFixture Magento/Customer/_files/three_customers.php - * @magentoApiDataFixture Magento/Customer/_files/customer_address.php - * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php - * */ + #[ + DataFixture(Customer::class, ['addresses' => [['postcode' => '12345']]], as: 'customer1'), + DataFixture(Customer::class, ['addresses' => [['postcode' => '12345']]], as: 'customer2'), + DataFixture(Product::class, as: 'product'), + DataFixture(GuestCart::class, ['customer_id' => '$customer2.id$'], as: 'cart'), + DataFixture(QuoteIdMask::class, [ + 'cart_id' => '$cart.id$' + ], 'quoteIdMask'), + DataFixture(AddProductToCart::class, [ + 'cart_id' => '$cart.id$', + 'product_id' => '$product.id$', + 'qty' => 1 + ]) + ] public function testSetBillingAddressIfCustomerIsNotOwnerOfAddress() { - $this->expectException(\Exception::class); - $this->expectExceptionMessage('Current customer does not have permission to address with ID "1"'); + /** @var \Magento\Customer\Model\Customer $customer1 */ + $customer1 = $this->fixtures->get('customer1'); + $customer1AddressId = current($customer1->getAddresses())->getId(); + $customer2 = $this->fixtures->get('customer2'); + $customer2 = $this->customerRepository->getById($customer2->getId()); - $maskedQuoteId = $this->assignQuoteToCustomer('test_order_with_simple_product_without_address', 2); + /** @var Quote $quote */ + $quote = $this->fixtures->get('cart'); + $maskedQuoteId = $this->fixtures->get('quoteIdMask')->getMaskedId(); + + $quote->setCustomer($customer2); + $quote->setCustomerIsGuest(false); + $quote->save(); + + $this->expectException(\Exception::class); + $this->expectExceptionMessage( + 'Current customer does not have permission to address with ID "'.$customer1AddressId.'"' + ); $query = <<graphQlMutation($query, [], '', $this->getHeaderMap('customer2@search.example.com')); + $this->graphQlMutation($query, [], '', $this->getHeaderMap($customer2->getEmail())); } /** diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Sales/RetrieveOrdersByOrderNumberTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Sales/RetrieveOrdersByOrderNumberTest.php index b140aab0734f..5f29f557c0b9 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Sales/RetrieveOrdersByOrderNumberTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Sales/RetrieveOrdersByOrderNumberTest.php @@ -434,75 +434,73 @@ public function testGetMatchingOrdersForLowerQueryLength() * @throws AuthenticationException */ #[ - DataFixture(Customer::class, ['email' => 'customer@example.com'], 'customer'), + DataFixture(Customer::class, as: 'customer'), + + DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart1'), + DataFixture(ProductFixture::class, ['price' => 10], 'p1'), + DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart1.id$', 'product_id' => '$p1.id$']), + DataFixture(SetBillingAddress::class, ['cart_id' => '$cart1.id$']), + DataFixture(SetShippingAddress::class, ['cart_id' => '$cart1.id$']), + DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart1.id$']), + DataFixture(SetPaymentMethod::class, ['cart_id' => '$cart1.id$']), + DataFixture(PlaceOrder::class, ['cart_id' => '$cart1.id$'], 'or1'), + DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart2'), - DataFixture(ProductFixture::class, ['sku' => '100000002', 'price' => 10], 'p2'), + DataFixture(ProductFixture::class, ['price' => 10], 'p2'), DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart2.id$', 'product_id' => '$p2.id$']), DataFixture(SetBillingAddress::class, ['cart_id' => '$cart2.id$']), DataFixture(SetShippingAddress::class, ['cart_id' => '$cart2.id$']), DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart2.id$']), DataFixture(SetPaymentMethod::class, ['cart_id' => '$cart2.id$']), DataFixture(PlaceOrder::class, ['cart_id' => '$cart2.id$'], 'or2'), - ] - #[ DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart3'), - DataFixture(ProductFixture::class, ['sku' => '100000003', 'price' => 10], 'p3'), + DataFixture(ProductFixture::class, ['price' => 10], 'p3'), DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart3.id$', 'product_id' => '$p3.id$']), DataFixture(SetBillingAddress::class, ['cart_id' => '$cart3.id$']), DataFixture(SetShippingAddress::class, ['cart_id' => '$cart3.id$']), DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart3.id$']), DataFixture(SetPaymentMethod::class, ['cart_id' => '$cart3.id$']), DataFixture(PlaceOrder::class, ['cart_id' => '$cart3.id$'], 'or3'), - ] - #[ DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart4'), - DataFixture(ProductFixture::class, ['sku' => '100000004', 'price' => 10], 'p4'), + DataFixture(ProductFixture::class, ['price' => 10], 'p4'), DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart4.id$', 'product_id' => '$p4.id$']), DataFixture(SetBillingAddress::class, ['cart_id' => '$cart4.id$']), DataFixture(SetShippingAddress::class, ['cart_id' => '$cart4.id$']), DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart4.id$']), DataFixture(SetPaymentMethod::class, ['cart_id' => '$cart4.id$']), DataFixture(PlaceOrder::class, ['cart_id' => '$cart4.id$'], 'or4'), - ] - #[ DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart5'), - DataFixture(ProductFixture::class, ['sku' => '100000005', 'price' => 10], 'p5'), + DataFixture(ProductFixture::class, ['price' => 10], 'p5'), DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart5.id$', 'product_id' => '$p5.id$']), DataFixture(SetBillingAddress::class, ['cart_id' => '$cart5.id$']), DataFixture(SetShippingAddress::class, ['cart_id' => '$cart5.id$']), DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart5.id$']), DataFixture(SetPaymentMethod::class, ['cart_id' => '$cart5.id$']), DataFixture(PlaceOrder::class, ['cart_id' => '$cart5.id$'], 'or5'), - ] - #[ DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart6'), - DataFixture(ProductFixture::class, ['sku' => '100000006', 'price' => 10], 'p6'), + DataFixture(ProductFixture::class, ['price' => 10], 'p6'), DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart6.id$', 'product_id' => '$p6.id$']), DataFixture(SetBillingAddress::class, ['cart_id' => '$cart6.id$']), DataFixture(SetShippingAddress::class, ['cart_id' => '$cart6.id$']), DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart6.id$']), DataFixture(SetPaymentMethod::class, ['cart_id' => '$cart6.id$']), DataFixture(PlaceOrder::class, ['cart_id' => '$cart6.id$'], 'or6'), - ] - #[ DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart7'), - DataFixture(ProductFixture::class, ['sku' => '100000007', 'price' => 10], 'p7'), + DataFixture(ProductFixture::class, ['price' => 10], 'p7'), DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart7.id$', 'product_id' => '$p7.id$']), DataFixture(SetBillingAddress::class, ['cart_id' => '$cart7.id$']), DataFixture(SetShippingAddress::class, ['cart_id' => '$cart7.id$']), DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart7.id$']), DataFixture(SetPaymentMethod::class, ['cart_id' => '$cart7.id$']), DataFixture(PlaceOrder::class, ['cart_id' => '$cart7.id$'], 'or7'), - ] - #[ DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart8'), - DataFixture(ProductFixture::class, ['sku' => '100000008', 'price' => 10], 'p8'), + DataFixture(ProductFixture::class, ['price' => 10], 'p8'), DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart8.id$', 'product_id' => '$p8.id$']), DataFixture(SetBillingAddress::class, ['cart_id' => '$cart8.id$']), DataFixture(SetShippingAddress::class, ['cart_id' => '$cart8.id$']), @@ -512,6 +510,8 @@ public function testGetMatchingOrdersForLowerQueryLength() ] public function testGetCustomerDescendingSortedOrders() { + $customer = $this->fixtures->get('customer'); + $query = <<getEmail(); $currentPassword = 'password'; $response = $this->graphQlQuery( $query, @@ -544,28 +544,21 @@ public function testGetCustomerDescendingSortedOrders() $this->assertArrayHasKey('items', $response['customer']['orders']); $customerOrderItemsInResponse = $response['customer']['orders']['items']; - $order2 = $this->fixtures->get('or2')->getIncrementId(); - $order3 = $this->fixtures->get('or3')->getIncrementId(); - $order4 = $this->fixtures->get('or4')->getIncrementId(); - $order5 = $this->fixtures->get('or5')->getIncrementId(); - $order6 = $this->fixtures->get('or6')->getIncrementId(); - $order7 = $this->fixtures->get('or7')->getIncrementId(); - $order8 = $this->fixtures->get('or8')->getIncrementId(); - - $expectedOrderNumbersOptions = [$order8, $order7, $order6, $order5, $order4, $order3, $order2 ]; - $expectedOrderNumbers = $scalarTemp = []; - $compDate = $prevComKey = ''; - foreach ($expectedOrderNumbersOptions as $comKey => $comData) { - if ($compDate == $customerOrderItemsInResponse[$comKey]['order_date']) { - $expectedOrderNumbers[] = $expectedOrderNumbers[$prevComKey]; - $scalarTemp = (array)$comData; - $expectedOrderNumbers[$prevComKey] = $scalarTemp[0]; - } else { - $scalarTemp = (array)$comData; - $expectedOrderNumbers[] = $scalarTemp[0]; + $orderNumberCreatedAt = []; + for ($i = 1; $i <= 8; $i++) { + $orderNumber = $this->fixtures->get('or' . $i)->getIncrementId(); + $orderCreatedAt = $this->fixtures->get('or' . $i)->getCreatedAt(); + $orderNumberCreatedAt[$orderNumber] = $orderCreatedAt; + } + + array_multisort($orderNumberCreatedAt, SORT_DESC); + + $expectedOrderNumbers = []; + foreach ($customerOrderItemsInResponse as $key => $item) { + if (isset($orderNumberCreatedAt[$item['number']]) + && $item['order_date'] == $orderNumberCreatedAt[$item['number']]) { + $expectedOrderNumbers[] = $item['number']; } - $prevComKey = $comKey; - $compDate = $customerOrderItemsInResponse[$comKey]['order_date']; } foreach ($expectedOrderNumbers as $key => $data) { From fd9b52e7a80ff702574d9e0a9d38f0834bd354ec Mon Sep 17 00:00:00 2001 From: Alexandra Zota Date: Wed, 12 Jun 2024 17:59:04 +0300 Subject: [PATCH 2/2] ACP2E-3108: address PR comments --- .../CmsGraphQl/Model/Resolver/BlockTest.php | 12 ++- .../Customer/SetBillingAddressOnCartTest.php | 11 +-- .../Sales/RetrieveOrdersByOrderNumberTest.php | 87 ++++--------------- 3 files changed, 25 insertions(+), 85 deletions(-) diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/CmsGraphQl/Model/Resolver/BlockTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/CmsGraphQl/Model/Resolver/BlockTest.php index 94d0b8ba5006..8685277f852d 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/CmsGraphQl/Model/Resolver/BlockTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/CmsGraphQl/Model/Resolver/BlockTest.php @@ -109,8 +109,7 @@ public function testCmsSingleBlockResolverCacheAndInvalidationAsGuest() } #[ - DataFixture(BlockFixture::class, as: 'block1'), - DataFixture(BlockFixture::class, as: 'block2') + DataFixture(BlockFixture::class, as: 'block', count: 2) ] public function testCmsMultipleBlockResolverCacheAndInvalidationAsGuest() { @@ -190,11 +189,11 @@ public function testCmsBlockResolverCacheInvalidatesWhenBlockGetsDeleted() } #[ - DataFixture(BlockFixture::class, as: 'disabled_block') + DataFixture(BlockFixture::class, as: 'enabled_block') ] public function testCmsBlockResolverCacheInvalidatesWhenBlockGetsDisabled() { - $block = $this->fixtures->get('disabled_block'); + $block = $this->fixtures->get('enabled_block'); $query = $this->getQuery([ $block->getIdentifier(), @@ -301,9 +300,8 @@ public function testCmsBlockResolverCacheDoesNotSaveNonExistentCmsBlock() } #[ - Config('system/full_page_cache/caching_application', '2', 'store', 'default'), - DataFixture(BlockFixture::class, as: 'block1'), - DataFixture(BlockFixture::class, as: 'block2') + Config('system/full_page_cache/caching_application', '2'), + DataFixture(BlockFixture::class, as: 'block', count: 2) ] public function testCmsBlockResolverCacheRetainsEntriesThatHaveNotBeenUpdated() { diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/SetBillingAddressOnCartTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/SetBillingAddressOnCartTest.php index 2a8e742002ba..cb786074f7b8 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/SetBillingAddressOnCartTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/SetBillingAddressOnCartTest.php @@ -20,7 +20,6 @@ use Magento\Quote\Model\ResourceModel\Quote as QuoteResource; use Magento\Quote\Test\Fixture\AddProductToCart; use Magento\Quote\Test\Fixture\GuestCart; -use Magento\Quote\Test\Fixture\QuoteIdMask; use Magento\TestFramework\Fixture\DataFixture; use Magento\TestFramework\Fixture\DataFixtureStorage; use Magento\TestFramework\Fixture\DataFixtureStorageManager; @@ -732,13 +731,9 @@ public function testSetBillingAddressToAnotherCustomerCart() * _security */ #[ - DataFixture(Customer::class, ['addresses' => [['postcode' => '12345']]], as: 'customer1'), - DataFixture(Customer::class, ['addresses' => [['postcode' => '12345']]], as: 'customer2'), + DataFixture(Customer::class, ['addresses' => [['postcode' => '12345']]], as: 'customer', count: 2), DataFixture(Product::class, as: 'product'), - DataFixture(GuestCart::class, ['customer_id' => '$customer2.id$'], as: 'cart'), - DataFixture(QuoteIdMask::class, [ - 'cart_id' => '$cart.id$' - ], 'quoteIdMask'), + DataFixture(GuestCart::class, ['customer_email' => '$customer2.email$'], as: 'cart'), DataFixture(AddProductToCart::class, [ 'cart_id' => '$cart.id$', 'product_id' => '$product.id$', @@ -755,7 +750,7 @@ public function testSetBillingAddressIfCustomerIsNotOwnerOfAddress() /** @var Quote $quote */ $quote = $this->fixtures->get('cart'); - $maskedQuoteId = $this->fixtures->get('quoteIdMask')->getMaskedId(); + $maskedQuoteId = $this->quoteIdToMaskedId->execute((int)$quote->getId()); $quote->setCustomer($customer2); $quote->setCustomerIsGuest(false); diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Sales/RetrieveOrdersByOrderNumberTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Sales/RetrieveOrdersByOrderNumberTest.php index 5f29f557c0b9..884b0c079e62 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Sales/RetrieveOrdersByOrderNumberTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Sales/RetrieveOrdersByOrderNumberTest.php @@ -435,10 +435,10 @@ public function testGetMatchingOrdersForLowerQueryLength() */ #[ DataFixture(Customer::class, as: 'customer'), + DataFixture(ProductFixture::class, as: 'product'), DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart1'), - DataFixture(ProductFixture::class, ['price' => 10], 'p1'), - DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart1.id$', 'product_id' => '$p1.id$']), + DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart1.id$', 'product_id' => '$product.id$']), DataFixture(SetBillingAddress::class, ['cart_id' => '$cart1.id$']), DataFixture(SetShippingAddress::class, ['cart_id' => '$cart1.id$']), DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart1.id$']), @@ -446,8 +446,7 @@ public function testGetMatchingOrdersForLowerQueryLength() DataFixture(PlaceOrder::class, ['cart_id' => '$cart1.id$'], 'or1'), DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart2'), - DataFixture(ProductFixture::class, ['price' => 10], 'p2'), - DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart2.id$', 'product_id' => '$p2.id$']), + DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart2.id$', 'product_id' => '$product.id$']), DataFixture(SetBillingAddress::class, ['cart_id' => '$cart2.id$']), DataFixture(SetShippingAddress::class, ['cart_id' => '$cart2.id$']), DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart2.id$']), @@ -455,58 +454,12 @@ public function testGetMatchingOrdersForLowerQueryLength() DataFixture(PlaceOrder::class, ['cart_id' => '$cart2.id$'], 'or2'), DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart3'), - DataFixture(ProductFixture::class, ['price' => 10], 'p3'), - DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart3.id$', 'product_id' => '$p3.id$']), + DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart3.id$', 'product_id' => '$product.id$']), DataFixture(SetBillingAddress::class, ['cart_id' => '$cart3.id$']), DataFixture(SetShippingAddress::class, ['cart_id' => '$cart3.id$']), DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart3.id$']), DataFixture(SetPaymentMethod::class, ['cart_id' => '$cart3.id$']), - DataFixture(PlaceOrder::class, ['cart_id' => '$cart3.id$'], 'or3'), - - DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart4'), - DataFixture(ProductFixture::class, ['price' => 10], 'p4'), - DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart4.id$', 'product_id' => '$p4.id$']), - DataFixture(SetBillingAddress::class, ['cart_id' => '$cart4.id$']), - DataFixture(SetShippingAddress::class, ['cart_id' => '$cart4.id$']), - DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart4.id$']), - DataFixture(SetPaymentMethod::class, ['cart_id' => '$cart4.id$']), - DataFixture(PlaceOrder::class, ['cart_id' => '$cart4.id$'], 'or4'), - - DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart5'), - DataFixture(ProductFixture::class, ['price' => 10], 'p5'), - DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart5.id$', 'product_id' => '$p5.id$']), - DataFixture(SetBillingAddress::class, ['cart_id' => '$cart5.id$']), - DataFixture(SetShippingAddress::class, ['cart_id' => '$cart5.id$']), - DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart5.id$']), - DataFixture(SetPaymentMethod::class, ['cart_id' => '$cart5.id$']), - DataFixture(PlaceOrder::class, ['cart_id' => '$cart5.id$'], 'or5'), - - DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart6'), - DataFixture(ProductFixture::class, ['price' => 10], 'p6'), - DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart6.id$', 'product_id' => '$p6.id$']), - DataFixture(SetBillingAddress::class, ['cart_id' => '$cart6.id$']), - DataFixture(SetShippingAddress::class, ['cart_id' => '$cart6.id$']), - DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart6.id$']), - DataFixture(SetPaymentMethod::class, ['cart_id' => '$cart6.id$']), - DataFixture(PlaceOrder::class, ['cart_id' => '$cart6.id$'], 'or6'), - - DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart7'), - DataFixture(ProductFixture::class, ['price' => 10], 'p7'), - DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart7.id$', 'product_id' => '$p7.id$']), - DataFixture(SetBillingAddress::class, ['cart_id' => '$cart7.id$']), - DataFixture(SetShippingAddress::class, ['cart_id' => '$cart7.id$']), - DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart7.id$']), - DataFixture(SetPaymentMethod::class, ['cart_id' => '$cart7.id$']), - DataFixture(PlaceOrder::class, ['cart_id' => '$cart7.id$'], 'or7'), - - DataFixture(CustomerCart::class, ['customer_id' => '$customer.id$'], 'cart8'), - DataFixture(ProductFixture::class, ['price' => 10], 'p8'), - DataFixture(AddProductToCartFixture::class, ['cart_id' => '$cart8.id$', 'product_id' => '$p8.id$']), - DataFixture(SetBillingAddress::class, ['cart_id' => '$cart8.id$']), - DataFixture(SetShippingAddress::class, ['cart_id' => '$cart8.id$']), - DataFixture(SetDeliveryMethod::class, ['cart_id' => '$cart8.id$']), - DataFixture(SetPaymentMethod::class, ['cart_id' => '$cart8.id$']), - DataFixture(PlaceOrder::class, ['cart_id' => '$cart8.id$'], 'or8'), + DataFixture(PlaceOrder::class, ['cart_id' => '$cart3.id$'], 'or3') ] public function testGetCustomerDescendingSortedOrders() { @@ -544,31 +497,25 @@ public function testGetCustomerDescendingSortedOrders() $this->assertArrayHasKey('items', $response['customer']['orders']); $customerOrderItemsInResponse = $response['customer']['orders']['items']; - $orderNumberCreatedAt = []; - for ($i = 1; $i <= 8; $i++) { + $orderNumberCreatedAtExpected = []; + for ($i = 1; $i <= 3; $i++) { $orderNumber = $this->fixtures->get('or' . $i)->getIncrementId(); $orderCreatedAt = $this->fixtures->get('or' . $i)->getCreatedAt(); - $orderNumberCreatedAt[$orderNumber] = $orderCreatedAt; + $orderNumberCreatedAtExpected[$orderNumber] = $orderCreatedAt; } - array_multisort($orderNumberCreatedAt, SORT_DESC); + array_multisort($orderNumberCreatedAtExpected, SORT_DESC); - $expectedOrderNumbers = []; - foreach ($customerOrderItemsInResponse as $key => $item) { - if (isset($orderNumberCreatedAt[$item['number']]) - && $item['order_date'] == $orderNumberCreatedAt[$item['number']]) { - $expectedOrderNumbers[] = $item['number']; - } + $orderNumberCreatedAtResponse = []; + foreach ($customerOrderItemsInResponse as $item) { + $orderNumberCreatedAtResponse[$item['number']] = $item['order_date']; } - foreach ($expectedOrderNumbers as $key => $data) { - $orderItemInResponse = $customerOrderItemsInResponse[$key]; - $this->assertEquals( - $data, - $orderItemInResponse['number'], - "The order number is different than the expected for order - {$data}" - ); - } + $this->assertEquals( + $orderNumberCreatedAtExpected, + $orderNumberCreatedAtResponse, + "The order number is different than the expected for order" + ); } /**