Skip to content

Commit d8314a1

Browse files
committed
add testQueryDisableRelatedProduct
1 parent ed40853 commit d8314a1

File tree

3 files changed

+108
-1
lines changed

3 files changed

+108
-1
lines changed

dev/tests/api-functional/testsuite/Magento/GraphQl/RelatedProduct/GetRelatedProductsTest.php

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
use Magento\TestFramework\TestCase\GraphQlAbstract;
1111

1212
/**
13-
* Get related products test
13+
* Test coverage for get related products
1414
*/
1515
class GetRelatedProductsTest extends GraphQlAbstract
1616
{
@@ -49,6 +49,40 @@ public function testQueryRelatedProducts()
4949
self::assertRelatedProducts($relatedProducts);
5050
}
5151

52+
/**
53+
* @magentoApiDataFixture Magento/Catalog/_files/products_related_disabled.php
54+
*/
55+
public function testQueryDisableRelatedProduct()
56+
{
57+
$productSku = 'simple_with_cross';
58+
59+
$query = <<<QUERY
60+
{
61+
products(filter: {sku: {eq: "{$productSku}"}})
62+
{
63+
items {
64+
related_products
65+
{
66+
sku
67+
name
68+
url_key
69+
created_at
70+
}
71+
}
72+
}
73+
}
74+
QUERY;
75+
$response = $this->graphQlQuery($query);
76+
77+
self::assertArrayHasKey('products', $response);
78+
self::assertArrayHasKey('items', $response['products']);
79+
self::assertCount(1, $response['products']['items']);
80+
self::assertArrayHasKey(0, $response['products']['items']);
81+
self::assertArrayHasKey('related_products', $response['products']['items'][0]);
82+
$relatedProducts = $response['products']['items'][0]['related_products'];
83+
self::assertCount(0, $relatedProducts);
84+
}
85+
5286
/**
5387
* @magentoApiDataFixture Magento/Catalog/_files/products_crosssell.php
5488
*/
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
8+
9+
/** @var $product \Magento\Catalog\Model\Product */
10+
$product = $objectManager->create(\Magento\Catalog\Model\Product::class);
11+
$product->setTypeId(\Magento\Catalog\Model\Product\Type::TYPE_SIMPLE)
12+
->setAttributeSetId(4)
13+
->setName('Simple Related Product')
14+
->setSku('simple')
15+
->setPrice(10)
16+
->setVisibility(\Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH)
17+
->setStatus(\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_DISABLED)
18+
->setWebsiteIds([1])
19+
->setStockData(['qty' => 100, 'is_in_stock' => 1, 'manage_stock' => 1])
20+
->save();
21+
22+
/** @var \Magento\Catalog\Api\Data\ProductLinkInterface $productLink */
23+
$productLink = $objectManager->create(\Magento\Catalog\Api\Data\ProductLinkInterface::class);
24+
$productLink->setSku('simple_with_cross');
25+
$productLink->setLinkedProductSku('simple');
26+
$productLink->setPosition(1);
27+
$productLink->setLinkType('related');
28+
29+
$product = $objectManager->create(\Magento\Catalog\Model\Product::class);
30+
$product->setTypeId(\Magento\Catalog\Model\Product\Type::TYPE_SIMPLE)
31+
->setAttributeSetId(4)
32+
->setName('Simple Product With Related Product')
33+
->setSku('simple_with_cross')
34+
->setPrice(10)
35+
->setVisibility(\Magento\Catalog\Model\Product\Visibility::VISIBILITY_BOTH)
36+
->setStatus(\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_ENABLED)
37+
->setWebsiteIds([1])
38+
->setStockData(['qty' => 100, 'is_in_stock' => 1, 'manage_stock' => 1])
39+
->setProductLinks([$productLink])
40+
->save();
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
8+
9+
/** @var \Magento\Framework\Registry $registry */
10+
$registry = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(\Magento\Framework\Registry::class);
11+
12+
$registry->unregister('isSecureArea');
13+
$registry->register('isSecureArea', true);
14+
15+
/** @var \Magento\Catalog\Api\ProductRepositoryInterface $productRepository */
16+
$productRepository = $objectManager->create(\Magento\Catalog\Api\ProductRepositoryInterface::class);
17+
18+
try {
19+
$firstProduct = $productRepository->get('simple', false, null, true);
20+
$productRepository->delete($firstProduct);
21+
} catch (\Magento\Framework\Exception\NoSuchEntityException $exception) {
22+
//Product already removed
23+
}
24+
25+
try {
26+
$secondProduct = $productRepository->get('simple_with_cross', false, null, true);
27+
$productRepository->delete($secondProduct);
28+
} catch (\Magento\Framework\Exception\NoSuchEntityException $exception) {
29+
//Product already removed
30+
}
31+
32+
$registry->unregister('isSecureArea');
33+
$registry->register('isSecureArea', false);

0 commit comments

Comments
 (0)