Skip to content

Commit edeb33d

Browse files
MAGETWO-67458: [FT] \Magento\Customer\Test\TestCase\CreateCustomerBackendEntityTest fails
2 parents 2441cc8 + 67ec6f9 commit edeb33d

File tree

53 files changed

+1694
-604
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+1694
-604
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\FilterProcessor;
7+
8+
use Magento\Catalog\Model\ResourceModel\Product\Collection;
9+
use Magento\Framework\Api\Filter;
10+
use Magento\Framework\Api\SearchCriteria\CollectionProcessor\FilterProcessor\CustomFilterInterface;
11+
use Magento\Framework\Data\Collection\AbstractDb;
12+
13+
class ProductStoreFilter implements CustomFilterInterface
14+
{
15+
/**
16+
* Apply store Filter to Product Collection
17+
*
18+
* @param Filter $filter
19+
* @param AbstractDb $collection
20+
* @return bool Whether the filter is applied
21+
*/
22+
public function apply(Filter $filter, AbstractDb $collection)
23+
{
24+
/** @var Collection $collection */
25+
$collection->addStoreFilter($filter->getValue());
26+
return true;
27+
}
28+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\FilterProcessor;
7+
8+
use Magento\Catalog\Model\ResourceModel\Product\Collection;
9+
use Magento\Framework\Api\Filter;
10+
use Magento\Framework\Api\SearchCriteria\CollectionProcessor\FilterProcessor\CustomFilterInterface;
11+
use Magento\Framework\Data\Collection\AbstractDb;
12+
13+
class ProductWebsiteFilter implements CustomFilterInterface
14+
{
15+
/**
16+
* Apply website Filter to Product Collection
17+
*
18+
* @param Filter $filter
19+
* @param AbstractDb $collection
20+
* @return bool Whether the filter is applied
21+
*/
22+
public function apply(Filter $filter, AbstractDb $collection)
23+
{
24+
$value = $filter->getValue();
25+
if (strpos($value, ',') !== false) {
26+
$value = explode(',', $value);
27+
}
28+
/** @var Collection $collection */
29+
$collection->addWebsiteFilter($value);
30+
return true;
31+
}
32+
}

app/code/Magento/Catalog/Model/Product/Copier.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,15 @@ public function copy(\Magento\Catalog\Model\Product $product)
5454
$product->getWebsiteIds();
5555
$product->getCategoryIds();
5656

57+
/** @var \Magento\Framework\EntityManager\EntityMetadataInterface $metadata */
58+
$metadata = $this->getMetadataPool()->getMetadata(ProductInterface::class);
59+
5760
/** @var \Magento\Catalog\Model\Product $duplicate */
5861
$duplicate = $this->productFactory->create();
5962
$duplicate->setData($product->getData());
6063
$duplicate->setOptions([]);
6164
$duplicate->setIsDuplicate(true);
62-
$duplicate->setOriginalId($product->getEntityId());
65+
$duplicate->setOriginalLinkId($product->getData($metadata->getLinkField()));
6366
$duplicate->setStatus(\Magento\Catalog\Model\Product\Attribute\Source\Status::STATUS_DISABLED);
6467
$duplicate->setCreatedAt(null);
6568
$duplicate->setUpdatedAt(null);
@@ -81,7 +84,6 @@ public function copy(\Magento\Catalog\Model\Product $product)
8184
}
8285
} while (!$isDuplicateSaved);
8386
$this->getOptionRepository()->duplicate($product, $duplicate);
84-
$metadata = $this->getMetadataPool()->getMetadata(ProductInterface::class);
8587
$product->getResource()->duplicate(
8688
$product->getData($metadata->getLinkField()),
8789
$duplicate->getData($metadata->getLinkField())

app/code/Magento/Catalog/Model/Product/Gallery/CreateHandler.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ protected function duplicate($product)
297297
$this->resourceModel->duplicate(
298298
$this->getAttribute()->getAttributeId(),
299299
isset($mediaGalleryData['duplicate']) ? $mediaGalleryData['duplicate'] : [],
300-
$product->getOriginalId(),
300+
$product->getOriginalLinkId(),
301301
$product->getData($this->metadata->getLinkField())
302302
);
303303

app/code/Magento/Catalog/Model/ProductRepository.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -564,6 +564,9 @@ public function save(\Magento\Catalog\Api\Data\ProductInterface $product, $saveO
564564
$this->resourceModel->getLinkField(),
565565
$existingProduct->getData($this->resourceModel->getLinkField())
566566
);
567+
if (!$product->hasData(Product::STATUS)) {
568+
$product->setStatus($existingProduct->getStatus());
569+
}
567570
} catch (NoSuchEntityException $e) {
568571
$existingProduct = null;
569572
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Catalog\Test\Unit\Model\Api\SearchCriteria\CollectionProcessor\FilterProcessor;
7+
8+
use Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\FilterProcessor\ProductWebsiteFilter;
9+
use Magento\Catalog\Model\ResourceModel\Product\Collection;
10+
use Magento\Framework\Api\Filter;
11+
12+
class ProductWebsiteFilterTest extends \PHPUnit_Framework_TestCase
13+
{
14+
/** @var ProductWebsiteFilter */
15+
private $model;
16+
17+
protected function setUp()
18+
{
19+
$this->model = new ProductWebsiteFilter();
20+
}
21+
22+
public function testApply()
23+
{
24+
/** @var Filter|\PHPUnit_Framework_MockObject_MockObject $filterMock */
25+
$filterMock = $this->getMockBuilder(Filter::class)
26+
->disableOriginalConstructor()
27+
->getMock();
28+
29+
/** @var Collection|\PHPUnit_Framework_MockObject_MockObject $collectionMock */
30+
$collectionMock = $this->getMockBuilder(Collection::class)
31+
->disableOriginalConstructor()
32+
->getMock();
33+
34+
$filterMock->expects($this->once())
35+
->method('getValue')
36+
->willReturn('1,2');
37+
38+
$collectionMock->expects($this->once())
39+
->method('addWebsiteFilter')
40+
->with(['1', '2']);
41+
42+
$this->assertTrue($this->model->apply($filterMock, $collectionMock));
43+
}
44+
}

app/code/Magento/Catalog/Test/Unit/Model/Product/CopierTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public function testCopy()
9898
'setOptions',
9999
'getData',
100100
'setIsDuplicate',
101-
'setOriginalId',
101+
'setOriginalLinkId',
102102
'setStatus',
103103
'setCreatedAt',
104104
'setUpdatedAt',
@@ -117,7 +117,7 @@ public function testCopy()
117117

118118
$duplicateMock->expects($this->once())->method('setOptions')->with([]);
119119
$duplicateMock->expects($this->once())->method('setIsDuplicate')->with(true);
120-
$duplicateMock->expects($this->once())->method('setOriginalId')->with(1);
120+
$duplicateMock->expects($this->once())->method('setOriginalLinkId')->with(1);
121121
$duplicateMock->expects(
122122
$this->once()
123123
)->method(

app/code/Magento/Catalog/etc/di.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -835,6 +835,8 @@
835835
<arguments>
836836
<argument name="customFilters" xsi:type="array">
837837
<item name="category_id" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\FilterProcessor\ProductCategoryFilter</item>
838+
<item name="store" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\FilterProcessor\ProductStoreFilter</item>
839+
<item name="website_id" xsi:type="object">Magento\Catalog\Model\Api\SearchCriteria\CollectionProcessor\FilterProcessor\ProductWebsiteFilter</item>
838840
</argument>
839841
</arguments>
840842
</virtualType>

app/code/Magento/Catalog/view/adminhtml/ui_component/category_form.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@
193193
<item name="add_variables" xsi:type="boolean">false</item>
194194
<item name="add_widgets" xsi:type="boolean">false</item>
195195
<item name="add_images" xsi:type="boolean">false</item>
196+
<item name="add_directives" xsi:type="boolean">true</item>
196197
</item>
197198
<item name="source" xsi:type="string">category</item>
198199
</item>

app/code/Magento/Cron/Observer/ProcessCronQueueObserver.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
namespace Magento\Cron\Observer;
1111

1212
use Magento\Framework\App\State;
13-
use Magento\Framework\Console\CLI;
13+
use Magento\Framework\Console\Cli;
1414
use Magento\Framework\Event\ObserverInterface;
1515
use \Magento\Cron\Model\Schedule;
1616

@@ -188,7 +188,7 @@ public function execute(\Magento\Framework\Event\Observer $observer)
188188
) == 1
189189
)) {
190190
$this->_shell->execute(
191-
$phpPath . ' %s cron:run --group=' . $groupId . ' --' . CLI::INPUT_KEY_BOOTSTRAP . '='
191+
$phpPath . ' %s cron:run --group=' . $groupId . ' --' . Cli::INPUT_KEY_BOOTSTRAP . '='
192192
. self::STANDALONE_PROCESS_STARTED . '=1',
193193
[
194194
BP . '/bin/magento'

0 commit comments

Comments
 (0)