Skip to content

Commit 083452a

Browse files
committed
Merge remote-tracking branch 'magento-mpi/MC-21933' into MPI-PR-2019-10-25
2 parents 20541b0 + 51e0062 commit 083452a

File tree

2 files changed

+50
-8
lines changed

2 files changed

+50
-8
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2520,10 +2520,10 @@ public function getPricesCount()
25202520
/**
25212521
* Add is_saleable attribute to filter
25222522
*
2523-
* @param array|null $condition
2523+
* @param mixed $condition
25242524
* @return $this
25252525
*/
2526-
private function addIsSaleableAttributeToFilter(?array $condition): self
2526+
private function addIsSaleableAttributeToFilter($condition): self
25272527
{
25282528
$columns = $this->getSelect()->getPart(Select::COLUMNS);
25292529
foreach ($columns as $columnEntry) {
@@ -2551,10 +2551,10 @@ private function addIsSaleableAttributeToFilter(?array $condition): self
25512551
* Add tier price attribute to filter
25522552
*
25532553
* @param string $attribute
2554-
* @param array|null $condition
2554+
* @param mixed $condition
25552555
* @return $this
25562556
*/
2557-
private function addTierPriceAttributeToFilter(string $attribute, ?array $condition): self
2557+
private function addTierPriceAttributeToFilter(string $attribute, $condition): self
25582558
{
25592559
$attrCode = $attribute;
25602560
$connection = $this->getConnection();

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

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -277,15 +277,57 @@ public function testAddAttributeToFilterAffectsGetSize(): void
277277
}
278278

279279
/**
280-
* Add tier price attribute filter to collection
280+
* Add tier price attribute filter to collection with different condition types.
281281
*
282+
* @param mixed $condition
282283
* @magentoDataFixture Magento/Catalog/Model/ResourceModel/_files/few_simple_products.php
283284
* @magentoDataFixture Magento/Catalog/Model/ResourceModel/_files/product_simple.php
285+
*
286+
* @dataProvider addAttributeTierPriceToFilterDataProvider
287+
*/
288+
public function testAddAttributeTierPriceToFilter($condition): void
289+
{
290+
$this->collection->addAttributeToFilter('tier_price', $condition);
291+
$this->assertEquals(1, $this->collection->getSize());
292+
}
293+
294+
/**
295+
* @return array
296+
*/
297+
public function addAttributeTierPriceToFilterDataProvider(): array
298+
{
299+
return [
300+
'condition is array' => [['eq' => 8]],
301+
'condition is string' => ['8'],
302+
'condition is int' => [8],
303+
'condition is null' => [null]
304+
];
305+
}
306+
307+
/**
308+
* Add is_saleable attribute filter to collection with different condition types.
309+
*
310+
* @param mixed $condition
311+
* @magentoDataFixture Magento/Catalog/Model/ResourceModel/_files/product_simple.php
312+
*
313+
* @dataProvider addAttributeIsSaleableToFilterDataProvider
284314
*/
285-
public function testAddAttributeTierPriceToFilter(): void
315+
public function testAddAttributeIsSaleableToFilter($condition): void
286316
{
287-
$this->assertEquals(11, $this->collection->getSize());
288-
$this->collection->addAttributeToFilter('tier_price', ['gt' => 0]);
317+
$this->collection->addAttributeToFilter('is_saleable', $condition);
289318
$this->assertEquals(1, $this->collection->getSize());
290319
}
320+
321+
/**
322+
* @return array
323+
*/
324+
public function addAttributeIsSaleableToFilterDataProvider(): array
325+
{
326+
return [
327+
'condition is array' => [['eq' => 1]],
328+
'condition is string' => ['1'],
329+
'condition is int' => [1],
330+
'condition is null' => [null]
331+
];
332+
}
291333
}

0 commit comments

Comments
 (0)