| | |
| | | |
| | | @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")); |