Skip to content

Commit 61b9647

Browse files
authored
ENGCOM-6002: Added integration test for Magento\Sales\Cron\CleanExpiredQuotes class. #24858
2 parents 71c781d + 6355e13 commit 61b9647

File tree

3 files changed

+136
-0
lines changed

3 files changed

+136
-0
lines changed
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Sales\Cron;
9+
10+
use Magento\Framework\Api\SearchCriteriaBuilder;
11+
use Magento\Quote\Model\QuoteRepository;
12+
use Magento\TestFramework\Helper\Bootstrap;
13+
14+
/**
15+
* Test for Magento\Sales\Cron\CleanExpiredQuotes class.
16+
*
17+
* @magentoAppIsolation enabled
18+
* @magentoDbIsolation enabled
19+
*/
20+
class CleanExpiredQuotesTest extends \PHPUnit\Framework\TestCase
21+
{
22+
/**
23+
* @var CleanExpiredQuotes
24+
*/
25+
private $cleanExpiredQuotes;
26+
27+
/**
28+
* @var QuoteRepository
29+
*/
30+
private $quoteRepository;
31+
32+
/**
33+
* @var SearchCriteriaBuilder
34+
*/
35+
private $searchCriteriaBuilder;
36+
37+
/**
38+
* @inheritdoc
39+
*/
40+
protected function setUp()
41+
{
42+
$objectManager = Bootstrap::getObjectManager();
43+
$this->cleanExpiredQuotes = $objectManager->get(CleanExpiredQuotes::class);
44+
$this->quoteRepository = $objectManager->get(QuoteRepository::class);
45+
$this->searchCriteriaBuilder = $objectManager->get(SearchCriteriaBuilder::class);
46+
}
47+
48+
/**
49+
* Check if outdated quotes are deleted.
50+
*
51+
* @magentoConfigFixture default_store checkout/cart/delete_quote_after -365
52+
* @magentoDataFixture Magento/Sales/_files/quotes.php
53+
*/
54+
public function testExecute()
55+
{
56+
$this->cleanExpiredQuotes->execute();
57+
$searchCriteria = $this->searchCriteriaBuilder->create();
58+
$totalCount = $this->quoteRepository->getList($searchCriteria)->getTotalCount();
59+
60+
$this->assertEquals(
61+
1,
62+
$totalCount
63+
);
64+
}
65+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
use Magento\Quote\Model\QuoteFactory;
9+
use Magento\Quote\Model\QuoteRepository;
10+
use Magento\TestFramework\Helper\Bootstrap;
11+
use Magento\TestFramework\ObjectManager;
12+
13+
require dirname(dirname(__DIR__)) . '/Store/_files/second_store.php';
14+
15+
/** @var $objectManager ObjectManager */
16+
$objectManager = Bootstrap::getObjectManager();
17+
/** @var QuoteFactory $quoteFactory */
18+
$quoteFactory = $objectManager->get(QuoteFactory::class);
19+
/** @var QuoteRepository $quoteRepository */
20+
$quoteRepository = $objectManager->get(QuoteRepository::class);
21+
22+
$quotes = [
23+
'quote for first store' => [
24+
'store' => 1,
25+
],
26+
'quote for second store' => [
27+
'store' => 2,
28+
],
29+
];
30+
31+
foreach ($quotes as $quoteData) {
32+
$quote = $quoteFactory->create();
33+
$quote->setStoreId($quoteData['store']);
34+
$quoteRepository->save($quote);
35+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
use Magento\Framework\Api\SearchCriteriaBuilder;
9+
use Magento\Framework\Registry;
10+
use Magento\Quote\Model\QuoteRepository;
11+
use Magento\TestFramework\Helper\Bootstrap;
12+
use Magento\TestFramework\ObjectManager;
13+
14+
/** @var ObjectManager $objectManager */
15+
$objectManager = Bootstrap::getObjectManager();
16+
17+
/** @var Registry $registry */
18+
$registry = $objectManager->get(Registry::class);
19+
$registry->unregister('isSecureArea');
20+
$registry->register('isSecureArea', true);
21+
22+
/** @var QuoteRepository $quoteRepository */
23+
$quoteRepository = $objectManager->get(QuoteRepository::class);
24+
/** @var SearchCriteriaBuilder $searchCriteriaBuilder */
25+
$searchCriteriaBuilder = $objectManager->get(SearchCriteriaBuilder::class);
26+
$searchCriteria = $searchCriteriaBuilder->create();
27+
$items = $quoteRepository->getList($searchCriteria)
28+
->getItems();
29+
foreach ($items as $item) {
30+
$quoteRepository->delete($item);
31+
}
32+
33+
$registry->unregister('isSecureArea');
34+
$registry->register('isSecureArea', false);
35+
36+
require dirname(dirname(__DIR__)) . '/Store/_files/second_store_rollback.php';

0 commit comments

Comments
 (0)