Skip to content
Snippets Groups Projects
Commit b22f04cc authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'Fehlendes Attribut fielNAme wird jetzt gesetzt. Tests...

Merge pull request 'Fehlendes Attribut fielNAme wird jetzt gesetzt. Tests verbessert' (#13) from set-missing-field-value into master

Reviewed-on: https://git.ozg-sh.de/ozgcloud-app/muk-postfach/pulls/13


Reviewed-by: default avatarOZGCloud <ozgcloud@mgm-tp.com>
parents a64f464c 057bdc76
No related branches found
No related tags found
No related merge requests found
...@@ -48,8 +48,7 @@ public class AttachmentService { ...@@ -48,8 +48,7 @@ public class AttachmentService {
ozgCloudFileService.writeFileDataToStream(fileId, outputStream); ozgCloudFileService.writeFileDataToStream(fileId, outputStream);
} }
public String store(OzgCloudUploadFile attachment, BufferedInputStream dataStream) { public OzgCloudFileId store(OzgCloudUploadFile attachment, BufferedInputStream dataStream) {
var fileId = ozgCloudFileService.uploadFile(attachment, dataStream); return ozgCloudFileService.uploadFile(attachment, dataStream);
return fileId.toString();
} }
} }
...@@ -41,6 +41,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; ...@@ -41,6 +41,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import de.ozgcloud.apilib.file.OzgCloudFile; import de.ozgcloud.apilib.file.OzgCloudFile;
import de.ozgcloud.apilib.file.OzgCloudFileId;
import de.ozgcloud.apilib.file.OzgCloudUploadFile; import de.ozgcloud.apilib.file.OzgCloudUploadFile;
import de.ozgcloud.common.binaryfile.TempFileUtils; import de.ozgcloud.common.binaryfile.TempFileUtils;
import de.ozgcloud.common.errorhandling.TechnicalException; import de.ozgcloud.common.errorhandling.TechnicalException;
...@@ -63,6 +64,7 @@ import lombok.extern.log4j.Log4j2; ...@@ -63,6 +64,7 @@ import lombok.extern.log4j.Log4j2;
@RequiredArgsConstructor @RequiredArgsConstructor
@ConditionalOnProperty(prefix = MukPostfachProperties.PREFIX, name = { "server" }) @ConditionalOnProperty(prefix = MukPostfachProperties.PREFIX, name = { "server" })
public class ElsterTransferRemoteService { public class ElsterTransferRemoteService {
public static final String POSTFACH = "postfach";
private final ElsterRestClient restClient; private final ElsterRestClient restClient;
private final MukPostfachProperties postfachProperties; private final MukPostfachProperties postfachProperties;
private final MukPostfachMessageMapper mapper; private final MukPostfachMessageMapper mapper;
...@@ -212,16 +214,25 @@ public class ElsterTransferRemoteService { ...@@ -212,16 +214,25 @@ public class ElsterTransferRemoteService {
} }
Optional<String> storeToOzgCloud(DownloadAnhangDetails downloadAnhangDetails, String vorgangId, ByteArrayInputStream dataIn) throws IOException { Optional<String> storeToOzgCloud(DownloadAnhangDetails downloadAnhangDetails, String vorgangId, ByteArrayInputStream dataIn) throws IOException {
Optional<String> fileIdOptional; OzgCloudFileId ozgCloudFileId;
try (BufferedInputStream dataStream = new BufferedInputStream(dataIn)) { try (BufferedInputStream dataStream = new BufferedInputStream(dataIn)) {
var uploadFile = OzgCloudUploadFile.builder() ozgCloudFileId = attachmentService.store(createOzgCloudUploadFile(downloadAnhangDetails, vorgangId), dataStream);
}
if (Objects.nonNull(ozgCloudFileId)) {
return Optional.of(ozgCloudFileId.toString());
}
LOG.error("Received no OzgCloudFileId when saving attachment {} to vorgangId {}", downloadAnhangDetails, vorgangId);
return Optional.empty();
}
static OzgCloudUploadFile createOzgCloudUploadFile(final DownloadAnhangDetails downloadAnhangDetails, final String vorgangId) {
return OzgCloudUploadFile.builder()
.fileName(downloadAnhangDetails.getDatei()) .fileName(downloadAnhangDetails.getDatei())
.fieldName(POSTFACH)
.contentType(downloadAnhangDetails.getMimeType()) .contentType(downloadAnhangDetails.getMimeType())
.vorgangId(vorgangId).build(); .vorgangId(vorgangId).build();
fileIdOptional = Optional.of(attachmentService.store(uploadFile, dataStream));
}
return fileIdOptional;
} }
} }
......
...@@ -30,6 +30,7 @@ import static org.assertj.core.api.Assertions.*; ...@@ -30,6 +30,7 @@ import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import java.io.IOException; import java.io.IOException;
import java.net.URI;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.UUID; import java.util.UUID;
...@@ -42,12 +43,14 @@ import org.mockito.Mock; ...@@ -42,12 +43,14 @@ import org.mockito.Mock;
import org.mockito.Spy; import org.mockito.Spy;
import de.ozgcloud.apilib.file.OzgCloudFile; import de.ozgcloud.apilib.file.OzgCloudFile;
import de.ozgcloud.apilib.file.OzgCloudFileId;
import de.ozgcloud.apilib.file.OzgCloudFileTestFactory; import de.ozgcloud.apilib.file.OzgCloudFileTestFactory;
import de.ozgcloud.common.errorhandling.TechnicalException; import de.ozgcloud.common.errorhandling.TechnicalException;
import de.ozgcloud.muk.elster.transfer.BereitstellungAnhangWithUploadId; import de.ozgcloud.muk.elster.transfer.BereitstellungAnhangWithUploadId;
import de.ozgcloud.muk.elster.transfer.BereitstellungAuftragNeuV3; import de.ozgcloud.muk.elster.transfer.BereitstellungAuftragNeuV3;
import de.ozgcloud.muk.elster.transfer.BereitstellungAuftragStatus; import de.ozgcloud.muk.elster.transfer.BereitstellungAuftragStatus;
import de.ozgcloud.muk.elster.transfer.BereitstellungInfo; import de.ozgcloud.muk.elster.transfer.BereitstellungInfo;
import de.ozgcloud.muk.elster.transfer.DownloadAnhangDetails;
import de.ozgcloud.muk.elster.transfer.UploadInfo; import de.ozgcloud.muk.elster.transfer.UploadInfo;
import de.ozgcloud.nachrichten.postfach.PostfachNachricht; import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
import de.ozgcloud.nachrichten.postfach.muk.BereitstellungAnhangTestFactory; import de.ozgcloud.nachrichten.postfach.muk.BereitstellungAnhangTestFactory;
...@@ -285,7 +288,25 @@ class ElsterTransferRemoteServiceTest { ...@@ -285,7 +288,25 @@ class ElsterTransferRemoteServiceTest {
private void setupForAttachments() { private void setupForAttachments() {
when(postfachProperties.getServer()).thenReturn("http://localhost"); when(postfachProperties.getServer()).thenReturn("http://localhost");
when(restClient.getForObject(matches(postfachProperties.getServer() + DOWNLOAD_URI), any())).thenReturn("Test,Data".getBytes()); when(restClient.getForObject(matches(postfachProperties.getServer() + DOWNLOAD_URI), any())).thenReturn("Test,Data".getBytes());
when(attachmentService.store(any(), any())).thenReturn(ObjectIdToUUIDConverter.toUUID(new ObjectId().toHexString()).toString()); when(attachmentService.store(any(), any())).thenReturn(OzgCloudFileId.from(ObjectIdToUUIDConverter.toUUID(new ObjectId().toHexString()).toString()));
}
@Test
void shouldHandleAttachmentSaveError() {
when(postfachProperties.getServer()).thenReturn("http://localhost");
when(restClient.getForObject(matches(postfachProperties.getServer() + DOWNLOAD_URI), any())).thenReturn("Test,Data".getBytes());
when(attachmentService.store(any(), any())).thenReturn(null);
DownloadAnhangDetails downloadAnhangDetails = new DownloadAnhangDetails();
downloadAnhangDetails.setMimeType(OzgCloudFileTestFactory.CONTENT_TYPE);
downloadAnhangDetails.setDownloadUrl(URI.create("/download"));
downloadAnhangDetails.setDateiBezeichnung(OzgCloudFileTestFactory.NAME);
downloadAnhangDetails.setDatei("");
var res = elsterTransferService.downloadAnhang(downloadAnhangDetails, ObjectId.get().toHexString());
assertThat(res).isNotPresent();
} }
@Test @Test
...@@ -300,7 +321,7 @@ class ElsterTransferRemoteServiceTest { ...@@ -300,7 +321,7 @@ class ElsterTransferRemoteServiceTest {
@Test @Test
void shouldHaveVorgangId() { void shouldHaveVorgangId() {
when(restClient.getForObject(matches(postfachProperties.getServer() + DOWNLOAD_URI), any())).thenReturn("Test,Data".getBytes()); when(restClient.getForObject(matches(postfachProperties.getServer() + DOWNLOAD_URI), any())).thenReturn("Test,Data".getBytes());
when(attachmentService.store(any(), any())).thenReturn(new ObjectId().toHexString()); when(attachmentService.store(any(), any())).thenReturn(OzgCloudFileId.from(new ObjectId().toHexString()));
var antwort = elsterTransferService.getAntwort(AntwortDetailsTestFactory.create()); var antwort = elsterTransferService.getAntwort(AntwortDetailsTestFactory.create());
...@@ -368,4 +389,53 @@ class ElsterTransferRemoteServiceTest { ...@@ -368,4 +389,53 @@ class ElsterTransferRemoteServiceTest {
); );
} }
} }
@Nested
class TestCreatingOzgCloudFile {
DownloadAnhangDetails downloadAnhangDetails = new DownloadAnhangDetails();
String vorgangId = ObjectId.get().toHexString();
@BeforeEach
void setUp() {
downloadAnhangDetails.setMimeType(OzgCloudFileTestFactory.CONTENT_TYPE);
downloadAnhangDetails.setDownloadUrl(URI.create("/download"));
downloadAnhangDetails.setDateiBezeichnung(OzgCloudFileTestFactory.NAME);
downloadAnhangDetails.setDatei(OzgCloudFileTestFactory.NAME);
}
@Test
void shouldCreateOzgCloudFile() {
var file = ElsterTransferRemoteService.createOzgCloudUploadFile(downloadAnhangDetails, vorgangId);
assertThat(file).isNotNull();
}
@Test
void shouldHaveFileName() {
var file = ElsterTransferRemoteService.createOzgCloudUploadFile(downloadAnhangDetails, vorgangId);
assertThat(file.getFileName()).isEqualTo(downloadAnhangDetails.getDatei());
}
@Test
void shouldHaveVorgangId() {
var file = ElsterTransferRemoteService.createOzgCloudUploadFile(downloadAnhangDetails, vorgangId);
assertThat(file.getVorgangId()).isEqualTo(vorgangId);
}
@Test
void shouldHaveContentType() {
var file = ElsterTransferRemoteService.createOzgCloudUploadFile(downloadAnhangDetails, vorgangId);
assertThat(file.getContentType()).isEqualTo(downloadAnhangDetails.getMimeType());
}
@Test
void shouldHaveFieldName() {
var file = ElsterTransferRemoteService.createOzgCloudUploadFile(downloadAnhangDetails, vorgangId);
assertThat(file.getFieldName()).isEqualTo(POSTFACH);
}
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment