Skip to content

Commit 11b4c70

Browse files
committed
MAGETWO-95723: Product Review "Save and Next" and "Save and Previous" not working
- Fixed query ordering - Added test coverage
1 parent 27b3d48 commit 11b4c70

File tree

2 files changed

+69
-5
lines changed
  • app/code/Magento/Review/Model/ResourceModel/Review/Product
  • dev/tests/integration/testsuite/Magento/Review/Model/ResourceModel/Review/Product

2 files changed

+69
-5
lines changed

app/code/Magento/Review/Model/ResourceModel/Review/Product/Collection.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,6 @@ public function getResultingIds()
406406
$idsSelect->reset(Select::LIMIT_COUNT);
407407
$idsSelect->reset(Select::LIMIT_OFFSET);
408408
$idsSelect->reset(Select::COLUMNS);
409-
$idsSelect->reset(Select::ORDER);
410409
$idsSelect->columns('rt.review_id');
411410
return $this->getConnection()->fetchCol($idsSelect);
412411
}

dev/tests/integration/testsuite/Magento/Review/Model/ResourceModel/Review/Product/CollectionTest.php

Lines changed: 69 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,85 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
declare(strict_types=1);
7+
68
namespace Magento\Review\Model\ResourceModel\Review\Product;
79

810
class CollectionTest extends \PHPUnit\Framework\TestCase
911
{
1012
/**
13+
* @param string $status
14+
* @param int $expectedCount
15+
* @param string $sortAttribute
16+
* @param string $dir
17+
* @param callable $assertion
18+
* @dataProvider sortOrderAssertionsDataProvider
1119
* @magentoDataFixture Magento/Review/_files/different_reviews.php
1220
*/
13-
public function testGetResultingIds()
14-
{
21+
public function testGetResultingIds(
22+
?string $status,
23+
int $expectedCount,
24+
string $sortAttribute,
25+
string $dir,
26+
callable $assertion
27+
) {
28+
/**
29+
* @var $collection \Magento\Review\Model\ResourceModel\Review\Product\Collection
30+
*/
1531
$collection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
1632
\Magento\Review\Model\ResourceModel\Review\Product\Collection::class
1733
);
18-
$collection->addStatusFilter(\Magento\Review\Model\Review::STATUS_APPROVED);
34+
if ($status) {
35+
$collection->addStatusFilter($status);
36+
}
37+
$collection->setOrder($sortAttribute, $dir);
1938
$actual = $collection->getResultingIds();
20-
$this->assertCount(2, $actual);
39+
$this->assertCount($expectedCount, $actual);
40+
$assertion($actual);
41+
}
42+
43+
/**
44+
* @return array
45+
*/
46+
public function sortOrderAssertionsDataProvider() :array
47+
{
48+
return [
49+
[
50+
\Magento\Review\Model\Review::STATUS_APPROVED,
51+
2,
52+
'rt.review_id',
53+
'DESC',
54+
function (array $actual) :void {
55+
$this->assertLessThan($actual[0], $actual[1]);
56+
}
57+
],
58+
[
59+
\Magento\Review\Model\Review::STATUS_APPROVED,
60+
2,
61+
'rt.review_id',
62+
'ASC',
63+
function (array $actual) :void {
64+
$this->assertLessThan($actual[1], $actual[0]);
65+
}
66+
],
67+
[
68+
\Magento\Review\Model\Review::STATUS_APPROVED,
69+
2,
70+
'rt.created_at',
71+
'ASC',
72+
function (array $actual) :void {
73+
$this->assertLessThan($actual[1], $actual[0]);
74+
}
75+
],
76+
[
77+
null,
78+
3,
79+
'rt.review_id',
80+
'ASC',
81+
function (array $actual) :void {
82+
$this->assertLessThan($actual[1], $actual[0]);
83+
}
84+
]
85+
];
2186
}
2287
}

0 commit comments

Comments
 (0)