package cn.iocoder.yudao.module.srm.service.tender;
|
|
import cn.iocoder.yudao.module.srm.dal.dataobject.SrmSupplierQuoteDO;
|
import cn.iocoder.yudao.module.srm.dal.dataobject.SrmTenderMaterialDO;
|
import org.junit.jupiter.api.Test;
|
import java.math.BigDecimal;
|
import java.util.List;
|
import static org.junit.jupiter.api.Assertions.*;
|
|
class SrmPurchaseQuoteValidationTest {
|
private SrmTenderMaterialDO material(long id) { return new SrmTenderMaterialDO().setId(id).setProductId(id).setQuantity(BigDecimal.ONE); }
|
private SrmSupplierQuoteDO quote(long id) { return new SrmSupplierQuoteDO().setTenderMaterialId(id).setQuotePrice(BigDecimal.TEN); }
|
@Test void missingQuoteCannotCreatePartialOrder() {
|
assertThrows(RuntimeException.class, () -> SrmPurchaseQuoteValidator.validate(List.of(material(1),material(2)), List.of(quote(1))));
|
}
|
@Test void duplicateQuoteCannotSilentlyChooseOne() {
|
assertThrows(RuntimeException.class, () -> SrmPurchaseQuoteValidator.validate(List.of(material(1)), List.of(quote(1),quote(1))));
|
}
|
@Test void completeQuoteProducesAllMaterials() {
|
assertEquals(2, SrmPurchaseQuoteValidator.validate(List.of(material(1),material(2)), List.of(quote(1),quote(2))).size());
|
}
|
}
|