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
Branches
Tags
No related merge requests found
......@@ -48,8 +48,7 @@ public class AttachmentService {
ozgCloudFileService.writeFileDataToStream(fileId, outputStream);
}
public String store(OzgCloudUploadFile attachment, BufferedInputStream dataStream) {
var fileId = ozgCloudFileService.uploadFile(attachment, dataStream);
return fileId.toString();
public OzgCloudFileId store(OzgCloudUploadFile attachment, BufferedInputStream dataStream) {
return ozgCloudFileService.uploadFile(attachment, dataStream);
}
}
......@@ -41,6 +41,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Service;
import de.ozgcloud.apilib.file.OzgCloudFile;
import de.ozgcloud.apilib.file.OzgCloudFileId;
import de.ozgcloud.apilib.file.OzgCloudUploadFile;
import de.ozgcloud.common.binaryfile.TempFileUtils;
import de.ozgcloud.common.errorhandling.TechnicalException;
......@@ -63,6 +64,7 @@ import lombok.extern.log4j.Log4j2;
@RequiredArgsConstructor
@ConditionalOnProperty(prefix = MukPostfachProperties.PREFIX, name = { "server" })
public class ElsterTransferRemoteService {
public static final String POSTFACH = "postfach";
private final ElsterRestClient restClient;
private final MukPostfachProperties postfachProperties;
private final MukPostfachMessageMapper mapper;
......@@ -212,16 +214,25 @@ public class ElsterTransferRemoteService {
}
Optional<String> storeToOzgCloud(DownloadAnhangDetails downloadAnhangDetails, String vorgangId, ByteArrayInputStream dataIn) throws IOException {
Optional<String> fileIdOptional;
OzgCloudFileId ozgCloudFileId;
try (BufferedInputStream dataStream = new BufferedInputStream(dataIn)) {
var uploadFile = OzgCloudUploadFile.builder()
.fileName(downloadAnhangDetails.getDatei())
.contentType(downloadAnhangDetails.getMimeType())
.vorgangId(vorgangId).build();
ozgCloudFileId = attachmentService.store(createOzgCloudUploadFile(downloadAnhangDetails, vorgangId), dataStream);
}
fileIdOptional = Optional.of(attachmentService.store(uploadFile, dataStream));
if (Objects.nonNull(ozgCloudFileId)) {
return Optional.of(ozgCloudFileId.toString());
}
return fileIdOptional;
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())
.fieldName(POSTFACH)
.contentType(downloadAnhangDetails.getMimeType())
.vorgangId(vorgangId).build();
}
}
......
......@@ -30,6 +30,7 @@ import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
import java.io.IOException;
import java.net.URI;
import java.nio.file.Path;
import java.util.UUID;
......@@ -42,12 +43,14 @@ import org.mockito.Mock;
import org.mockito.Spy;
import de.ozgcloud.apilib.file.OzgCloudFile;
import de.ozgcloud.apilib.file.OzgCloudFileId;
import de.ozgcloud.apilib.file.OzgCloudFileTestFactory;
import de.ozgcloud.common.errorhandling.TechnicalException;
import de.ozgcloud.muk.elster.transfer.BereitstellungAnhangWithUploadId;
import de.ozgcloud.muk.elster.transfer.BereitstellungAuftragNeuV3;
import de.ozgcloud.muk.elster.transfer.BereitstellungAuftragStatus;
import de.ozgcloud.muk.elster.transfer.BereitstellungInfo;
import de.ozgcloud.muk.elster.transfer.DownloadAnhangDetails;
import de.ozgcloud.muk.elster.transfer.UploadInfo;
import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
import de.ozgcloud.nachrichten.postfach.muk.BereitstellungAnhangTestFactory;
......@@ -285,7 +288,25 @@ class ElsterTransferRemoteServiceTest {
private void setupForAttachments() {
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(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
......@@ -300,7 +321,7 @@ class ElsterTransferRemoteServiceTest {
@Test
void shouldHaveVorgangId() {
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());
......@@ -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