Skip to content
Snippets Groups Projects
Commit 94c1b6b0 authored by OZG-Cloud Team's avatar OZG-Cloud Team
Browse files

Merge remote-tracking branch 'origin/master' into OZG-6354_pvog-based-routing

parents 1c123472 ecf0ae9b
Branches
Tags
No related merge requests found
......@@ -29,6 +29,7 @@ import java.util.Objects;
import java.util.function.Predicate;
import java.util.stream.Stream;
import de.ozgcloud.eingang.common.formdata.IncomingFileGroup;
import org.springframework.stereotype.Component;
import de.ozgcloud.eingang.common.formdata.IncomingFile;
......@@ -58,7 +59,7 @@ class XtaIncomingFilesMapper {
IncomingFile toIncomingFile(XtaFile messageFile) {
return IncomingFile.builder()
.name(removeLeadingUUID(messageFile.name()))
.name(messageFile.name())
.contentType(messageFile.contentType())
.file(messageFile.file())
.size(messageFile.file().length())
......@@ -79,6 +80,24 @@ class XtaIncomingFilesMapper {
}
}
RepresentationsAttachmentsPair removeLeadingUUIDsFromNames(RepresentationsAttachmentsPair representationsAttachmentsPair) {
var representations = representationsAttachmentsPair.representations().stream().map(this::removeLeadingUUID).toList();
var attachments = representationsAttachmentsPair.attachments().stream().map(this::removeLeadingUUIDs).toList();
return new RepresentationsAttachmentsPair(
representations,
attachments
);
}
private IncomingFileGroup removeLeadingUUIDs(IncomingFileGroup incomingFileGroup) {
var incomingFilesWithoutUuid = incomingFileGroup.getFiles().stream().map(this::removeLeadingUUID).toList();
return incomingFileGroup.toBuilder().clearFiles().files(incomingFilesWithoutUuid).build();
}
private IncomingFile removeLeadingUUID(IncomingFile incomingFile) {
return incomingFile.toBuilder().name(removeLeadingUUID(incomingFile.getName())).build();
}
private String removeLeadingUUID(String name) {
return name.replaceAll("^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}_", "");
}
......
......@@ -69,8 +69,10 @@ class XtaService {
public FormData getFormData(@NonNull XtaMessageMetaData metaData) {
var msg = remoteService.getMessage(metaData.getMessageId());
var incomingFiles = xtaIncomingFilesMapper.toIncomingFiles(msg.getMessageFiles());
var representationsAttachmentsPair = getRepresentationsAttachmentsPair(metaData, incomingFiles);
var representationsAttachmentsPairsWithoutUUIDs = xtaIncomingFilesMapper.removeLeadingUUIDsFromNames(representationsAttachmentsPair);
var formData = mapper.toFormData(getRepresentationsAttachmentsPair(metaData, incomingFiles), metaData, vorgangNummerSupplier);
var formData = mapper.toFormData(representationsAttachmentsPairsWithoutUUIDs, metaData, vorgangNummerSupplier);
return addAttachments(msg, formData);
}
......
......@@ -28,7 +28,7 @@ class XtaFileTestFactory {
@SneakyThrows
private static File createFile() {
File tFile = File.createTempFile("test", "zip");
File tFile = File.createTempFile("test", ".zip");
tFile.deleteOnExit();
FileUtils.write(tFile, CONTENT, StandardCharsets.UTF_8);
......
......@@ -30,6 +30,7 @@ import java.util.List;
import java.util.UUID;
import java.util.stream.Stream;
import de.ozgcloud.eingang.common.formdata.IncomingFileGroup;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
......@@ -90,16 +91,6 @@ class XtaIncomingFilesMapperTest {
assertThat(inFile.getName()).isEqualTo(XtaFileTestFactory.NAME);
}
@Test
void shouldRemoveLeadingUUID() {
String nameWithLeadingUUID = UUID.randomUUID() + "_" + XtaFileTestFactory.NAME;
var xtaFile = XtaFileTestFactory.createBuilder().name(nameWithLeadingUUID).build();
var inFile = mapper.toIncomingFile(xtaFile);
assertThat(inFile.getName()).isEqualTo(XtaFileTestFactory.NAME);
}
@Test
void shouldHaveZipContentType() {
var inFile = mapper.toIncomingFile(XtaFileTestFactory.create());
......@@ -159,4 +150,32 @@ class XtaIncomingFilesMapperTest {
assertThat(XtaIncomingFilesMapper.IS_ZIP_FILE.test(IncomingFileTestFactory.createBuilder().contentType(ZIP_CONTENT_TYPE).build()))
.isTrue();
}
@Nested
class TestRemoveLeadingUUIDsFromNames {
@Test
void shouldRemoveLeadingUUIDFromName() {
String nameWithLeadingUUID = UUID.randomUUID() + "_" + XtaFileTestFactory.NAME;
var xtaFile1 = XtaFileTestFactory.createBuilder().name(nameWithLeadingUUID).contentType("text/plain").build();
var xtaFile2 = XtaFileTestFactory.createBuilder().contentType("text/plain").build();
var representationsAttachmentsPair = RepresentationsAttachmentsPairTestFactory.createBuilder()
.representations(List.of(mapper.toIncomingFile(xtaFile1), mapper.toIncomingFile(xtaFile2)))
.attachments(List.of(IncomingFileGroup.builder().files(List.of(mapper.toIncomingFile(xtaFile1), mapper.toIncomingFile(xtaFile2))).build()))
.build();
var mappedPair = mapper.removeLeadingUUIDsFromNames(representationsAttachmentsPair);
assertThat(mappedPair.representations()).hasSize(2);
assertThat(mappedPair.representations().getFirst().getName()).isEqualTo(XtaFileTestFactory.NAME);
assertThat(mappedPair.representations().getLast().getName()).isEqualTo(XtaFileTestFactory.NAME);
assertThat(mappedPair.attachments()).hasSize(1);
var attachments = mappedPair.attachments().getFirst().getFiles();
assertThat(attachments).hasSize(2);
assertThat(attachments.getFirst().getName()).isEqualTo(XtaFileTestFactory.NAME);
assertThat(attachments.getLast().getName()).isEqualTo(XtaFileTestFactory.NAME);
}
}
}
......@@ -152,6 +152,7 @@ class XtaServiceTest {
var incomingFiles = List.of(IncomingFileTestFactory.create(), IncomingFileTestFactory.create());
when(incomingFilesMapper.toIncomingFiles(message.getMessageFiles())).thenReturn(incomingFiles);
doReturn(classification).when(service).getRepresentationsAttachmentsPair(messageMetaData, incomingFiles);
when(incomingFilesMapper.removeLeadingUUIDsFromNames(classification)).thenReturn(classification);
}
@BeforeEach
......@@ -217,8 +218,8 @@ class XtaServiceTest {
void shouldWorkWithoutAnyAttachment() {
var result = service.addAttachments(XtaMessageTestFactory.createBuilder().clearAttachments().build(), inFormData);
assertThat(result.getAttachments()).hasSize(0);
assertThat(result.getNumberOfAttachments()).isEqualTo(0);
assertThat(result.getAttachments()).isEmpty();
assertThat(result.getNumberOfAttachments()).isZero();
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment