Skip to content

Commit ef3e465

Browse files
committed
MC-37582: Fix Failing WebAPI GraphQL tests when DB table prefixes are enabled
- fix test
1 parent 390505a commit ef3e465

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/CategoriesQuery/CategoryTreeTest.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
use Magento\Catalog\Api\ProductRepositoryInterface;
1212
use Magento\Catalog\Model\CategoryRepository;
1313
use Magento\Catalog\Model\ResourceModel\Category\Collection as CategoryCollection;
14+
use Magento\Framework\App\ResourceConnection;
1415
use Magento\Framework\EntityManager\MetadataPool;
1516
use Magento\Store\Model\Store;
1617
use Magento\Store\Model\StoreManagerInterface;
18+
use Magento\TestFramework\Helper\Bootstrap;
1719
use Magento\TestFramework\ObjectManager;
1820
use Magento\TestFramework\TestCase\GraphQlAbstract;
1921

@@ -564,10 +566,12 @@ public function testCategoryImage(?string $imagePrefix)
564566
->addAttributeToFilter('name', ['eq' => 'Parent Image Category'])
565567
->getFirstItem();
566568
$categoryId = $categoryModel->getId();
569+
/** @var ResourceConnection $resourceConnection */
570+
$resourceConnection = Bootstrap::getObjectManager()->create(ResourceConnection::class);
571+
$connection = $resourceConnection->getConnection();
567572

568573
if ($imagePrefix !== null) {
569574
// update image to account for different stored image formats
570-
$connection = $categoryCollection->getConnection();
571575
$productLinkField = $this->metadataPool
572576
->getMetadata(\Magento\Catalog\Api\Data\ProductInterface::class)
573577
->getLinkField();
@@ -577,20 +581,20 @@ public function testCategoryImage(?string $imagePrefix)
577581
$imageAttributeValue = $imagePrefix . basename($categoryModel->getImage());
578582

579583
if (!empty($imageAttributeValue)) {
580-
$query = sprintf(
584+
$sqlQuery = sprintf(
581585
'UPDATE %s SET `value` = "%s" ' .
582586
'WHERE `%s` = %d ' .
583587
'AND `store_id`= %d ' .
584588
'AND `attribute_id` = ' .
585589
'(SELECT `ea`.`attribute_id` FROM %s ea WHERE `ea`.`attribute_code` = "image" LIMIT 1)',
586-
$connection->getTableName('catalog_category_entity_varchar'),
590+
$resourceConnection->getTableName('catalog_category_entity_varchar'),
587591
$imageAttributeValue,
588592
$productLinkField,
589593
$categoryModel->getData($productLinkField),
590594
$defaultStoreId,
591-
$connection->getTableName('eav_attribute')
595+
$resourceConnection->getTableName('eav_attribute')
592596
);
593-
$connection->query($query);
597+
$connection->query($sqlQuery);
594598
}
595599
}
596600

dev/tests/api-functional/testsuite/Magento/GraphQl/Catalog/CategoryTest.php

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@
1212
use Magento\Catalog\Api\ProductRepositoryInterface;
1313
use Magento\Catalog\Model\CategoryRepository;
1414
use Magento\Catalog\Model\ResourceModel\Category\Collection as CategoryCollection;
15+
use Magento\Framework\App\ResourceConnection;
1516
use Magento\Framework\DataObject;
1617
use Magento\Framework\EntityManager\MetadataPool;
1718
use Magento\Store\Model\Store;
1819
use Magento\Store\Model\StoreManagerInterface;
1920
use Magento\TestFramework\ObjectManager;
21+
use Magento\TestFramework\Helper\Bootstrap;
2022
use Magento\TestFramework\TestCase\GraphQl\ResponseContainsErrorsException;
2123
use Magento\TestFramework\TestCase\GraphQlAbstract;
2224

@@ -587,9 +589,12 @@ public function testCategoryImage(?string $imagePrefix)
587589
->getFirstItem();
588590
$categoryId = $categoryModel->getId();
589591

592+
/** @var ResourceConnection $resourceConnection */
593+
$resourceConnection = Bootstrap::getObjectManager()->create(ResourceConnection::class);
594+
$connection = $resourceConnection->getConnection();
595+
590596
if ($imagePrefix !== null) {
591-
// update image to account for different stored image formats
592-
$connection = $categoryCollection->getConnection();
597+
// update image to account for different stored image format
593598
$productLinkField = $this->metadataPool
594599
->getMetadata(\Magento\Catalog\Api\Data\ProductInterface::class)
595600
->getLinkField();
@@ -599,20 +604,20 @@ public function testCategoryImage(?string $imagePrefix)
599604
$imageAttributeValue = $imagePrefix . basename($categoryModel->getImage());
600605

601606
if (!empty($imageAttributeValue)) {
602-
$query = sprintf(
607+
$sqlQuery = sprintf(
603608
'UPDATE %s SET `value` = "%s" ' .
604609
'WHERE `%s` = %d ' .
605610
'AND `store_id`= %d ' .
606611
'AND `attribute_id` = ' .
607612
'(SELECT `ea`.`attribute_id` FROM %s ea WHERE `ea`.`attribute_code` = "image" LIMIT 1)',
608-
$connection->getTableName('catalog_category_entity_varchar'),
613+
$resourceConnection->getTableName('catalog_category_entity_varchar'),
609614
$imageAttributeValue,
610615
$productLinkField,
611616
$categoryModel->getData($productLinkField),
612617
$defaultStoreId,
613-
$connection->getTableName('eav_attribute')
618+
$resourceConnection->getTableName('eav_attribute')
614619
);
615-
$connection->query($query);
620+
$connection->query($sqlQuery);
616621
}
617622
}
618623

0 commit comments

Comments
 (0)