45 lines
1.7 KiB
PHP
45 lines
1.7 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace Esun\LingxingErp\Test\Unit\Observer;
|
|
|
|
use Esun\LingxingErp\Model\Warehouse\WarehouseRepository;
|
|
use Esun\LingxingErp\Observer\SaveSourceWarehouseMapping;
|
|
use Magento\Framework\App\RequestInterface;
|
|
use Magento\Framework\Event\Observer;
|
|
use Magento\InventoryApi\Api\Data\SourceInterface;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class SaveSourceWarehouseMappingTest extends TestCase
|
|
{
|
|
public function testAssignsSelectedWarehouseAfterSourceSave(): void
|
|
{
|
|
$repository = $this->createMock(WarehouseRepository::class);
|
|
$repository->expects(self::once())->method('assignSource')->with('uk', 42);
|
|
$request = $this->createMock(RequestInterface::class);
|
|
$request->method('getParam')->with('general')->willReturn(['lingxing_wid' => '42']);
|
|
$source = $this->createMock(SourceInterface::class);
|
|
$source->method('getSourceCode')->willReturn('uk');
|
|
|
|
(new SaveSourceWarehouseMapping($repository))->execute(new Observer([
|
|
'request' => $request,
|
|
'source' => $source,
|
|
]));
|
|
}
|
|
|
|
public function testClearsMappingWhenEmptyOptionIsSelected(): void
|
|
{
|
|
$repository = $this->createMock(WarehouseRepository::class);
|
|
$repository->expects(self::once())->method('assignSource')->with('eu', null);
|
|
$request = $this->createMock(RequestInterface::class);
|
|
$request->method('getParam')->with('general')->willReturn(['lingxing_wid' => '']);
|
|
$source = $this->createMock(SourceInterface::class);
|
|
$source->method('getSourceCode')->willReturn('eu');
|
|
|
|
(new SaveSourceWarehouseMapping($repository))->execute(new Observer([
|
|
'request' => $request,
|
|
'source' => $source,
|
|
]));
|
|
}
|
|
}
|