优化
This commit is contained in:
@@ -693,6 +693,30 @@ class LoadingListServiceTest {
|
|||||||
verify(documentFiles, never()).upload(anyString(), anyLong(), anyLong(), anyString(), anyString(), any());
|
verify(documentFiles, never()).upload(anyString(), anyLong(), anyLong(), anyString(), anyString(), any());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void deliveryOrderDatabaseConstraintFailureReturnsBusinessConflictInsteadOfUnknownError() {
|
||||||
|
AggregateRow plan = row("COMPLETED", 4);
|
||||||
|
byte[] content = "delivery-order".getBytes(java.nio.charset.StandardCharsets.UTF_8);
|
||||||
|
var file = new MockMultipartFile("file", "do.pdf", "application/pdf", content);
|
||||||
|
String contentHash = sha256Bytes(content);
|
||||||
|
var metadata = new LoadingDocumentFileClient.Metadata(103L, 0L,
|
||||||
|
"CONTAINER_DELIVERY_ORDER", "30", "do.pdf", contentHash, "application/pdf", (long) content.length);
|
||||||
|
when(repository.aggregateByBooking(30L)).thenReturn(plan);
|
||||||
|
when(repository.history(anyString())).thenReturn(null);
|
||||||
|
when(repository.document(30L, LoadingListService.DELIVERY_ORDER)).thenReturn(null);
|
||||||
|
when(documentFiles.upload(anyString(), eq(9L), eq(0L), eq("CONTAINER_DELIVERY_ORDER"),
|
||||||
|
eq("30"), eq(file))).thenReturn(ApiResponse.success(metadata));
|
||||||
|
when(documentFiles.metadata(anyString(), eq(0L), eq("CONTAINER_DELIVERY_ORDER"),
|
||||||
|
eq("30"), eq(103L))).thenReturn(ApiResponse.success(metadata));
|
||||||
|
when(repository.createDocument(any())).thenThrow(
|
||||||
|
new org.springframework.dao.DataIntegrityViolationException("trigger rejected"));
|
||||||
|
|
||||||
|
assertThatThrownBy(() -> service.uploadContainerLogisticsDocument(30L,
|
||||||
|
LoadingListService.DELIVERY_ORDER, 9L, "operator", "do-db-fail", 0, null, file))
|
||||||
|
.isInstanceOf(BizException.class)
|
||||||
|
.extracting(error -> ((BizException) error).getResultCode()).isEqualTo(ResultCode.CONFLICT);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void confirmsEveryLinkedPreloadAndCreatesSinglePdaTaskAtomically() {
|
void confirmsEveryLinkedPreloadAndCreatesSinglePdaTaskAtomically() {
|
||||||
|
|||||||
Reference in New Issue
Block a user