Skip to content

Commit

Permalink
#27500 Migrate PHPUnit tests for CatalogImportExport module
Browse files Browse the repository at this point in the history
  • Loading branch information
lbajsarowicz committed Apr 23, 2020
1 parent c07b96d commit 49a8b34
Show file tree
Hide file tree
Showing 41 changed files with 579 additions and 409 deletions.
Original file line number Diff line number Diff line change
@@ -1,138 +1,156 @@
<?php
<?php declare(strict_types=1);
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\CatalogImportExport\Test\Unit\Model\Export;

use Magento\Catalog\Model\Product\LinkTypeProvider;
use Magento\CatalogImportExport\Model\Export\Product;
use Magento\CatalogImportExport\Model\Export\Product\Type\Factory;
use Magento\CatalogImportExport\Model\Export\RowCustomizer\Composite;
use Magento\Eav\Model\Config;
use Magento\Eav\Model\Entity\Collection\AbstractCollection;
use Magento\Eav\Model\Entity\Type;
use Magento\Framework\App\ResourceConnection;
use Magento\Framework\EntityManager\MetadataPool;
use Magento\Framework\Logger\Monolog;
use Magento\Framework\Stdlib\DateTime\Timezone;
use Magento\ImportExport\Model\Export\Adapter\AbstractAdapter;
use Magento\ImportExport\Model\Export\ConfigInterface;
use Magento\Store\Model\Store;
use Magento\Store\Model\StoreManager;
use Magento\Store\Model\StoreManagerInterface;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Psr\Log\LoggerInterface;

/**
* @SuppressWarnings(PHPMD)
*/
class ProductTest extends \PHPUnit\Framework\TestCase
class ProductTest extends TestCase
{
/**
* @var \Magento\Framework\Stdlib\DateTime\Timezone|\PHPUnit_Framework_MockObject_MockObject
* @var Timezone|MockObject
*/
protected $localeDate;

/**
* @var \Magento\Eav\Model\Config|\PHPUnit_Framework_MockObject_MockObject
* @var Config|MockObject
*/
protected $config;

/**
* @var \Magento\Framework\App\ResourceConnection|\PHPUnit_Framework_MockObject_MockObject
* @var ResourceConnection|MockObject
*/
protected $resource;

/**
* @var \Magento\Store\Model\StoreManagerInterface|\PHPUnit_Framework_MockObject_MockObject
* @var StoreManagerInterface|MockObject
*/
protected $storeManager;

/**
* @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject
* @var LoggerInterface|MockObject
*/
protected $logger;

/**
* @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject
* @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory|MockObject
*/
protected $collection;

/**
* @var \Magento\Eav\Model\Entity\Collection\AbstractCollection|\PHPUnit_Framework_MockObject_MockObject
* @var AbstractCollection|MockObject
*/
protected $abstractCollection;

/**
* @var \Magento\ImportExport\Model\Export\ConfigInterface|\PHPUnit_Framework_MockObject_MockObject
* @var ConfigInterface|MockObject
*/
protected $exportConfig;

/**
* @var \Magento\Catalog\Model\ResourceModel\ProductFactory|\PHPUnit_Framework_MockObject_MockObject
* @var \Magento\Catalog\Model\ResourceModel\ProductFactory|MockObject
*/
protected $productFactory;

/**
* @var \PHPUnit_Framework_MockObject_MockObject
* @var MockObject
*/
protected $attrSetColFactory;

/**
* @var \Magento\Catalog\Model\ResourceModel\Category\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject
* @var \Magento\Catalog\Model\ResourceModel\Category\CollectionFactory|MockObject
*/
protected $categoryColFactory;

/**
* @var \Magento\CatalogInventory\Model\ResourceModel\Stock\ItemFactory|\PHPUnit_Framework_MockObject_MockObject
* @var \Magento\CatalogInventory\Model\ResourceModel\Stock\ItemFactory|MockObject
*/
protected $itemFactory;

/**
* @var \PHPUnit_Framework_MockObject_MockObject
* @var MockObject
*/
protected $optionColFactory;

/**
* @var \PHPUnit_Framework_MockObject_MockObject
* @var MockObject
*/
protected $attributeColFactory;

/**
* @var \Magento\CatalogImportExport\Model\Export\Product\Type\Factory|\PHPUnit_Framework_MockObject_MockObject
* @var Factory|MockObject
*/
protected $typeFactory;

/**
* @var \Magento\Catalog\Model\Product\LinkTypeProvider|\PHPUnit_Framework_MockObject_MockObject
* @var LinkTypeProvider|MockObject
*/
protected $linkTypeProvider;

/**
* @var \Magento\CatalogImportExport\Model\Export\RowCustomizer\Composite|\PHPUnit_Framework_MockObject_MockObject
* @var Composite|MockObject
*/
protected $rowCustomizer;

/**
* @var \Magento\Framework\EntityManager\MetadataPool|\PHPUnit_Framework_MockObject_MockObject
* @var MetadataPool|MockObject
*/
protected $metadataPool;

/**
* @var \Magento\ImportExport\Model\Export\Adapter\AbstractAdapter| \PHPUnit_Framework_MockObject_MockObject
* @var AbstractAdapter|MockObject
*/
protected $writer;

/**
* @var \Magento\CatalogImportExport\Model\Export\Product|\PHPUnit_Framework_MockObject_MockObject
* @var Product|MockObject
*/
protected $product;

/**
* @var StubProduct|\Magento\CatalogImportExport\Model\Export\Product
* @var StubProduct|Product
*/
protected $object;

protected function setUp()
protected function setUp(): void
{
$this->localeDate = $this->createMock(\Magento\Framework\Stdlib\DateTime\Timezone::class);
$this->localeDate = $this->createMock(Timezone::class);

$this->config = $this->createPartialMock(\Magento\Eav\Model\Config::class, ['getEntityType']);
$type = $this->createMock(\Magento\Eav\Model\Entity\Type::class);
$this->config = $this->createPartialMock(Config::class, ['getEntityType']);
$type = $this->createMock(Type::class);
$this->config->expects($this->once())->method('getEntityType')->willReturn($type);

$this->resource = $this->createMock(\Magento\Framework\App\ResourceConnection::class);
$this->resource = $this->createMock(ResourceConnection::class);

$this->storeManager = $this->createMock(\Magento\Store\Model\StoreManager::class);
$this->logger = $this->createMock(\Magento\Framework\Logger\Monolog::class);
$this->storeManager = $this->createMock(StoreManager::class);
$this->logger = $this->createMock(Monolog::class);

$this->collection = $this->createMock(\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory::class);
$this->abstractCollection = $this->getMockForAbstractClass(
\Magento\Eav\Model\Entity\Collection\AbstractCollection::class,
AbstractCollection::class,
[],
'',
false,
Expand Down Expand Up @@ -177,15 +195,15 @@ protected function setUp()
$this->attributeColFactory = $this->createMock(
\Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory::class
);
$this->typeFactory = $this->createMock(\Magento\CatalogImportExport\Model\Export\Product\Type\Factory::class);
$this->typeFactory = $this->createMock(Factory::class);

$this->linkTypeProvider = $this->createMock(\Magento\Catalog\Model\Product\LinkTypeProvider::class);
$this->linkTypeProvider = $this->createMock(LinkTypeProvider::class);
$this->rowCustomizer = $this->createMock(
\Magento\CatalogImportExport\Model\Export\RowCustomizer\Composite::class
Composite::class
);
$this->metadataPool = $this->createMock(\Magento\Framework\EntityManager\MetadataPool::class);
$this->metadataPool = $this->createMock(MetadataPool::class);

$this->writer = $this->createPartialMock(\Magento\ImportExport\Model\Export\Adapter\AbstractAdapter::class, [
$this->writer = $this->createPartialMock(AbstractAdapter::class, [
'setHeaderCols',
'writeRow',
'getContents',
Expand Down Expand Up @@ -213,7 +231,7 @@ protected function setUp()
'_getHeaderColumns',
]);
$this->product = $this->createPartialMock(
\Magento\CatalogImportExport\Model\Export\Product::class,
Product::class,
$mockMethods
);

Expand Down Expand Up @@ -264,7 +282,7 @@ public function testUpdateDataWithCategoryColumnsNoCategoriesAssigned()
public function testGetHeaderColumns()
{
$product = $this->createPartialMock(
\Magento\CatalogImportExport\Model\Export\Product::class,
Product::class,
['_customHeadersMapping']
);
$headerColumnsValue = ['headerColumns value'];
Expand Down Expand Up @@ -355,7 +373,7 @@ public function testExportCurPageEqualToLastBreakInternalCalls()
$this->product->export();
}

protected function tearDown()
protected function tearDown(): void
{
unset($this->object);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
<?php
<?php declare(strict_types=1);
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\CatalogImportExport\Test\Unit\Model\Export;

class StubProduct extends \Magento\CatalogImportExport\Model\Export\Product
use Magento\CatalogImportExport\Model\Export\Product;

/**
* phpcs:disable Generic.CodeAnalysis.UselessOverridingMethod
*/
class StubProduct extends Product
{
/**
* Disable parent constructor
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
<?php
<?php declare(strict_types=1);
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\CatalogImportExport\Test\Unit\Model\Import\Product;

use Magento\Catalog\Model\Category;
use Magento\Catalog\Model\ResourceModel\Category\Collection;
use Magento\CatalogImportExport\Model\Import\Product\CategoryProcessor;
use Magento\CatalogImportExport\Model\Import\Product\Type\AbstractType;
use Magento\Framework\Exception\AlreadyExistsException;
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;

class CategoryProcessorTest extends \PHPUnit\Framework\TestCase
class CategoryProcessorTest extends TestCase
{
const PARENT_CATEGORY_ID = 1;

Expand All @@ -25,12 +31,12 @@ class CategoryProcessorTest extends \PHPUnit\Framework\TestCase
protected $objectManagerHelper;

/**
* @var \Magento\CatalogImportExport\Model\Import\Product\CategoryProcessor|\PHPUnit_Framework_MockObject_MockObject
* @var CategoryProcessor|MockObject
*/
protected $categoryProcessor;

/**
* @var \Magento\CatalogImportExport\Model\Import\Product\Type\AbstractType
* @var AbstractType
*/
protected $product;

Expand All @@ -44,12 +50,12 @@ class CategoryProcessorTest extends \PHPUnit\Framework\TestCase
*/
private $parentCategory;

protected function setUp()
protected function setUp(): void
{
$this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
$this->objectManagerHelper = new ObjectManagerHelper($this);

$this->childCategory = $this->getMockBuilder(\Magento\Catalog\Model\Category::class)
$this->childCategory = $this->getMockBuilder(Category::class)
->disableOriginalConstructor()
->getMock();
$this->childCategory->method('getId')->will($this->returnValue(self::CHILD_CATEGORY_ID));
Expand All @@ -59,7 +65,7 @@ protected function setUp()
. self::CHILD_CATEGORY_ID
));

$this->parentCategory = $this->getMockBuilder(\Magento\Catalog\Model\Category::class)
$this->parentCategory = $this->getMockBuilder(Category::class)
->disableOriginalConstructor()
->getMock();
$this->parentCategory->method('getId')->will($this->returnValue(self::PARENT_CATEGORY_ID));
Expand All @@ -68,7 +74,7 @@ protected function setUp()

$categoryCollection =
$this->objectManagerHelper->getCollectionMock(
\Magento\Catalog\Model\ResourceModel\Category\Collection::class,
Collection::class,
[
self::PARENT_CATEGORY_ID => $this->parentCategory,
self::CHILD_CATEGORY_ID => $this->childCategory,
Expand Down Expand Up @@ -102,7 +108,7 @@ protected function setUp()
$categoryFactory->method('create')->will($this->returnValue($this->childCategory));

$this->categoryProcessor =
new \Magento\CatalogImportExport\Model\Import\Product\CategoryProcessor(
new CategoryProcessor(
$categoryColFactory,
$categoryFactory
);
Expand All @@ -120,7 +126,7 @@ public function testUpsertCategories()
*/
public function testUpsertCategoriesWithAlreadyExistsException()
{
$exception = new \Magento\Framework\Exception\AlreadyExistsException();
$exception = new AlreadyExistsException();
$categoriesSeparator = '/';
$categoryName = 'Exception Category';
$this->childCategory->method('save')->willThrowException($exception);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
<?php
<?php declare(strict_types=1);
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\CatalogImportExport\Test\Unit\Model\Import\Product;

use Magento\CatalogImportExport\Model\Import\Product\ImageTypeProcessor;
use Magento\CatalogImportExport\Model\Import\Proxy\Product\ResourceModel;
use Magento\Framework\DB\Adapter\AdapterInterface;
use Magento\Framework\DB\Select;
use PHPUnit\Framework\TestCase;

class ImageTypeProcessorTest extends \PHPUnit\Framework\TestCase
class ImageTypeProcessorTest extends TestCase
{
public function testGetImageTypes()
{
Expand All @@ -16,23 +20,23 @@ public function testGetImageTypes()
['create']
);

$resource = $this->getMockBuilder(\Magento\CatalogImportExport\Model\Import\Proxy\Product\ResourceModel::class)
$resource = $this->getMockBuilder(ResourceModel::class)
->disableOriginalConstructor()
->setMethods(['getTable', 'getConnection'])
->getMock();
$resource->expects($this->once())
->method('getTable')
->with('eav_attribute')
->willReturnArgument(0);
$connection = $this->createMock(\Magento\Framework\DB\Adapter\AdapterInterface::class);
$connection = $this->createMock(AdapterInterface::class);
$resource->expects($this->any())
->method('getConnection')
->willReturn($connection);
$resourceFactory->expects($this->once())
->method('create')
->willReturn($resource);

$selectMock = $this->getMockBuilder(\Magento\Framework\DB\Select::class)
$selectMock = $this->getMockBuilder(Select::class)
->disableOriginalConstructor()
->getMock();
$selectMock->expects($this->once())
Expand Down
Loading

0 comments on commit 49a8b34

Please sign in to comment.