Skip to content

Commit c7f8fe5

Browse files
committed
MAGETWO-63945: Add extension point to sales grid indexer
- Refactoring according CR
1 parent f4eb72f commit c7f8fe5

File tree

8 files changed

+36
-180
lines changed

8 files changed

+36
-180
lines changed

app/code/Magento/Sales/Model/ResourceModel/AbstractGrid.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ public function purge($value, $field = null)
9090
*
9191
* @param string $default
9292
* @return string
93-
* @deprecated unused
93+
* @deprecated this method is not used in abstract model but only in single child so
94+
* this deprecation is a part of cleaning abstract classes.
9495
* @see \Magento\Sales\Model\ResourceModel\Provider\UpdatedIdListProvider
9596
*/
9697
protected function getLastUpdatedAtValue($default = '0000-00-00 00:00:00')

app/code/Magento/Sales/Model/ResourceModel/Grid.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use Magento\Framework\App\ObjectManager;
99
use Magento\Framework\DB\Adapter\AdapterInterface;
1010
use Magento\Framework\Model\ResourceModel\Db\Context;
11-
use Magento\Sales\Model\ResourceModel\Provider\IdListProviderInterface;
11+
use Magento\Sales\Model\ResourceModel\Provider\NotSyncedDataProviderInterface;
1212

1313
/**
1414
* Class Grid
@@ -41,7 +41,7 @@ class Grid extends AbstractGrid
4141
protected $columns;
4242

4343
/**
44-
* @var IdListProviderInterface
44+
* @var NotSyncedDataProviderInterface
4545
*/
4646
private $idListProvider;
4747

@@ -53,7 +53,7 @@ class Grid extends AbstractGrid
5353
* @param array $joins
5454
* @param array $columns
5555
* @param string $connectionName
56-
* @param IdListProviderInterface $idListProvider
56+
* @param NotSyncedDataProviderInterface $idListProvider
5757
*/
5858
public function __construct(
5959
Context $context,
@@ -63,14 +63,14 @@ public function __construct(
6363
array $joins = [],
6464
array $columns = [],
6565
$connectionName = null,
66-
IdListProviderInterface $idListProvider = null
66+
NotSyncedDataProviderInterface $idListProvider = null
6767
) {
6868
$this->mainTableName = $mainTableName;
6969
$this->gridTableName = $gridTableName;
7070
$this->orderIdField = $orderIdField;
7171
$this->joins = $joins;
7272
$this->columns = $columns;
73-
$this->idListProvider = $idListProvider ?: ObjectManager::getInstance()->get(IdListProviderInterface::class);
73+
$this->idListProvider = $idListProvider ?: ObjectManager::getInstance()->get(NotSyncedDataProviderInterface::class);
7474
parent::__construct($context, $connectionName);
7575
}
7676

app/code/Magento/Sales/Model/ResourceModel/Provider/IdListProvider.php renamed to app/code/Magento/Sales/Model/ResourceModel/Provider/NotSyncedDataProvider.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
use Magento\Framework\ObjectManager\TMapFactory;
99

1010
/**
11-
* Implements IdListProviderInterface as composite
11+
* Implements NotSyncedDataProviderInterface as composite
1212
*/
13-
class IdListProvider implements IdListProviderInterface
13+
class NotSyncedDataProvider implements NotSyncedDataProviderInterface
1414
{
1515
/**
16-
* @var IdListProviderInterface[]
16+
* @var NotSyncedDataProviderInterface[]
1717
*/
1818
private $providers;
1919

@@ -28,21 +28,21 @@ public function __construct(
2828
$this->providers = $tmapFactory->create(
2929
[
3030
'array' => $providers,
31-
'type' => IdListProviderInterface::class
31+
'type' => NotSyncedDataProviderInterface::class
3232
]
3333
);
3434
}
3535

3636
/**
3737
* @inheritDoc
3838
*/
39-
public function get($mainTableName, $gridTableName)
39+
public function getIds($mainTableName, $gridTableName)
4040
{
4141
$result = [];
4242
foreach ($this->providers as $provider) {
4343
$result = array_merge($result, $provider->get($mainTableName, $gridTableName));
4444
}
4545

46-
return $result;
46+
return array_unique($result);
4747
}
4848
}

app/code/Magento/Sales/Model/ResourceModel/Provider/IdListProviderInterface.php renamed to app/code/Magento/Sales/Model/ResourceModel/Provider/NotSyncedDataProviderInterface.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
/**
99
* Interface provides entities id list that should be updated in grid
1010
*/
11-
interface IdListProviderInterface
11+
interface NotSyncedDataProviderInterface
1212
{
1313
/**
1414
* Returns id list of entities for adding or updating in grid.
@@ -17,5 +17,5 @@ interface IdListProviderInterface
1717
* @param string $gridTableName grid table name
1818
* @return array
1919
*/
20-
public function get($mainTableName, $gridTableName);
20+
public function getIds($mainTableName, $gridTableName);
2121
}

app/code/Magento/Sales/Model/ResourceModel/Provider/UpdatedIdListProvider.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
/**
1212
* Provides latest updated entities ids list
1313
*/
14-
class UpdatedIdListProvider implements IdListProviderInterface
14+
class UpdatedIdListProvider implements NotSyncedDataProviderInterface
1515
{
1616
/**
1717
* @var ResourceConnection
@@ -24,7 +24,7 @@ class UpdatedIdListProvider implements IdListProviderInterface
2424
private $connection;
2525

2626
/**
27-
* IdListProvider constructor.
27+
* NotSyncedDataProvider constructor.
2828
* @param ResourceConnection $resourceConnection
2929
*/
3030
public function __construct(
@@ -36,7 +36,7 @@ public function __construct(
3636
/**
3737
* @inheritdoc
3838
*/
39-
public function get($mainTableName, $gridTableName)
39+
public function getIds($mainTableName, $gridTableName)
4040
{
4141
$lastUpdatedAt = $this->getLastUpdatedAtValue($gridTableName);
4242
$select = $this->getConnection()->select()

app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Provider/IdListProviderTest.php renamed to app/code/Magento/Sales/Test/Unit/Model/ResourceModel/Provider/NotSyncedDataProviderTest.php

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77

88
use Magento\Framework\ObjectManager\TMap;
99
use Magento\Framework\ObjectManager\TMapFactory;
10-
use Magento\Sales\Model\ResourceModel\Provider\IdListProvider;
11-
use Magento\Sales\Model\ResourceModel\Provider\IdListProviderInterface;
10+
use Magento\Sales\Model\ResourceModel\Provider\NotSyncedDataProvider;
11+
use Magento\Sales\Model\ResourceModel\Provider\NotSyncedDataProviderInterface;
1212
use PHPUnit_Framework_MockObject_MockObject as MockObject;
1313

1414
/**
15-
* Class IdListProviderTest
15+
* Class NotSyncedDataProviderTest
1616
*/
17-
class IdListProviderTest extends \PHPUnit_Framework_TestCase
17+
class NotSyncedDataProviderTest extends \PHPUnit_Framework_TestCase
1818
{
1919
public function testGetEmpty()
2020
{
@@ -32,20 +32,20 @@ public function testGetEmpty()
3232
->with(
3333
[
3434
'array' => [],
35-
'type' => IdListProviderInterface::class
35+
'type' => NotSyncedDataProviderInterface::class
3636
]
3737
)
3838
->willReturn($tMap);
3939
$tMap->expects(static::once())
4040
->method('getIterator')
4141
->willReturn(new \ArrayIterator([]));
4242

43-
$provider = new IdListProvider($tMapFactory, []);
44-
static::assertEquals([], $provider->get('main_table', 'grid_table'));
43+
$provider = new NotSyncedDataProvider($tMapFactory, []);
44+
static::assertEquals([], $provider->getIds('main_table', 'grid_table'));
4545
}
4646

4747
/**
48-
* @covers \Magento\Sales\Model\ResourceModel\Provider\IdListProvider::get
48+
* @covers \Magento\Sales\Model\ResourceModel\Provider\NotSyncedDataProvider::get
4949
*/
5050
public function testGet()
5151
{
@@ -58,42 +58,42 @@ public function testGet()
5858
->disableOriginalConstructor()
5959
->getMock();
6060

61-
$provider1 = $this->getMockBuilder(IdListProviderInterface::class)
61+
$provider1 = $this->getMockBuilder(NotSyncedDataProviderInterface::class)
6262
->getMockForAbstractClass();
6363
$provider1->expects(static::once())
6464
->method('get')
6565
->willReturn([1, 2]);
6666

67-
$provider2 = $this->getMockBuilder(IdListProviderInterface::class)
67+
$provider2 = $this->getMockBuilder(NotSyncedDataProviderInterface::class)
6868
->getMockForAbstractClass();
6969
$provider2->expects(static::once())
7070
->method('get')
71-
->willReturn([3, 4]);
71+
->willReturn([2, 3, 4]);
7272

7373
$tMapFactory->expects(static::once())
7474
->method('create')
7575
->with(
7676
[
7777
'array' => [
78-
'provider1' => IdListProviderInterface::class,
79-
'provider2' => IdListProviderInterface::class
78+
'provider1' => NotSyncedDataProviderInterface::class,
79+
'provider2' => NotSyncedDataProviderInterface::class
8080
],
81-
'type' => IdListProviderInterface::class
81+
'type' => NotSyncedDataProviderInterface::class
8282
]
8383
)
8484
->willReturn($tMap);
8585
$tMap->expects(static::once())
8686
->method('getIterator')
8787
->willReturn(new \ArrayIterator([$provider1, $provider2]));
8888

89-
$provider = new IdListProvider(
89+
$provider = new NotSyncedDataProvider(
9090
$tMapFactory,
9191
[
92-
'provider1' => IdListProviderInterface::class,
93-
'provider2' => IdListProviderInterface::class,
92+
'provider1' => NotSyncedDataProviderInterface::class,
93+
'provider2' => NotSyncedDataProviderInterface::class,
9494
]
9595
);
9696

97-
static::assertEquals([1, 2, 3, 4], $provider->get('main_table', 'grid_table'));
97+
static::assertEquals([1, 2, 3, 4], array_values($provider->getIds('main_table', 'grid_table')));
9898
}
9999
}

dev/tests/integration/testsuite/Magento/Sales/Model/ResourceModel/GridTest.php

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

dev/tests/integration/testsuite/Magento/Sales/_files/order_async.php

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

0 commit comments

Comments
 (0)