mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
114 lines
3.4 KiB
PHP
114 lines
3.4 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
declare(strict_types=1);
|
|
|
|
namespace Magento\AsynchronousOperations\Test\Unit\Model\Entity;
|
|
|
|
use Magento\AsynchronousOperations\Model\Entity\BulkSummaryMapper;
|
|
use Magento\Framework\App\ResourceConnection;
|
|
use Magento\Framework\DB\Adapter\AdapterInterface;
|
|
use Magento\Framework\DB\Select;
|
|
use Magento\Framework\EntityManager\EntityMetadataInterface;
|
|
use Magento\Framework\EntityManager\MetadataPool;
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class BulkSummaryMapperTest extends TestCase
|
|
{
|
|
/**
|
|
* @var BulkSummaryMapper
|
|
*/
|
|
private $model;
|
|
|
|
/**
|
|
* @var MockObject
|
|
*/
|
|
private $metadataPoolMock;
|
|
|
|
/**
|
|
* @var MockObject
|
|
*/
|
|
private $resourceConnectionMock;
|
|
|
|
/**
|
|
* @var MockObject
|
|
*/
|
|
private $entityMetadataMock;
|
|
|
|
/**
|
|
* @var MockObject
|
|
*/
|
|
private $connectionMock;
|
|
|
|
/**
|
|
* @var MockObject
|
|
*/
|
|
private $selectMock;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
$this->metadataPoolMock = $this->createMock(MetadataPool::class);
|
|
$this->resourceConnectionMock = $this->createMock(ResourceConnection::class);
|
|
$this->entityMetadataMock = $this->getMockForAbstractClass(EntityMetadataInterface::class);
|
|
$this->connectionMock = $this->getMockForAbstractClass(AdapterInterface::class);
|
|
$this->selectMock = $this->createMock(Select::class);
|
|
$this->model = new BulkSummaryMapper(
|
|
$this->metadataPoolMock,
|
|
$this->resourceConnectionMock
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @param int $identifier
|
|
* @param array|false $result
|
|
* @dataProvider entityToDatabaseDataProvider
|
|
*/
|
|
public function testEntityToDatabase($identifier, $result)
|
|
{
|
|
$entityType = 'entityType';
|
|
$data = ['uuid' => 'bulk-1'];
|
|
$connectionName = 'connection_name';
|
|
$entityTable = 'table_name';
|
|
$this->metadataPoolMock
|
|
->expects($this->once())
|
|
->method('getMetadata')
|
|
->with($entityType)
|
|
->willReturn($this->entityMetadataMock);
|
|
$this->entityMetadataMock
|
|
->expects($this->once())
|
|
->method('getEntityConnectionName')
|
|
->willReturn($connectionName);
|
|
|
|
$this->resourceConnectionMock
|
|
->expects($this->once())
|
|
->method('getConnectionByName')
|
|
->with($connectionName)
|
|
->willReturn($this->connectionMock);
|
|
$this->connectionMock->expects($this->once())->method('select')->willReturn($this->selectMock);
|
|
$this->entityMetadataMock->expects($this->once())->method('getEntityTable')->willReturn($entityTable);
|
|
$this->selectMock->expects($this->once())->method('from')->with($entityTable, 'id')->willReturnSelf();
|
|
$this->selectMock->expects($this->once())->method('where')->with("uuid = ?", 'bulk-1')->willReturnSelf();
|
|
$this->connectionMock
|
|
->expects($this->once())
|
|
->method('fetchOne')
|
|
->with($this->selectMock)
|
|
->willReturn($identifier);
|
|
|
|
$this->assertEquals($result, $this->model->entityToDatabase($entityType, $data));
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function entityToDatabaseDataProvider()
|
|
{
|
|
return [
|
|
[1, ['uuid' => 'bulk-1', 'id' => 1]],
|
|
[false, ['uuid' => 'bulk-1']]
|
|
];
|
|
}
|
|
}
|