云
2 天以前 657698fd2fb32794932474648dbaee9e284e38c8
yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/energy/EnergyRecordServiceTest.java
@@ -20,12 +20,30 @@
@ExtendWith(MockitoExtension.class)
class EnergyRecordServiceTest {
    @Mock private org.springframework.context.ApplicationEventPublisher applicationEventPublisher;
    @Mock
    private EnergyRecordMapper mapper;
    @InjectMocks
    private EnergyRecordService service;
    @Test
    void changedDateChecksBothDaysWithOriginalTenant() {
        var req = request(); req.setId(77L);
        var old = new EnergyRecordDO(); old.setId(77L); old.setRecordDate(req.getRecordDate().minusDays(1));
        when(mapper.selectById(77L)).thenReturn(old);
        when(mapper.updateById(any(EnergyRecordDO.class))).thenReturn(1);
        var previousTenant = cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder.getTenantId();
        try {
            cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder.setTenantId(42L);
            service.update(req);
            var event = org.mockito.ArgumentCaptor.forClass(EnergyRecordChangedEvent.class);
            verify(applicationEventPublisher).publishEvent(event.capture());
            assertEquals(42L, event.getValue().tenantId());
            assertEquals(java.util.Set.of(old.getRecordDate(), req.getRecordDate()), event.getValue().dates());
        } finally { cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder.setTenantId(previousTenant); }
    }
    @Test
    void calculatesMoneyWithDecimalRoundingAndClearsRemark() {
        EnergyRecordSaveReqVO req = request();
        req.setQuantity(new BigDecimal("12.345"));