优化
This commit is contained in:
@@ -45,14 +45,6 @@ class InternalBusinessFileControllerTest {
|
||||
verify(service).download(0L, "LOADING_CUSTOMS_DECLARATION", "51", 91L);
|
||||
}
|
||||
|
||||
@Test void exactOwnershipCompensationDeleteRemainsBehindInternalToken() {
|
||||
var response = controller.delete("internal-token", 7L, 0L,
|
||||
"CONTAINER_DELIVERY_ORDER", "41", 91L);
|
||||
|
||||
assertThat(response.successful()).isTrue();
|
||||
verify(service).delete(0L, "CONTAINER_DELIVERY_ORDER", "41", 91L, 7L);
|
||||
}
|
||||
|
||||
@Test void rejectsInvalidTokenAndNegativeTenantBeforeServiceAccess() {
|
||||
var file = new MockMultipartFile("file", "x.txt", "text/plain", "x".getBytes());
|
||||
assertThatThrownBy(() -> controller.upload("wrong", 7L, 0L,
|
||||
|
||||
@@ -138,28 +138,4 @@ class InternalBusinessFileServiceTest {
|
||||
verify(storage).read(value.getObjectKey());
|
||||
}
|
||||
|
||||
@Test void compensationDeleteRequiresExactOwnershipAndLogicallyVoidsBeforeStorageCleanup() {
|
||||
FileObjectEntity value = new FileObjectEntity();
|
||||
value.setId(91L); value.setTenantId(0L); value.setBusinessType("CONTAINER_DELIVERY_ORDER");
|
||||
value.setBusinessId("41"); value.setStatus("ACTIVE"); value.setDeleted(false); value.setVersion(0);
|
||||
value.setObjectKey("business-files/0/41/do.pdf");
|
||||
when(files.selectOne(any())).thenReturn(value);
|
||||
when(files.voidOwned(0L, "CONTAINER_DELIVERY_ORDER", "41", 91L, 0, 7L)).thenReturn(1);
|
||||
when(storage.delete(value.getObjectKey())).thenReturn(true);
|
||||
|
||||
service.delete(0L, "CONTAINER_DELIVERY_ORDER", "41", 91L, 7L);
|
||||
|
||||
verify(files).voidOwned(0L, "CONTAINER_DELIVERY_ORDER", "41", 91L, 0, 7L);
|
||||
verify(storage).delete(value.getObjectKey());
|
||||
}
|
||||
|
||||
@Test void compensationMapperUsesExactCompositeOwnershipAndOptimisticVersion() throws Exception {
|
||||
String sql = String.join(" ", FileObjectMapper.class.getMethod("voidOwned", long.class,
|
||||
String.class, String.class, long.class, int.class, long.class)
|
||||
.getAnnotation(org.apache.ibatis.annotations.Update.class).value());
|
||||
assertThat(sql)
|
||||
.contains("id=#{fileId}", "tenant_id=#{tenantId}", "business_type=#{businessType}")
|
||||
.contains("business_id=#{businessId}", "status='ACTIVE'", "deleted=0", "version=#{version}")
|
||||
.contains("status='VOID'", "deleted=1", "version=version+1");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user