费用提交
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
package com.baiyue.firstleg.service;
|
||||
|
||||
import com.baiyue.common.core.exception.BizException;
|
||||
import com.baiyue.firstleg.controller.InternalFeeCatalogController;
|
||||
import com.baiyue.firstleg.entity.FeeItemEntity;
|
||||
import com.baiyue.firstleg.repository.FeeItemRepository;
|
||||
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 SharedFeeCatalogServiceTest {
|
||||
/** 已停用、方向变更或非海外项目不能沿用页面旧选项。 */
|
||||
@Test void currentEligibilityIsCheckedBeforeUse() {
|
||||
FeeItemRepository repository = mock(FeeItemRepository.class);
|
||||
SharedFeeCatalogService service = new SharedFeeCatalogService(repository);
|
||||
FeeItemEntity item = new FeeItemEntity();
|
||||
item.setFeeCode("FEE-1"); item.setFeeTypeName("操作费");
|
||||
item.setStatus("ACTIVE"); item.setTradeScope("INTERNATIONAL");
|
||||
item.setWarehouseReceivable(true); item.setDefaultPrice(new BigDecimal("2.50"));
|
||||
when(repository.findItemByCode("FEE-1")).thenReturn(item);
|
||||
when(repository.listActiveInternationalWarehouseItems("RECEIVABLE")).thenReturn(List.of(item));
|
||||
assertEquals(new BigDecimal("2.50"), service.list("RECEIVABLE").get(0).defaultPrice());
|
||||
assertEquals("操作费", service.requireActive("FEE-1", "RECEIVABLE").name());
|
||||
assertThrows(BizException.class, () -> service.requireActive("FEE-1", "PAYABLE"));
|
||||
item.setStatus("INACTIVE");
|
||||
assertThrows(BizException.class, () -> service.requireActive("FEE-1", "RECEIVABLE"));
|
||||
item.setStatus("ACTIVE"); item.setTradeScope("DOMESTIC");
|
||||
assertThrows(BizException.class, () -> service.requireActive("FEE-1", "RECEIVABLE"));
|
||||
assertThrows(BizException.class, () -> service.list(null));
|
||||
}
|
||||
|
||||
/** 内部入口未配置、缺少或错误凭证均不得读取目录。 */
|
||||
@Test void internalCatalogRequiresExplicitServiceIdentity() {
|
||||
SharedFeeCatalogService service = mock(SharedFeeCatalogService.class);
|
||||
InternalFeeCatalogController controller = new InternalFeeCatalogController(service, "configured-token");
|
||||
assertThrows(BizException.class, () -> controller.list(null, "RECEIVABLE"));
|
||||
assertThrows(BizException.class, () -> controller.detail("wrong", "FEE-1", "RECEIVABLE"));
|
||||
assertThrows(BizException.class, () -> new InternalFeeCatalogController(service, "").list("", "RECEIVABLE"));
|
||||
verifyNoInteractions(service);
|
||||
when(service.list("RECEIVABLE")).thenReturn(List.of());
|
||||
assertTrue(controller.list("configured-token", "RECEIVABLE").successful());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user