Skip to content

Commit 51e0062

Browse files
committed
MC-21933: Possible type mismatch in product collection
1 parent 843458a commit 51e0062

File tree

1 file changed

+46
-4
lines changed
  • dev/tests/integration/testsuite/Magento/Catalog/Model/ResourceModel/Product

1 file changed

+46
-4
lines changed

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)