Skip to content

Commit 6d0c4a4

Browse files
ENGCOM-4726: [Test coverage] add to cart simple/virtual products with custom options #395
- Merge Pull Request magento/graphql-ce#395 from magento/graphql-ce:382-cart-simple-virtual-test-coverage - Merged commits: 1. ac855ab 2. 74b20cb 3. c0df80b 4. 6d99e19 5. 030792b 6. f9ad1f4 7. f0be69a
2 parents aec044d + f0be69a commit 6d0c4a4

12 files changed

+795
-249
lines changed

dev/tests/api-functional/testsuite/Magento/GraphQl/CatalogInventory/AddProductToCartTest.php

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -7,38 +7,27 @@
77

88
namespace Magento\GraphQl\CatalogInventory;
99

10+
use Magento\GraphQl\Quote\GetMaskedQuoteIdByReservedOrderId;
1011
use Magento\TestFramework\Helper\Bootstrap;
1112
use Magento\TestFramework\TestCase\GraphQlAbstract;
12-
use Magento\Quote\Model\QuoteFactory;
13-
use Magento\Quote\Model\QuoteIdToMaskedQuoteIdInterface;
14-
use Magento\Quote\Model\ResourceModel\Quote as QuoteResource;
1513

14+
/**
15+
* Add simple product to cart testcases related to inventory
16+
*/
1617
class AddProductToCartTest extends GraphQlAbstract
1718
{
1819
/**
19-
* @var QuoteResource
20-
*/
21-
private $quoteResource;
22-
23-
/**
24-
* @var QuoteFactory
25-
*/
26-
private $quoteFactory;
27-
28-
/**
29-
* @var QuoteIdToMaskedQuoteIdInterface
20+
* @var GetMaskedQuoteIdByReservedOrderId
3021
*/
31-
private $quoteIdToMaskedId;
22+
private $getMaskedQuoteIdByReservedOrderId;
3223

3324
/**
3425
* @inheritdoc
3526
*/
3627
protected function setUp()
3728
{
3829
$objectManager = Bootstrap::getObjectManager();
39-
$this->quoteResource = $objectManager->get(QuoteResource::class);
40-
$this->quoteFactory = $objectManager->get(QuoteFactory::class);
41-
$this->quoteIdToMaskedId = $objectManager->get(QuoteIdToMaskedQuoteIdInterface::class);
30+
$this->getMaskedQuoteIdByReservedOrderId = $objectManager->get(GetMaskedQuoteIdByReservedOrderId::class);
4231
}
4332

4433
/**
@@ -51,11 +40,10 @@ public function testAddProductIfQuantityIsNotAvailable()
5140
{
5241
$sku = 'simple';
5342
$qty = 200;
43+
$maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_order_1');
5444

55-
$maskedQuoteId = $this->getMaskedQuoteId();
56-
$query = $this->getAddSimpleProductQuery($maskedQuoteId, $sku, $qty);
45+
$query = $this->getQuery($maskedQuoteId, $sku, $qty);
5746
$this->graphQlQuery($query);
58-
self::fail('Should be "The requested qty is not available" error message.');
5947
}
6048

6149
/**
@@ -71,22 +59,26 @@ public function testAddMoreProductsThatAllowed()
7159

7260
$sku = 'custom-design-simple-product';
7361
$qty = 7;
62+
$maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_order_1');
7463

75-
$maskedQuoteId = $this->getMaskedQuoteId();
76-
$query = $this->getAddSimpleProductQuery($maskedQuoteId, $sku, $qty);
64+
$query = $this->getQuery($maskedQuoteId, $sku, $qty);
7765
$this->graphQlQuery($query);
78-
self::fail('Should be "The most you may purchase is 5." error message.');
7966
}
8067

8168
/**
82-
* @return string
69+
* @magentoApiDataFixture Magento/Catalog/_files/products.php
70+
* @magentoApiDataFixture Magento/Checkout/_files/active_quote.php
71+
* @expectedException \Exception
72+
* @expectedExceptionMessage Please enter a number greater than 0 in this field.
8373
*/
84-
public function getMaskedQuoteId() : string
74+
public function testAddSimpleProductToCartWithNegativeQty()
8575
{
86-
$quote = $this->quoteFactory->create();
87-
$this->quoteResource->load($quote, 'test_order_1', 'reserved_order_id');
76+
$sku = 'simple';
77+
$qty = -2;
78+
$maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_order_1');
8879

89-
return $this->quoteIdToMaskedId->execute((int)$quote->getId());
80+
$query = $this->getQuery($maskedQuoteId, $sku, $qty);
81+
$this->graphQlQuery($query);
9082
}
9183

9284
/**
@@ -95,7 +87,7 @@ public function getMaskedQuoteId() : string
9587
* @param int $qty
9688
* @return string
9789
*/
98-
public function getAddSimpleProductQuery(string $maskedQuoteId, string $sku, int $qty) : string
90+
private function getQuery(string $maskedQuoteId, string $sku, int $qty) : string
9991
{
10092
return <<<QUERY
10193
mutation {

dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/AddConfigurableProductToCartTest.php renamed to dev/tests/api-functional/testsuite/Magento/GraphQl/ConfigurableProduct/AddConfigurableProductToCartTest.php

Lines changed: 17 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -5,40 +5,29 @@
55
*/
66
declare(strict_types=1);
77

8-
namespace Magento\GraphQl\Quote;
8+
namespace Magento\GraphQl\ConfigurableProduct;
99

10+
use Magento\GraphQl\Quote\GetMaskedQuoteIdByReservedOrderId;
1011
use Magento\TestFramework\Helper\Bootstrap;
1112
use Magento\TestFramework\TestCase\GraphQlAbstract;
12-
use Magento\Quote\Model\Quote;
13-
use Magento\Quote\Model\QuoteIdToMaskedQuoteIdInterface;
14-
use Magento\Quote\Model\ResourceModel\Quote as QuoteResource;
1513

14+
/**
15+
* Add configurable product to cart testcases
16+
*/
1617
class AddConfigurableProductToCartTest extends GraphQlAbstract
1718
{
1819
/**
19-
* @var QuoteResource
20-
*/
21-
private $quoteResource;
22-
23-
/**
24-
* @var Quote
20+
* @var GetMaskedQuoteIdByReservedOrderId
2521
*/
26-
private $quote;
27-
28-
/**
29-
* @var QuoteIdToMaskedQuoteIdInterface
30-
*/
31-
private $quoteIdToMaskedId;
22+
private $getMaskedQuoteIdByReservedOrderId;
3223

3324
/**
3425
* @inheritdoc
3526
*/
3627
protected function setUp()
3728
{
3829
$objectManager = Bootstrap::getObjectManager();
39-
$this->quoteResource = $objectManager->get(QuoteResource::class);
40-
$this->quote = $objectManager->create(Quote::class);
41-
$this->quoteIdToMaskedId = $objectManager->get(QuoteIdToMaskedQuoteIdInterface::class);
30+
$this->getMaskedQuoteIdByReservedOrderId = $objectManager->get(GetMaskedQuoteIdByReservedOrderId::class);
4231
}
4332

4433
/**
@@ -49,12 +38,11 @@ public function testAddConfigurableProductToCart()
4938
{
5039
$variantSku = 'simple_41';
5140
$qty = 2;
41+
$maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_order_1');
5242

53-
$maskedQuoteId = $this->getMaskedQuoteId();
54-
55-
$query = $this->getAddConfigurableProductMutationQuery($maskedQuoteId, $variantSku, $qty);
56-
43+
$query = $this->getQuery($maskedQuoteId, $variantSku, $qty);
5744
$response = $this->graphQlQuery($query);
45+
5846
$cartItems = $response['addConfigurableProductsToCart']['cart']['items'];
5947
self::assertEquals($qty, $cartItems[0]['qty']);
6048
self::assertEquals($variantSku, $cartItems[0]['product']['sku']);
@@ -70,10 +58,9 @@ public function testAddProductIfQuantityIsNotAvailable()
7058
{
7159
$variantSku = 'simple_41';
7260
$qty = 200;
61+
$maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_order_1');
7362

74-
$maskedQuoteId = $this->getMaskedQuoteId();
75-
$query = $this->getAddConfigurableProductMutationQuery($maskedQuoteId, $variantSku, $qty);
76-
63+
$query = $this->getQuery($maskedQuoteId, $variantSku, $qty);
7764
$this->graphQlQuery($query);
7865
}
7966

@@ -87,35 +74,19 @@ public function testAddOutOfStockProduct()
8774
{
8875
$variantSku = 'simple_1010';
8976
$qty = 1;
90-
$maskedQuoteId = $this->getMaskedQuoteId();
91-
$query = $this->getAddConfigurableProductMutationQuery($maskedQuoteId, $variantSku, $qty);
77+
$maskedQuoteId = $this->getMaskedQuoteIdByReservedOrderId->execute('test_order_1');
9278

79+
$query = $this->getQuery($maskedQuoteId, $variantSku, $qty);
9380
$this->graphQlQuery($query);
9481
}
9582

96-
/**
97-
* @magentoApiDataFixture Magento/Checkout/_files/active_quote.php
98-
* @return string
99-
* @throws \Magento\Framework\Exception\NoSuchEntityException
100-
*/
101-
private function getMaskedQuoteId()
102-
{
103-
$this->quoteResource->load(
104-
$this->quote,
105-
'test_order_1',
106-
'reserved_order_id'
107-
);
108-
return $this->quoteIdToMaskedId->execute((int)$this->quote->getId());
109-
}
110-
11183
/**
11284
* @param string $maskedQuoteId
113-
* @param string $sku
85+
* @param string $variantSku
11486
* @param int $qty
115-
*
11687
* @return string
11788
*/
118-
private function getAddConfigurableProductMutationQuery(string $maskedQuoteId, string $variantSku, int $qty): string
89+
private function getQuery(string $maskedQuoteId, string $variantSku, int $qty): string
11990
{
12091
return <<<QUERY
12192
mutation {

dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/AddSimpleProductToCartTest.php

Lines changed: 0 additions & 163 deletions
This file was deleted.

0 commit comments

Comments
 (0)