Files
esun3d/app/code/Esun/LingxingErp/Test/Unit/Observer/SaveSourceWarehouseMappingTest.php
T
2026-09-15 10:35:56 +08:00

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,
]));
}
}