package cn.iocoder.yudao.module.mes.service.wm.productsales;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.productsales.MesWmProductSalesDetailDO;
|
import org.junit.jupiter.api.Test;
|
import java.math.BigDecimal;
|
import java.util.List;
|
import static org.junit.jupiter.api.Assertions.*;
|
import static org.mockito.Mockito.*;
|
class BagBusinessOutboundTest {
|
@Test void businessCodeResolvesCanonicalBagForRepeatPick() {
|
var f=new SalesPickingSelectionTest();f.setup();
|
when(f.bags.selectByScanCodeForUpdate("BUS-31")).thenReturn(f.b1);
|
when(f.details.selectPickingByBatchCodeForUpdate("PRO-100")).thenReturn(List.of(new MesWmProductSalesDetailDO().setId(77L).setSalesId(11L).setBagCodeId(31L)));
|
f.req.setScanType("BAG");f.req.setScanContent("BUS-31");f.req.setBagIds(null);f.req.setQuantity(BigDecimal.ONE);
|
var result=f.service.scanProductSales(f.req);assertEquals(31L,result.getCodeId());assertTrue(result.getAlreadyScanned());assertEquals(77L,result.getDetailId());f.noInsert();
|
}
|
@Test void palletPreviewCountsSelectableEffectiveBags() {
|
var f=new SalesPickingSelectionTest();f.setup();f.b3.setStatus(30);
|
var result=f.service.previewScan("SOURCE");assertEquals("PALLET",result.getScanType());assertEquals(BigDecimal.valueOf(2),result.getScanQuantity());assertEquals(2,result.getBags().size());f.noInsert();
|
}
|
}
|