Skip to content

Commit 0679352

Browse files
author
Serhiy Shkolyarenko
committed
MAGETWO-49460: CartRepositoryInterface can't be used twice
added integration test
1 parent d974a0b commit 0679352

File tree

1 file changed

+54
-7
lines changed

1 file changed

+54
-7
lines changed

dev/tests/integration/testsuite/Magento/Quote/Model/QuoteRepositoryTest.php

Lines changed: 54 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,77 @@
66
namespace Magento\Quote\Model;
77

88
use Magento\TestFramework\Helper\Bootstrap;
9+
use Magento\Framework\Api\FilterBuilder;
10+
use Magento\Quote\Api\CartRepositoryInterface;
11+
use Magento\Framework\Api\SearchCriteriaBuilder;
12+
use Magento\Quote\Api\Data\CartInterface;
913

1014
class QuoteRepositoryTest extends \PHPUnit_Framework_TestCase
1115
{
1216
/**
1317
* @magentoDataFixture Magento/Sales/_files/quote.php
1418
*/
1519
public function testGetList()
20+
{
21+
$searchCriteria = $this->getSearchCriteria('test01');
22+
/** @var \Magento\Quote\Api\CartRepositoryInterface $quoteRepository */
23+
$quoteRepository = Bootstrap::getObjectManager()->create(CartRepositoryInterface::class);
24+
$searchResult = $quoteRepository->getList($searchCriteria);
25+
$this->performAssertions($searchResult);
26+
}
27+
28+
/**
29+
* @magentoDataFixture Magento/Sales/_files/quote.php
30+
*/
31+
public function testGetListDoubleCall()
32+
{
33+
$searchCriteria1 = $this->getSearchCriteria('test01');
34+
$searchCriteria2 = $this->getSearchCriteria('test02');
35+
36+
/** @var \Magento\Quote\Api\CartRepositoryInterface $quoteRepository */
37+
$quoteRepository = Bootstrap::getObjectManager()->create(CartRepositoryInterface::class);
38+
$searchResult = $quoteRepository->getList($searchCriteria1);
39+
$this->performAssertions($searchResult);
40+
$searchResult = $quoteRepository->getList($searchCriteria2);
41+
$items = $searchResult->getItems();
42+
$this->assertEmpty($items);
43+
}
44+
45+
/**
46+
* @param string $filterValue
47+
* @return \Magento\Framework\Api\SearchCriteria
48+
*/
49+
private function getSearchCriteria($filterValue)
50+
{
51+
/** @var \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder */
52+
$searchCriteriaBuilder = Bootstrap::getObjectManager()->create(SearchCriteriaBuilder::class);
53+
$filterBuilder = Bootstrap::getObjectManager()->create(FilterBuilder::class);
54+
$filters = [];
55+
$filters[] = $filterBuilder
56+
->setField('reserved_order_id')
57+
->setConditionType('=')
58+
->setValue($filterValue)
59+
->create();
60+
$searchCriteriaBuilder->addFilters($filters);
61+
62+
return $searchCriteriaBuilder->create();
63+
}
64+
65+
/**
66+
* @param object $searchResult
67+
*/
68+
protected function performAssertions($searchResult)
1669
{
1770
$expectedExtensionAttributes = [
1871
'firstname' => 'firstname',
1972
'lastname' => 'lastname',
2073
'email' => '[email protected]'
2174
];
2275

23-
/** @var \Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder */
24-
$searchCriteriaBuilder = Bootstrap::getObjectManager()->create('Magento\Framework\Api\SearchCriteriaBuilder');
25-
26-
/** @var \Magento\Quote\Api\CartRepositoryInterface $quoteRepository */
27-
$quoteRepository = Bootstrap::getObjectManager()->create('Magento\Quote\Api\CartRepositoryInterface');
28-
$searchResult = $quoteRepository->getList($searchCriteriaBuilder->create());
2976
$items = $searchResult->getItems();
3077
/** @var \Magento\Quote\Api\Data\CartInterface $actualQuote */
3178
$actualQuote = array_pop($items);
32-
$this->assertInstanceOf('Magento\Quote\Api\Data\CartInterface', $actualQuote);
79+
$this->assertInstanceOf(CartInterface::class, $actualQuote);
3380
$this->assertEquals('test01', $actualQuote->getReservedOrderId());
3481
/** @var \Magento\User\Api\Data\UserInterface $testAttribute */
3582
$testAttribute = $actualQuote->getExtensionAttributes()->getQuoteTestAttribute();

0 commit comments

Comments
 (0)