Skip to content

Commit 0a939d4

Browse files
author
Yuri Kovsher
committed
Merge remote-tracking branch 'remotes/tango-ce/MAGETWO-33399' into MAGETWO-33812
2 parents d16b8c1 + 0ef857b commit 0a939d4

File tree

2 files changed

+35
-26
lines changed
  • app/code/Magento/CatalogWidget/Model/Rule/Condition
  • dev/tests/integration/testsuite/Magento/CatalogWidget/Model/Rule/Condition

2 files changed

+35
-26
lines changed

app/code/Magento/CatalogWidget/Model/Rule/Condition/Product.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,9 @@ protected function addNotGlobalAttribute(
204204
public function getMappedSqlField()
205205
{
206206
$result = '';
207-
if ($this->getAttributeObject()->isStatic()) {
207+
if ($this->getAttribute() == 'category_ids') {
208+
$result = parent::getMappedSqlField();
209+
} elseif ($this->getAttributeObject()->isStatic()) {
208210
$result = $this->getAttributeObject()->getAttributeCode();
209211
} elseif ($this->getAttributeObject()->isScopeGlobal()) {
210212
if (isset($this->joinedAttributes[$this->getAttribute()])) {

dev/tests/integration/testsuite/Magento/CatalogWidget/Model/Rule/Condition/ProductTest.php

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
1212
/**
1313
* @var \Magento\CatalogWidget\Model\Rule\Condition\Product
1414
*/
15-
protected $object;
15+
protected $conditionProduct;
1616

1717
/**
1818
* @var \Magento\Framework\ObjectManager
@@ -23,16 +23,14 @@ protected function setUp()
2323
{
2424
$this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
2525
$rule = $this->objectManager->create('Magento\CatalogWidget\Model\Rule');
26-
$this->object = $this->objectManager->create(
27-
'Magento\CatalogWidget\Model\Rule\Condition\Product'
28-
);
29-
$this->object->setRule($rule);
26+
$this->conditionProduct = $this->objectManager->create('Magento\CatalogWidget\Model\Rule\Condition\Product');
27+
$this->conditionProduct->setRule($rule);
3028
}
3129

3230
public function testLoadAttributeOptions()
3331
{
34-
$this->object->loadAttributeOptions();
35-
$options = $this->object->getAttributeOption();
32+
$this->conditionProduct->loadAttributeOptions();
33+
$options = $this->conditionProduct->getAttributeOption();
3634
$this->assertArrayHasKey('sku', $options);
3735
$this->assertArrayHasKey('attribute_set_id', $options);
3836
$this->assertArrayHasKey('category_ids', $options);
@@ -45,29 +43,29 @@ public function testLoadAttributeOptions()
4543
public function testAddGlobalAttributeToCollection()
4644
{
4745
$collection = $this->objectManager->create('Magento\Catalog\Model\Resource\Product\Collection');
48-
$this->object->setAttribute('special_price');
49-
$this->object->addToCollection($collection);
50-
$collectedAttributes = $this->object->getRule()->getCollectedAttributes();
46+
$this->conditionProduct->setAttribute('special_price');
47+
$this->conditionProduct->addToCollection($collection);
48+
$collectedAttributes = $this->conditionProduct->getRule()->getCollectedAttributes();
5149
$this->assertArrayHasKey('special_price', $collectedAttributes);
5250
$query = (string)$collection->getSelect();
5351
$this->assertContains('special_price', $query);
54-
$this->assertEquals('at_special_price.value', $this->object->getMappedSqlField());
52+
$this->assertEquals('at_special_price.value', $this->conditionProduct->getMappedSqlField());
5553
}
5654

5755
public function testAddNonGlobalAttributeToCollectionNoProducts()
5856
{
5957
$collection = $this->objectManager->create('Magento\Catalog\Model\Resource\Product\Collection');
60-
$this->object->setAttribute('visibility');
61-
$this->object->setOperator('()');
62-
$this->object->setValue('4');
63-
$this->object->addToCollection($collection);
64-
$collectedAttributes = $this->object->getRule()->getCollectedAttributes();
58+
$this->conditionProduct->setAttribute('visibility');
59+
$this->conditionProduct->setOperator('()');
60+
$this->conditionProduct->setValue('4');
61+
$this->conditionProduct->addToCollection($collection);
62+
$collectedAttributes = $this->conditionProduct->getRule()->getCollectedAttributes();
6563
$this->assertArrayHasKey('visibility', $collectedAttributes);
6664
$query = (string)$collection->getSelect();
6765
$this->assertNotContains('visibility', $query);
68-
$this->assertEquals('', $this->object->getMappedSqlField());
69-
$this->assertFalse($this->object->hasValueParsed());
70-
$this->assertFalse($this->object->hasValue());
66+
$this->assertEquals('', $this->conditionProduct->getMappedSqlField());
67+
$this->assertFalse($this->conditionProduct->hasValueParsed());
68+
$this->assertFalse($this->conditionProduct->hasValue());
7169
}
7270

7371
/**
@@ -76,14 +74,23 @@ public function testAddNonGlobalAttributeToCollectionNoProducts()
7674
public function testAddNonGlobalAttributeToCollection()
7775
{
7876
$collection = $this->objectManager->create('Magento\Catalog\Model\Resource\Product\Collection');
79-
$this->object->setAttribute('visibility');
80-
$this->object->setOperator('()');
81-
$this->object->setValue('4');
82-
$this->object->addToCollection($collection);
83-
$collectedAttributes = $this->object->getRule()->getCollectedAttributes();
77+
$this->conditionProduct->setAttribute('visibility');
78+
$this->conditionProduct->setOperator('()');
79+
$this->conditionProduct->setValue('4');
80+
$this->conditionProduct->addToCollection($collection);
81+
$collectedAttributes = $this->conditionProduct->getRule()->getCollectedAttributes();
8482
$this->assertArrayHasKey('visibility', $collectedAttributes);
8583
$query = (string)$collection->getSelect();
8684
$this->assertNotContains('visibility', $query);
87-
$this->assertEquals('e.entity_id', $this->object->getMappedSqlField());
85+
$this->assertEquals('e.entity_id', $this->conditionProduct->getMappedSqlField());
86+
}
87+
88+
/**
89+
* @magentoDataFixture Magento/Catalog/_files/product_simple.php
90+
*/
91+
public function testGetMappedSqlFieldCategoryIdsAttribute()
92+
{
93+
$this->conditionProduct->setAttribute('category_ids');
94+
$this->assertEquals('e.entity_id', $this->conditionProduct->getMappedSqlField());
8895
}
8996
}

0 commit comments

Comments
 (0)