This commit is contained in:
2026-08-07 18:44:51 +08:00
parent 1a76602872
commit 37fec1e012
24 changed files with 601 additions and 24 deletions
@@ -24,6 +24,9 @@ import java.math.BigDecimal;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;
@@ -85,7 +88,7 @@ class MeasurementImageServiceEvidenceTest {
LambdaQueryWrapper<FileObjectEntity> query = invocation.getArgument(0);
query.getSqlSegment();
assertThat(query.getParamNameValuePairs().values())
.contains(11L, 41L, "21", false);
.contains(11L, 41L, "21", "ACTIVE", false);
return null;
});
@@ -116,4 +119,47 @@ class MeasurementImageServiceEvidenceTest {
assertThat(result.confidence()).isEqualByComparingTo("0.50972");
assertThat(result.ocrRawText()).isEqualTo("285.5\nKG");
}
@Test
void deletesMeasurementEvidenceThroughTheConfiguredLogicalDelete() {
FileObjectEntity object = measurementEvidence();
when(files.selectOne(any())).thenReturn(object);
when(files.updateById(object)).thenReturn(1);
when(files.deleteById(41L)).thenReturn(1);
service.deleteMeasurementEvidence(11L, 21L, 41L, 31L);
assertThat(object.getStatus()).isEqualTo("DELETED");
assertThat(object.getDeleted()).isFalse();
var ordered = inOrder(files, storage);
ordered.verify(files).updateById(object);
ordered.verify(files).deleteById(41L);
ordered.verify(storage).delete(object.getObjectKey());
}
@Test
void doesNotDeleteStoredContentWhenLogicalDeleteLosesTheRace() {
FileObjectEntity object = measurementEvidence();
when(files.selectOne(any())).thenReturn(object);
when(files.updateById(object)).thenReturn(1);
when(files.deleteById(41L)).thenReturn(0);
assertThatThrownBy(() -> service.deleteMeasurementEvidence(11L, 21L, 41L, 31L))
.isInstanceOf(com.baiyue.common.core.exception.BizException.class)
.hasMessageContaining("已被删除");
verify(storage, never()).delete(any());
}
private FileObjectEntity measurementEvidence() {
FileObjectEntity object = new FileObjectEntity();
object.setId(41L);
object.setTenantId(11L);
object.setBusinessType("INBOUND_MEASUREMENT_IMAGE");
object.setBusinessId("21");
object.setObjectKey("measurements/11/21/evidence.png");
object.setStatus("ACTIVE");
object.setDeleted(false);
return object;
}
}