Skip to content

Commit dcc8684

Browse files
committed
MAGETWO-70683: New registered customer not showed in admin customer grid
- add integration test
1 parent 4b33a28 commit dcc8684

File tree

2 files changed

+79
-0
lines changed

2 files changed

+79
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Customer\Model\ResourceModel\Grid;
8+
9+
use Magento\Customer\Api\CustomerRepositoryInterface;
10+
use Magento\Customer\Api\Data\CustomerInterface;
11+
use Magento\Framework\Indexer\IndexerRegistry;
12+
use Magento\TestFramework\Helper\Bootstrap;
13+
14+
/**
15+
* Customer grid collection tests.
16+
*/
17+
class CollectionTest extends \Magento\TestFramework\Indexer\TestCase
18+
{
19+
/** @var \Magento\Framework\ObjectManagerInterface */
20+
private $objectManager;
21+
22+
/** @var IndexerRegistry */
23+
private $indexerRegistry;
24+
25+
/** @var \Magento\Customer\Model\ResourceModel\Grid\Collection */
26+
private $targetObject;
27+
28+
/** @var CustomerRepositoryInterface */
29+
private $customerRepository;
30+
31+
protected function setUp()
32+
{
33+
$this->objectManager = Bootstrap::getObjectManager();
34+
$this->indexerRegistry = $this->objectManager->create(IndexerRegistry::class);
35+
$this->targetObject = $this->objectManager
36+
->create(\Magento\Customer\Model\ResourceModel\Grid\Collection::class);
37+
$this->customerRepository = $this->objectManager->create(CustomerRepositoryInterface::class);
38+
}
39+
40+
/**
41+
* Customer Grid Indexer can't work in 'Update on Schedule' mode.
42+
*
43+
* @magentoDataFixture Magento/Customer/_files/customer_grid_indexer_enabled_update_on_schedule.php
44+
* @magentoDataFixture Magento/Customer/_files/customer_sample.php
45+
*/
46+
public function testGetItemByIdForUpdateOnSchedule()
47+
{
48+
/** Verify after first save */
49+
/** @var CustomerInterface $newCustomer */
50+
$newCustomer = $this->customerRepository->get('customer@example.com');
51+
/** @var CustomerInterface $item */
52+
$item = $this->targetObject->getItemById($newCustomer->getId());
53+
$this->assertNotEmpty($item);
54+
$this->assertSame($newCustomer->getEmail(), $item->getEmail());
55+
$this->assertSame('test street test city Armed Forces Middle East 01001', $item->getBillingFull());
56+
57+
/** Verify after update */
58+
$newCustomer->setEmail('customer_updated@example.com');
59+
$this->customerRepository->save($newCustomer);
60+
$this->targetObject->clear();
61+
$item = $this->targetObject->getItemById($newCustomer->getId());
62+
$this->assertSame($newCustomer->getEmail(), $item->getEmail());
63+
64+
/** Rollback indexer to default state */
65+
$indexer = $this->indexerRegistry->get(\Magento\Customer\Model\Customer::CUSTOMER_GRID_INDEXER_ID);
66+
$indexer->setScheduled(false);
67+
}
68+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
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+
/** @var Magento\Framework\Indexer\IndexerRegistry $indexerRegistry */
9+
$indexerRegistry = $objectManager->create(\Magento\Framework\Indexer\IndexerRegistry::class);
10+
$indexer = $indexerRegistry->get(\Magento\Customer\Model\Customer::CUSTOMER_GRID_INDEXER_ID);
11+
$indexer->setScheduled(true);

0 commit comments

Comments
 (0)