diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java index d88c4a1f26d78c819dd373d5651120cc7647eb20..b67bc4dcb635415c77cfd6209968b7061910427c 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java @@ -45,4 +45,5 @@ interface AntragraumProxyMapper { return nachricht.attachments().stream().map(OzgFile::id).toList(); } + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapper.java index 45e6bbca1c99b482ca81396d51f231221a40d2a4..90cacbcddfbdf5fe7b0b3530ae5db06790eb205d 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapper.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapper.java @@ -27,6 +27,7 @@ import lombok.NoArgsConstructor; @NoArgsConstructor(access = AccessLevel.PRIVATE) class AttachmentMapper { + static OzgFile fromGrpcBinaryFile(GrpcBinaryFile file) { return OzgFile.builder() .id(file.getId()) @@ -34,4 +35,5 @@ class AttachmentMapper { .fileSize(file.getSize()) .contentType(file.getContentType()).build(); } + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Nachricht.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Nachricht.java index 6d762929c6627ff46c0185b01c58e75cb594c938..218e433a1db9b03c909215a344b72cdfeb9e329d 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Nachricht.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Nachricht.java @@ -119,4 +119,5 @@ record Nachricht( ", status='" + status + '\'' + '}'; } + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeader.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeader.java index d72c3066c4949998c3e35dd70546f1899a364ded..af5f444cd6bcfd22889300c4b6c3ed357c2780c7 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeader.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeader.java @@ -79,4 +79,5 @@ record NachrichtHeader( type = "String" ) String status) { + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapper.java index 032a097056123aa9e662f0375df4b78221aa6bed..5b0886fb37eff7f7881233be4dd1858f1e7e28ff 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapper.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapper.java @@ -34,6 +34,7 @@ import lombok.extern.log4j.Log4j2; @Log4j2 @NoArgsConstructor(access = AccessLevel.PRIVATE) class NachrichtHeaderMapper { + private static long toMillisecondsTimestamp(String dateString) { long timestamp = 0; try { @@ -63,4 +64,5 @@ class NachrichtHeaderMapper { return builder.build(); } + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java index f2fec2a82099a67d9fa676afdb548798b57908d4..0e7f66a1844ba29aa5402502306e0eed0d9a6ef3 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java @@ -42,6 +42,7 @@ import lombok.extern.log4j.Log4j2; @Service @RequiredArgsConstructor class NachrichtMapper { + private final @NonNull FileService fileService; private List<OzgFile> getAttachments(List<String> fileIds, String nachrichtId, String nachrichtEventId) { @@ -126,4 +127,5 @@ class NachrichtMapper { return antwort; } + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenController.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenController.java index f81cb4bb84d67d7189e9ed5809dfb88ecd7903fc..b5cd8e3926bf5374103243abc5033b282e40db3f 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenController.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenController.java @@ -44,6 +44,7 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor @SecurityRequirement(name = "security_auth") class NachrichtenController { + static final String PATH = "/api"; // NOSONAR private final @NonNull NachrichtenService service; @@ -69,4 +70,5 @@ class NachrichtenController { CommandReference sendNachricht(@Parameter(description = "The Nachricht content as JSON") @RequestBody @Valid ReplyNachricht nachricht) { return service.sendRueckfrageAnswer(nachricht); } + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteService.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteService.java index 3fb1be48928fdafb737c6d1771a0d35dc34366da..4d3bc500c45635ee622d99998e1a6162ef2fc7f0 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteService.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteService.java @@ -38,6 +38,7 @@ import lombok.extern.log4j.Log4j2; @Log4j2 @RequiredArgsConstructor class NachrichtenRemoteService { + private final NachrichtenRestClient nachrichtenRestClient; private final NachrichtMapper nachrichtMapper; private final AntragraumProxyMapper antragraumProxyMapper; @@ -80,4 +81,5 @@ class NachrichtenRemoteService { .nachrichtEventId(nachricht.nachrichtEventId()) .build(); } + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClient.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClient.java index de64f5d6445c07f34cdb0ac76e3649ff4d995e12..d8a357d1ee977dc486f8ae9fb15a28a018de5f50 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClient.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClient.java @@ -42,6 +42,7 @@ import lombok.extern.log4j.Log4j2; @Log4j2 @Component public class NachrichtenRestClient { + static final String GET_RUECKFRAGEN_URI = "api/v1/rueckfragen"; static final String GET_RUECKFRAGE_URI = "api/v1/rueckfrage"; static final String SEND_ANTWORT_URI = "api/v1/antworten"; @@ -108,4 +109,5 @@ public class NachrichtenRestClient { throw e; } } + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenService.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenService.java index b1a9b37f695f2cfd90675e5cd719aabe8e747f28..22ff98978d9c52c08d03b7a78c776a177c87209c 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenService.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtenService.java @@ -47,6 +47,7 @@ import lombok.extern.log4j.Log4j2; @Validated @RequiredArgsConstructor class NachrichtenService { + static final String RUECKFRAGE_LINK_RELATIONSHIP_NAME = "rueckfrage"; private final @NonNull NachrichtEventService nachrichtEventService; @@ -112,4 +113,5 @@ class NachrichtenService { throw new TechnicalException(new ConstraintViolationException(validationResult)); } } + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java index 071cc1ad752021b551f7844c3dd1952f66a12b73..51d89d93c3f4eb8f80844b6ffd14112b54c8837b 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java @@ -86,4 +86,5 @@ record ReplyNachricht( ", message=<...masked for privacy..>" + '}'; } + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyOption.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyOption.java index dffc73fe9ce861758b54d6435a1a284c084d5bde..bf360a1307c04ec6cc6cf56bbd6c45e4004dd718 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyOption.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyOption.java @@ -23,5 +23,7 @@ package de.ozgcloud.antragsraum.nachricht; enum ReplyOption { - FORBIDDEN, ALLOWED, UNDEFINED + FORBIDDEN, + ALLOWED, + UNDEFINED } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Rueckfrage.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Rueckfrage.java index b4d28c83bf61673b91420dc13ba1509b3684aa3a..bd37ac515eb534a65b1a6c04161cdccae1685d54 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Rueckfrage.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/Rueckfrage.java @@ -31,6 +31,7 @@ import lombok.Getter; @Builder @Getter class Rueckfrage { + @Schema(description = "The title of the Rueckfrage. This is the title of the Vorgang", name = "title", type = "string", @@ -75,4 +76,5 @@ class Rueckfrage { ", antworten=<...masked for privacy..>" + '}'; } + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeader.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeader.java index c170953aef7180725de8e11fe81c36966aa253ba..12566f7a9ee5d52663581e5e773c386208ee4a4d 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeader.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeader.java @@ -33,6 +33,7 @@ import lombok.Getter; @Getter @EqualsAndHashCode(callSuper = true) class RueckfrageHeader extends RepresentationModel<RueckfrageHeader> { + @Schema(description = "The title of the rueckfrage. This is the title of the Vorgang", name = "title", type = "string", @@ -59,4 +60,5 @@ class RueckfrageHeader extends RepresentationModel<RueckfrageHeader> { type = "String" ) String status; + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapper.java index bddbc759e27ed37a944ea46994bedb132b263e19..165dd526a6c339485b22cdd4c4b301cf92809b94 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapper.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapper.java @@ -32,6 +32,7 @@ import lombok.extern.log4j.Log4j2; @Log4j2 @NoArgsConstructor(access = AccessLevel.PRIVATE) class RueckfrageHeaderMapper { + static List<RueckfrageHeader> fromNachrichtHeaders(Collection<NachrichtHeader> nachrichtHeaders) { return nachrichtHeaders.stream().map(RueckfrageHeaderMapper::fromNachrichtHeader).toList(); } @@ -45,4 +46,5 @@ class RueckfrageHeaderMapper { .status(nachrichtHeader.status()) .build(); } + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapper.java index d147533bde77d21fb1a2385df12dcbaaba24e714..25cccb4f6dcfc2fe2ecf7d8895ef05ee40d5b62a 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapper.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapper.java @@ -29,6 +29,7 @@ import lombok.extern.log4j.Log4j2; @Log4j2 @NoArgsConstructor(access = AccessLevel.PRIVATE) class RueckfrageMapper { + static Rueckfrage fromNachricht(Nachricht nachricht) { var clerkNachricht = nachricht.toBuilder().replyNachrichten(null).build(); @@ -41,4 +42,5 @@ class RueckfrageMapper { .antworten(nachricht.replyNachrichten()) .build(); } + } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapper.java index 0ebc5b668b8433b5d29b38b695217b1e89e03e48..6368e2d480f621dd452ffe43284506052b867ed6 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapper.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapper.java @@ -29,6 +29,7 @@ import lombok.extern.log4j.Log4j2; @Log4j2 @NoArgsConstructor(access = AccessLevel.PRIVATE) class TrustLevelMapper { + static final String TRUST_LEVEL_STORK_QAA_LEVEL_1 = "STORK-QAA-Level-1"; static final String TRUST_LEVEL_STORK_QAA_LEVEL_2 = "STORK-QAA-Level-2"; static final String TRUST_LEVEL_STORK_QAA_LEVEL_3 = "STORK-QAA-Level-3"; @@ -53,4 +54,5 @@ class TrustLevelMapper { LOG.debug("Mapping trust level {} to {}", trustLevel, result); return result; } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcFileMetadataTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcFileMetadataTestFactory.java index 4506cc650b89cb9b2ca6c0c34b9f31145824736f..47bee689e55b261d618869330dbfc5e1d7dc2fba 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcFileMetadataTestFactory.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcFileMetadataTestFactory.java @@ -25,6 +25,7 @@ import static de.ozgcloud.antragsraum.attachments.OzgFileTestFactory.*; import de.ozgcloud.antragsraum.proxy.AntragraumGrpcFileMetadata; public class AntragraumGrpcFileMetadataTestFactory { + static AntragraumGrpcFileMetadata create() { var file = new AntragraumGrpcFileMetadata(); file.setContentType(CONTENT_TYPE); @@ -33,4 +34,5 @@ public class AntragraumGrpcFileMetadataTestFactory { return file; } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcGetAttachmentMetadataResponseTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcGetAttachmentMetadataResponseTestFactory.java index 784fa6e1fb2e74ff1a730a3d1cee59f67fbeff23..cbde318ddeb62a353de25626a1483505116fb646 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcGetAttachmentMetadataResponseTestFactory.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/AntragraumGrpcGetAttachmentMetadataResponseTestFactory.java @@ -28,9 +28,11 @@ import lombok.NoArgsConstructor; @NoArgsConstructor(access = AccessLevel.PRIVATE) class AntragraumGrpcGetAttachmentMetadataResponseTestFactory { + static AntragraumGrpcGetAttachmentMetadataResponse create() { var response = new AntragraumGrpcGetAttachmentMetadataResponse(); response.setFileMetadata(AntragraumGrpcFileMetadataTestFactory.create()); return response; } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerITCase.java index 5be8c6bce51110148ce61c128b48762bac4fc825..ab6e7d610e81a622a73e7c5c7717c406722cea94 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerITCase.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerITCase.java @@ -65,6 +65,7 @@ import de.ozgcloud.antragsraum.common.VirusFoundException; "ozgcloud.upload.blocked-content-types=application/vnd.microsoft.portable-executable" }) public class FileControllerITCase { + @SpyBean private FileController controller; @@ -82,6 +83,7 @@ public class FileControllerITCase { @Nested class TestDownloadingFileContent { + @BeforeEach void init() { when(fileService.getFile(any(FileIdentificationData.class))).thenReturn(OzgFileTestFactory.create()); @@ -92,10 +94,12 @@ public class FileControllerITCase { void shouldGetFileContent() throws Exception { performRequest().andExpect(status().isOk()); } + } @Nested class TestFileNotFoundError { + @BeforeEach void init() { doThrow(NotFoundException.class).when(fileService).getFile(any(FileIdentificationData.class)); @@ -106,10 +110,12 @@ public class FileControllerITCase { void shouldReturn404() throws Exception { performRequest().andExpect(status().isNotFound()); } + } @Nested class TestInternalError { + @Test @WithMockUser void shouldReturn500ByTechnicalException() throws Exception { @@ -125,10 +131,12 @@ public class FileControllerITCase { performRequest().andExpect(status().isInternalServerError()); } + } @Nested class TestNotAcceptable { + @BeforeEach void init() { doThrow(VirusFoundException.class).when(fileService).getFile(any(FileIdentificationData.class)); @@ -139,6 +147,7 @@ public class FileControllerITCase { void shouldReturn406ByVirusFoundException() throws Exception { performRequest().andExpect(status().isNotAcceptable()); } + } ResultActions performRequest() throws Exception { @@ -150,6 +159,7 @@ public class FileControllerITCase { @Nested class TestFileUpload { + private final CompletableFuture<String> fileIdFuture = CompletableFuture.completedFuture(FILE_ID); @BeforeEach @@ -200,5 +210,7 @@ public class FileControllerITCase { .andExpect(request().asyncStarted()) .andReturn(); } + } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTest.java index 7fea74c9db5808ae1514c66bd67118290a541748..00ab3bca340375fc9dffc58798ca3d28f905128d 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTest.java @@ -45,6 +45,7 @@ import de.ozgcloud.antragsraum.common.InvalidFileTypeException; @ExtendWith(MockitoExtension.class) class FileControllerTest { + @Spy @InjectMocks private FileController fileController; @@ -57,6 +58,7 @@ class FileControllerTest { @Nested class TestGetFileContent { + @BeforeEach void init() { lenient().when(fileService.getFile(any(FileIdentificationData.class))).thenReturn(OzgFileTestFactory.create()); @@ -110,10 +112,12 @@ class FileControllerTest { assertThat(contentDisposition).hasToString("attachment; filename=\"" + FILE_NAME + "\""); } + } @Nested class TestGetFile { + private static final FileIdentificationData FILE_IDENTIFICATION_DATA = FileIdentificationDataTestFactory.create(); @Test @@ -122,10 +126,12 @@ class FileControllerTest { verify(fileService).getFile(FILE_IDENTIFICATION_DATA); } + } @Nested class TestFileUpload { + private final CompletableFuture<String> fileIdFuture = CompletableFuture.completedFuture(FILE_ID); @Mock @@ -143,10 +149,12 @@ class FileControllerTest { verify(fileService).upload(anyString(), anyString(), any(MultipartFile.class)); } + } @Nested class TestFileUploadExceptions { + @Mock private MultipartFile multipartFile; @@ -169,5 +177,7 @@ class FileControllerTest { assertThatExceptionOfType(InvalidFileTypeException.class).isThrownBy( () -> fileController.uploadFile(VORGANG_ID, NACHRICHT_EVENT_ID, multipartFile)); } + } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTestConfiguration.java index 006f96223eda9846b73a87120795f8541414d0c1..fd8ee4a3591aa11771c225d90c0223461a77da4d 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTestConfiguration.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileControllerTestConfiguration.java @@ -48,4 +48,5 @@ public class FileControllerTestConfiguration { RestClient restClient() { return restClientBuilder().build(); } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceITCase.java index 4f8bbbf0b30bda4191a595694ac68b9b090e130b..a516925dbe4259f3e7c2c907e3fe8eeec764fb87 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceITCase.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceITCase.java @@ -42,6 +42,7 @@ import lombok.extern.log4j.Log4j2; @SpringJUnitConfig(classes = { FileRemoteServiceTestConfiguration.class }) @Log4j2 public class FileRemoteServiceITCase { + private static final FileIdentificationData FILE_IDENTIFICATION_DATA = FileIdentificationDataTestFactory.create(); private static final String ADDRESS = "http://localhost:8088"; @@ -62,6 +63,7 @@ public class FileRemoteServiceITCase { fail(e.getMessage()); } } + } @Nested @@ -82,6 +84,7 @@ public class FileRemoteServiceITCase { assertThat(file).isEqualTo(OzgFileTestFactory.create()); } + } @Nested @@ -95,5 +98,7 @@ public class FileRemoteServiceITCase { assertThat(out.size()).isEqualTo(DATA.length); } + } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTest.java index a519703c1c6ee78029865dbf8aecadc4525e50b9..6fb29ab1e6dd0daa9c9455f7995b72ebd90c865b 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTest.java @@ -44,6 +44,7 @@ import de.ozgcloud.antragsraum.proxy.AntragraumGrpcFileMetadata; @ExtendWith(MockitoExtension.class) class FileRemoteServiceTest { + private static final FileIdentificationData FILE_IDENTIFICATION_DATA = FileIdentificationDataTestFactory.create(); @Spy @@ -58,6 +59,7 @@ class FileRemoteServiceTest { @Nested class TestLoadingFile { + @BeforeEach void init() { lenient().when(restClient.getFileMetadata(any(FileIdentificationData.class), anyString())).thenReturn( @@ -112,10 +114,12 @@ class FileRemoteServiceTest { assertThat(file).isNull(); } + } @Nested class TestDownloadFileContent { + private final ByteArrayOutputStream output = new ByteArrayOutputStream(); @Test @@ -124,15 +128,19 @@ class FileRemoteServiceTest { verify(restClient).downloadFileContent(eq(FILE_IDENTIFICATION_DATA), eq(CHANNEL_ADDRESS), any(OutputStream.class)); } + } @Nested class TestUploadFile { + @Test void shouldCallRestClient() { remoteService.uploadFile(OzgUploadFileTestFactory.create(), CHANNEL_ADDRESS); verify(restClient).uploadFile(any(OzgUploadFile.class), eq(CHANNEL_ADDRESS), any()); } + } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTestConfiguration.java index abbf945050ddad9e86310c2b1525351c4de070a7..daf5380aa2f33a07043103cf3e95bedc55acc157 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTestConfiguration.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRemoteServiceTestConfiguration.java @@ -38,6 +38,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventService; classes = { FileControllerTestConfiguration.class, FileController.class, FileRestClientTestConfiguration.class })) @Configuration public class FileRemoteServiceTestConfiguration { + @Bean FileRestClient fileRestClient() { return new StubFileRestClient(); @@ -60,4 +61,5 @@ public class FileRemoteServiceTestConfiguration { @MockBean NachrichtEventService nachrichtEventService; + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTest.java index dc60cc51bac544490fae72ff1bdd86fdfdf46573..8e8e65537102597878a5bf48c581045216031218 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTest.java @@ -56,6 +56,7 @@ import de.ozgcloud.antragsraum.security.UserTestFactory; @SpringJUnitConfig(classes = { FileRestClientTestConfiguration.class }) @RestClientTest(FileRestClient.class) class FileRestClientTest { + private static final FileIdentificationData FILE_IDENTIFICATION_DATA = FileIdentificationDataTestFactory.create(); static final String ADDRESS = "http://localhost:8382"; @@ -107,6 +108,7 @@ class FileRestClientTest { () -> fileRestClient.getFileMetadata(FILE_IDENTIFICATION_DATA, ADDRESS + GET_FILE_CONTENT_API)); } } + } @Nested @@ -133,6 +135,7 @@ class FileRestClientTest { assertThat(fileId).withFailMessage(NO_FILE_ID_RECEIVED_MESSAGE).isCompletedExceptionally(); } + } @Nested @@ -181,5 +184,7 @@ class FileRestClientTest { mock(ByteArrayOutputStream.class))); } } + } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTestConfiguration.java index 73d964c9b5375a27e8ba58413ea843d2324bb41a..cf12190d48fabd31ab5b7ba131eedb67e2382711 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTestConfiguration.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileRestClientTestConfiguration.java @@ -41,6 +41,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventService; classes = { FileControllerTestConfiguration.class, FileController.class, FileRemoteServiceTestConfiguration.class })) @Configuration public class FileRestClientTestConfiguration { + @MockBean FileService fileService; diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileServiceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileServiceTest.java index 7068149336848d7b10793c2683afba94136925f6..119f61c30282fa7047c45aff9e23ccae74a73df7 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileServiceTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileServiceTest.java @@ -47,6 +47,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventService; import de.ozgcloud.antragsraum.events.NachrichtEventTestFactory; class FileServiceTest { + private static final FileIdentificationData FILE_IDENTIFICATION_DATA = FileIdentificationDataTestFactory.create(); @Spy @@ -64,6 +65,7 @@ class FileServiceTest { @Nested class TestFileUpload { + @Spy private MultipartFile multipartFile = OzgUploadFileTestFactory.MULTIPART_FILE; @@ -92,10 +94,12 @@ class FileServiceTest { fail("Exception happened! " + e.getMessage()); } } + } @Nested class TestExceptionWhenSendingFile { + @Spy private final MultipartFile multipartFile = OzgUploadFileTestFactory.MULTIPART_FILE; @@ -107,10 +111,12 @@ class FileServiceTest { assertThatExceptionOfType(TechnicalException.class).isThrownBy( () -> fileService.upload(VORGANG_ID, NACHRICHT_EVENT_ID, multipartFile)); } + } @Nested class TestLoadingFile { + @BeforeEach void init() { when(remoteService.getFile(any(FileIdentificationData.class), anyString())).thenReturn(OzgFileTestFactory.create()); @@ -123,10 +129,12 @@ class FileServiceTest { assertThat(file).isNotNull(); } + } @Nested class TestDownloadingFileContent { + @BeforeEach void init() { when(nachrichtEventService.getNachrichtEventById(NACHRICHT_EVENT_ID)).thenReturn(NachrichtEventTestFactory.create()); @@ -138,10 +146,12 @@ class FileServiceTest { verify(remoteService).downloadFileContent(any(FileIdentificationData.class), anyString(), any(OutputStream.class)); } + } @Nested class TestVirusScanning { + @Mock private MultipartFile multipartFile; @@ -152,5 +162,7 @@ class FileServiceTest { assertThatExceptionOfType(VirusFoundException.class).isThrownBy( () -> fileService.createUploadFile(VORGANG_ID, multipartFile)); } + } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileValidatorTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileValidatorTest.java index 97ef3384b172d94a275d632bc07c5c5e15c3f4d1..0fdaccce90cb9d55f58d6430b38c0c3b30bca679 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileValidatorTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/FileValidatorTest.java @@ -36,6 +36,7 @@ import org.springframework.util.unit.DataSize; @ExtendWith(MockitoExtension.class) class FileValidatorTest { + static final MockMultipartFile TEST_FILE = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA); static final MockMultipartFile TEST_INVALID_FILE = new MockMultipartFile("file", FILE_NAME, INVALID_CONTENT_TYPE, DATA); static final MockMultipartFile TEST_TOO_LARGE_FILE = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, new byte[150_000_000]); @@ -48,6 +49,7 @@ class FileValidatorTest { @Nested class TestFileSizeIsValid { + @BeforeEach void init() { when(fileProperties.getMaxFileSize()).thenReturn(DataSize.ofMegabytes(100)); @@ -66,10 +68,12 @@ class FileValidatorTest { assertThat(result).isFalse(); } + } @Nested class TestFileContentTypeIsValid { + @Test void shouldBeValid() { when(fileProperties.getBlockedContentTypes()).thenReturn(new String[] { INVALID_CONTENT_TYPE }); @@ -94,10 +98,12 @@ class FileValidatorTest { assertThat(result).isFalse(); } + } @Nested class TestIsValid { + @BeforeEach void init() { when(fileProperties.getMaxFileSize()).thenReturn(DataSize.ofMegabytes(100)); @@ -127,5 +133,7 @@ class FileValidatorTest { assertThat(result).isTrue(); } + } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileMapperTest.java index 0bf371ff7788306ad627870860cc620d1de8e438..ba6a55b68a5dee4ffebe276fb80faa5aa5793fcb 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileMapperTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileMapperTest.java @@ -37,6 +37,7 @@ class OzgFileMapperTest { @Nested class TestMappingGrpcOzgFile { + private final AntragraumGrpcFileMetadata grpcOzgFile = AntragraumGrpcFileMetadataTestFactory.create(); @Test @@ -66,6 +67,7 @@ class OzgFileMapperTest { assertThat(file.id()).isEqualTo(FILE_ID); } + } } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileTestFactory.java index 97c8a98d5f72da9a2e5c11f5f2fdafaee13cfb35..6411af33509eb604e6c848a7fce9d934e2630886 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileTestFactory.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgFileTestFactory.java @@ -25,6 +25,7 @@ import java.util.UUID; import org.apache.http.entity.ContentType; public class OzgFileTestFactory { + static final String FILE_ID = UUID.randomUUID().toString(); static final String VORGANG_ID = UUID.randomUUID().toString(); static final String CONTENT_TYPE = ContentType.APPLICATION_OCTET_STREAM.toString(); @@ -48,4 +49,5 @@ public class OzgFileTestFactory { .fileSize(FILE_SIZE) .fileName(FILE_NAME); } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgUploadFileTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgUploadFileTestFactory.java index 040bdd6d9660e967369f342433827aed70f0726e..39926754f1a57e1d727d59eb4c9e07007e7fa8f7 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgUploadFileTestFactory.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/OzgUploadFileTestFactory.java @@ -33,6 +33,7 @@ import org.springframework.http.MediaType; import org.springframework.web.multipart.MultipartFile; public class OzgUploadFileTestFactory { + public final static MultipartFile MULTIPART_FILE = new TestMultipartFile(); static OzgUploadFile create() { @@ -46,6 +47,7 @@ public class OzgUploadFileTestFactory { } static class TestMultipartFile implements MultipartFile { + @Override public @NotNull String getName() { return "test.txt"; @@ -87,5 +89,7 @@ public class OzgUploadFileTestFactory { fos.write(DATA); } } + } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/StubFileRestClient.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/StubFileRestClient.java index 46a80b56b36b90c082fbe3948e98668bb4eeb0c4..613f3657235e2f96a928369f6e7ea0cec2849791 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/StubFileRestClient.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/StubFileRestClient.java @@ -31,6 +31,7 @@ import java.util.concurrent.CompletableFuture; import de.ozgcloud.antragsraum.proxy.AntragraumGrpcGetAttachmentMetadataResponse; class StubFileRestClient extends FileRestClient { + public StubFileRestClient() { super(null); } @@ -50,4 +51,5 @@ class StubFileRestClient extends FileRestClient { throw new RuntimeException(e); } } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTest.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTest.java index 2ffd3a934b5ff641a4b8a27446825eae5193162f..2e28a158933aacf12b6768ab1ab1ea7a978003d5 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTest.java @@ -22,11 +22,9 @@ package de.ozgcloud.antragsraum.attachments; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatExceptionOfType; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; +import static org.assertj.core.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.*; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; @@ -45,78 +43,82 @@ import org.springframework.web.client.RestTemplate; @ExtendWith(MockitoExtension.class) public class VirusScannerClientTest { - private static final String CLAMAV_SCAN_URL = "TestClamAVScanUrl"; - private static final String FILE_NAME = "MockFileName.pdf"; - - @Spy - @InjectMocks - private VirusScannerClient virusScannerClient; - - @Mock - private RestTemplate restTemplate; - - @BeforeEach - void setup() { - ReflectionTestUtils.setField(virusScannerClient, "clamAVScanUrl", CLAMAV_SCAN_URL); - } - - @Nested - class TestVirusScanNotSuccessful { - - @Test - void shouldThrowRuntimeExceptionOnClamAVCall() { - var file = new MockMultipartFile(FILE_NAME, new byte[0]); - var status = HttpStatus.INTERNAL_SERVER_ERROR; - var response = new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(), status); - - when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class), - eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response); - - assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> virusScannerClient.scan(file)); - } - - @Test - void shouldThrowRuntimeExceptionOnScan() { - var file = new MockMultipartFile(FILE_NAME, new byte[0]); - var status = HttpStatus.OK; - var response = - new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(false, false), status); - - when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class), - eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response); - - assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> virusScannerClient.scan(file)); - } - } - - @Nested - class TestVirusScanSuccessful { - - @Test - void shouldHaveTwoVirusesInResult() { - var file = new MockMultipartFile(FILE_NAME, new byte[0]); - var status = HttpStatus.OK; - var response = - new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(true, true), status); - - when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class), - eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response); - - var result = virusScannerClient.scan(file); - assertThat(result).hasSize(2); - } - - @Test - void shouldHaveEmptyResult() { - var file = new MockMultipartFile(FILE_NAME, new byte[0]); - var status = HttpStatus.OK; - var response = new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(), status); - - when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class), - eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response); - - var result = virusScannerClient.scan(file); - assertThat(result).isEmpty(); - } - } + + private static final String CLAMAV_SCAN_URL = "TestClamAVScanUrl"; + private static final String FILE_NAME = "MockFileName.pdf"; + + @Spy + @InjectMocks + private VirusScannerClient virusScannerClient; + + @Mock + private RestTemplate restTemplate; + + @BeforeEach + void setup() { + ReflectionTestUtils.setField(virusScannerClient, "clamAVScanUrl", CLAMAV_SCAN_URL); + } + + @Nested + class TestVirusScanNotSuccessful { + + @Test + void shouldThrowRuntimeExceptionOnClamAVCall() { + var file = new MockMultipartFile(FILE_NAME, new byte[0]); + var status = HttpStatus.INTERNAL_SERVER_ERROR; + var response = new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(), status); + + when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class), + eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response); + + assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> virusScannerClient.scan(file)); + } + + @Test + void shouldThrowRuntimeExceptionOnScan() { + var file = new MockMultipartFile(FILE_NAME, new byte[0]); + var status = HttpStatus.OK; + var response = + new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(false, false), status); + + when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class), + eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response); + + assertThatExceptionOfType(RuntimeException.class).isThrownBy(() -> virusScannerClient.scan(file)); + } + + } + + @Nested + class TestVirusScanSuccessful { + + @Test + void shouldHaveTwoVirusesInResult() { + var file = new MockMultipartFile(FILE_NAME, new byte[0]); + var status = HttpStatus.OK; + var response = + new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(true, true), status); + + when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class), + eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response); + + var result = virusScannerClient.scan(file); + assertThat(result).hasSize(2); + } + + @Test + void shouldHaveEmptyResult() { + var file = new MockMultipartFile(FILE_NAME, new byte[0]); + var status = HttpStatus.OK; + var response = new ResponseEntity<>(VirusScannerClientTestFactory.createVirusScanResponse(), status); + + when(restTemplate.postForEntity(eq(CLAMAV_SCAN_URL), any(HttpEntity.class), + eq(VirusScannerClient.VirusScanResponse.class))).thenReturn(response); + + var result = virusScannerClient.scan(file); + assertThat(result).isEmpty(); + } + + } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTestFactory.java index 29809c1e1da9b64940b679d471413bf465392420..3f594577981f32d0f927e0a66cddebac3bd281a8 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTestFactory.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/attachments/VirusScannerClientTestFactory.java @@ -23,25 +23,27 @@ package de.ozgcloud.antragsraum.attachments; class VirusScannerClientTestFactory { - static final String FILE_NAME = "TestFileName.pdf"; - static VirusScannerClient.VirusScanResponse createVirusScanResponse() { - return createVirusScanResponse(true, false); - } + static final String FILE_NAME = "TestFileName.pdf"; - static VirusScannerClient.VirusScanResponse createVirusScanResponse(boolean successful, boolean infected) { - VirusScannerClient.VirusScanResult result = new VirusScannerClient.VirusScanResult(); - result.setName(FILE_NAME); - result.setInfected(infected); - result.setViruses(infected ? new String[] {"VirusA", "VirusB"} : new String[] {}); + static VirusScannerClient.VirusScanResponse createVirusScanResponse() { + return createVirusScanResponse(true, false); + } - VirusScannerClient.VirusScanData data = new VirusScannerClient.VirusScanData(); - data.setResult(new VirusScannerClient.VirusScanResult[] {result}); + static VirusScannerClient.VirusScanResponse createVirusScanResponse(boolean successful, boolean infected) { + VirusScannerClient.VirusScanResult result = new VirusScannerClient.VirusScanResult(); + result.setName(FILE_NAME); + result.setInfected(infected); + result.setViruses(infected ? new String[] { "VirusA", "VirusB" } : new String[] {}); - VirusScannerClient.VirusScanResponse response = new VirusScannerClient.VirusScanResponse(); - response.setData(data); - response.setSuccess(successful); + VirusScannerClient.VirusScanData data = new VirusScannerClient.VirusScanData(); + data.setResult(new VirusScannerClient.VirusScanResult[] { result }); + + VirusScannerClient.VirusScanResponse response = new VirusScannerClient.VirusScanResponse(); + response.setData(data); + response.setSuccess(successful); + + return response; + } - return response; - } } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java index 66cad5b1ef50dceb4e8677734614761e580d057e..9bcffac2907f1b7ad766d475fea0268eb5ca759f 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java @@ -36,6 +36,7 @@ class AntragraumProxyMapperTest { @Nested class TestToRestProxyAntwort { + private final ReplyNachricht replyNachricht = ReplyNachrichtTestFactory.create(); @Test @@ -58,6 +59,7 @@ class AntragraumProxyMapperTest { assertThat(grpcRueckfrageAnswer.getAttachmentFileId()).isEqualTo(Collections.emptyList()); } + } } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumproxyGrpcRueckfrageTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumproxyGrpcRueckfrageTestFactory.java index 7d85279f39764541af9e381c0d3447f844840277..65859bb2856f3803b7fc13c712349886a89d7f9a 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumproxyGrpcRueckfrageTestFactory.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumproxyGrpcRueckfrageTestFactory.java @@ -36,6 +36,7 @@ import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcRueckfrageHead; import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcSendRueckfrageAnswerResponse; public class AntragraumproxyGrpcRueckfrageTestFactory { + public static final String RUECKFRAGE_ID = UUID.randomUUID().toString(); public static final String VORGANG_ID = UUID.randomUUID().toString(); public static final String VORGANG_NAME = NachrichtTestFactory.VORGANG_TITLE; @@ -124,4 +125,5 @@ public class AntragraumproxyGrpcRueckfrageTestFactory { response.setCommandId(CommandTestFactory.ID); return response; } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapperTest.java index 9a1efc4633fcbf52c99b344deac883e20bc1f455..5207a7bc5cb9a7c0d8acd1084ed8f3e34202ebd5 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapperTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AttachmentMapperTest.java @@ -32,6 +32,7 @@ import org.junit.jupiter.api.Test; import de.ozgcloud.vorgang.grpc.binaryFile.GrpcBinaryFile; class AttachmentMapperTest { + static final String ID = UUID.randomUUID().toString(); static final String CONTENT_TYPE = ContentType.APPLICATION_OCTET_STREAM.toString(); static final long FILE_SIZE = 10; @@ -46,6 +47,7 @@ class AttachmentMapperTest { @Nested class MapFromGrpcBinaryFile { + @Test void shouldMapAttachment() { var res = AttachmentMapper.fromGrpcBinaryFile(file); @@ -80,5 +82,7 @@ class AttachmentMapperTest { assertThat(res).isEqualTo(CONTENT_TYPE); } + } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapperTest.java index a32975ad800ab85abcd0415ee39fe70899b814d0..a20f76e228bd65ab6b79f917be15fb39531a6129 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapperTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtHeaderMapperTest.java @@ -28,6 +28,7 @@ import org.junit.jupiter.api.Test; import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcRueckfrageHead; class NachrichtHeaderMapperTest { + private final AntragraumproxyGrpcRueckfrageHead rueckfrageHead = AntragraumproxyGrpcRueckfrageTestFactory.createRueckfrageHead(); @Test @@ -101,4 +102,5 @@ class NachrichtHeaderMapperTest { assertThat(nachrichtHeader.status()).isEqualTo(AntragraumproxyGrpcRueckfrageTestFactory.STATUS); } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java index 8b70b50ce731fb640bbb99052b63ebfeb34e5808..dfaf66c36cd42c7072d9014abd518d175a2d8564 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java @@ -43,6 +43,7 @@ import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcRueckfrage; @ExtendWith(MockitoExtension.class) class NachrichtMapperTest { + @Mock private FileService fileService; @@ -60,6 +61,7 @@ class NachrichtMapperTest { @Nested class TestFromRestRueckfrage { + private final AntragraumproxyGrpcRueckfrage rueckfrage = AntragraumproxyGrpcRueckfrageTestFactory.createRueckfrage(); private final AntragraumproxyGrpcRueckfrage answeredRueckfrage = AntragraumproxyGrpcRueckfrageTestFactory.createRueckfrageWithReply(); @@ -213,10 +215,12 @@ class NachrichtMapperTest { assertThat(nachricht.status()).isEqualTo(NachrichtTestFactory.STATUS); } + } @Nested class TestToGrpcRueckfrageAnswer { + @Test void shouldMapNachrichtText() { var nachricht = mapper.toRestRueckfrageAnswer(ReplyNachrichtTestFactory.create()); @@ -249,5 +253,7 @@ class NachrichtMapperTest { assertThat(nachricht.attachments()).isEmpty(); } + } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtServiceTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtServiceTestConfiguration.java index 69b632c38601e06fb675ec4a35cd2d301b1d375a..bf821c3cea0f3fb24599077c620aab157eaf00c1 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtServiceTestConfiguration.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtServiceTestConfiguration.java @@ -42,6 +42,7 @@ import de.ozgcloud.antragsraum.WebConfiguration; NachrichtenControllerTestConfiguration.class })) @Configuration public class NachrichtServiceTestConfiguration { + @Bean(name = WebConfiguration.NACHRICHT_REST_CLIENT) public RestClient restClient() { return RestClient.builder() @@ -53,4 +54,5 @@ public class NachrichtServiceTestConfiguration { public Validator defaultValidator() { return new LocalValidatorFactoryBean(); } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTest.java index 200b613a84fa15bcc10bd25b3685b304af9b3fc2..d13a2cfd5b62bc8f8f2d50f156da37072d0c11a8 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTest.java @@ -27,6 +27,7 @@ import static org.assertj.core.api.Assertions.*; import org.junit.jupiter.api.Test; class NachrichtTest { + private final Nachricht nachricht = NachrichtTestFactory.createNachricht(); @Test @@ -35,4 +36,5 @@ class NachrichtTest { assertThat(nachrichtString).doesNotContain(NachrichtTestFactory.TEXT); } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTestFactory.java index a90b4c4b403ca74a37ef03cff5f5f75b7305fef4..36e7504b6c28b253434f955d7623be7f866160ef 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTestFactory.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtTestFactory.java @@ -27,6 +27,7 @@ import java.util.List; import java.util.UUID; public class NachrichtTestFactory { + public static final String ID = UUID.randomUUID().toString(); public static final String NACHRICHT_EVENT_ID = UUID.randomUUID().toString(); public static final String POSTFACH_ID = UUID.randomUUID().toString(); @@ -89,4 +90,5 @@ public class NachrichtTestFactory { .accessible(ACCESSIBLE) .status(STATUS); } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java index e56cb39db2d08a57d4fca5adb36323daef352f8a..75ec631e94bae9a3053e32b2e07e36cda9a37aac 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java @@ -56,6 +56,7 @@ import de.ozgcloud.antragsraum.common.TechnicalException; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK) @SpringJUnitConfig(classes = { NachrichtenControllerTestConfiguration.class }) public class NachrichtenControllerITCase { + @SpyBean private NachrichtenController nachrichtenController; @@ -70,6 +71,7 @@ public class NachrichtenControllerITCase { @Nested class TestLoadingRueckfrageHeaders { + @Test @WithMockUser void shouldLoadRueckfragenHeader() throws Exception { @@ -143,10 +145,12 @@ public class NachrichtenControllerITCase { get(NachrichtenController.PATH + "/rueckfragen/" + NachrichtTestFactory.POSTFACH_ID) .contentType(MediaType.APPLICATION_JSON).characterEncoding(Charset.defaultCharset())); } + } @Nested class TestLoadingRueckfrage { + @BeforeEach void init() { when(nachrichtenService.getRueckfrage(NachrichtTestFactory.ID, NachrichtTestFactory.NACHRICHT_EVENT_ID)).thenReturn( @@ -188,10 +192,12 @@ public class NachrichtenControllerITCase { get(NachrichtenController.PATH + "/rueckfrage/" + NachrichtTestFactory.ID + "/" + NachrichtTestFactory.NACHRICHT_EVENT_ID) .contentType(MediaType.APPLICATION_JSON).characterEncoding(Charset.defaultCharset())); } + } @Nested class TestSendingNachricht { + private final ObjectMapper mapper = new ObjectMapper(); private final ReplyNachricht msg = ReplyNachrichtTestFactory.create(); private final CommandReference commandReference = CommandReferenceTestFactory.create(); @@ -228,6 +234,7 @@ public class NachrichtenControllerITCase { @Nested class TestSendingInvalidReply { + @Test @WithMockUser void shouldNotSendNachrichtBlankRueckfrageId() throws Exception { @@ -267,6 +274,7 @@ public class NachrichtenControllerITCase { performPutRequest(mapper.writeValueAsString(invalidMsg)).andExpect(status().isBadRequest()); } + } ResultActions performPutRequest(String body) throws Exception { @@ -277,5 +285,7 @@ public class NachrichtenControllerITCase { .characterEncoding(Charset.defaultCharset()) .content(body)); } + } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTest.java index 4cbade4e3e0ad583f973d91afc5a2bff75d02f92..b04f71d2daace4ceb88d4df43e3e658c880a398a 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTest.java @@ -37,6 +37,7 @@ import org.mockito.junit.jupiter.MockitoExtension; @ExtendWith(MockitoExtension.class) class NachrichtenControllerTest { + @Spy @InjectMocks private NachrichtenController nachrichtenController; @@ -46,6 +47,7 @@ class NachrichtenControllerTest { @Nested class TestLoadingRueckfrageHeaders { + @BeforeEach void init() { when(nachrichtenService.getRueckfrageHeadersOfPostfach(NachrichtTestFactory.POSTFACH_ID)).thenReturn( @@ -65,10 +67,12 @@ class NachrichtenControllerTest { verify(nachrichtenService).getRueckfrageHeadersOfPostfach(anyString()); } + } @Nested class TestLoadingRueckfrage { + @BeforeEach void init() { when(nachrichtenService.getRueckfrage(NachrichtTestFactory.ID, NachrichtTestFactory.NACHRICHT_EVENT_ID)).thenReturn( @@ -88,15 +92,19 @@ class NachrichtenControllerTest { verify(nachrichtenService).getRueckfrage(anyString(), anyString()); } + } @Nested class TestSendingAnswer { + @Test void shouldCallService() { nachrichtenController.sendNachricht(ReplyNachrichtTestFactory.create()); verify(nachrichtenService).sendRueckfrageAnswer(any(ReplyNachricht.class)); } + } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTestConfiguration.java index 0b87eca4ef6aa7b48974d7976d95ac82c989cdf3..2ac99b2703aba6e496696d7d1324a5ba865903fb 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTestConfiguration.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerTestConfiguration.java @@ -39,10 +39,12 @@ import de.ozgcloud.antragsraum.WebConfiguration; NachrichtServiceTestConfiguration.class })) @Configuration public class NachrichtenControllerTestConfiguration { + @Bean(name = WebConfiguration.NACHRICHT_REST_CLIENT) public RestClient restClient() { return RestClient.builder() .baseUrl("http//localhost:8080") .build(); } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceITCase.java index 87c29ba69677ab13b2ad3824af89097f03935ced..3efbdd4a46e6453a280cff38e70a274eac18279f 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceITCase.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceITCase.java @@ -45,6 +45,7 @@ import lombok.extern.log4j.Log4j2; @SpringJUnitConfig(classes = { NachrichtenRemoteServiceTestConfiguration.class }) @Log4j2 class NachrichtenRemoteServiceITCase { + public static final String ADDRESS = "localhost"; String samlResponse; @@ -63,6 +64,7 @@ class NachrichtenRemoteServiceITCase { @Nested class TestGetNachrichtHeaders { + private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createBuilder().address(ADDRESS).build(); @BeforeEach @@ -87,10 +89,12 @@ class NachrichtenRemoteServiceITCase { assertThat(nachrichtHeaders.getFirst().id()).isEqualTo(RUECKFRAGE_ID); } + } @Nested class TestGetNachricht { + private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.createBuilder().address(ADDRESS).build(); @BeforeEach @@ -111,10 +115,12 @@ class NachrichtenRemoteServiceITCase { assertThat(nachricht.id()).isEqualTo(RUECKFRAGE_ID); } + } @Nested class TestSendNachricht { + @Test void shouldSendNachricht() { initUserPasswordToken(); @@ -127,10 +133,12 @@ class NachrichtenRemoteServiceITCase { throw new RuntimeException(e); } } + } private void initUserPasswordToken() { UsernamePasswordAuthenticationToken authentication = mock(UsernamePasswordAuthenticationToken.class); SecurityContextHolder.getContext().setAuthentication(authentication); } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTest.java index 91cd3548e08d65ebace981c914a73793ef39e327..fc06837b82bc97be2a30c08e4a0c9c8b36965af7 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTest.java @@ -57,6 +57,7 @@ import io.grpc.StatusRuntimeException; @ExtendWith(MockitoExtension.class) public class NachrichtenRemoteServiceTest { + public static final String ADDRESS = "test"; @Spy @@ -83,6 +84,7 @@ public class NachrichtenRemoteServiceTest { @Nested class TestNachrichtenAvailable { + private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.create(); @BeforeEach @@ -118,10 +120,12 @@ public class NachrichtenRemoteServiceTest { verify(nachrichtenRestClient).getFindRueckfragen(anyString(), anyString(), anyString()); } + } @Nested class TestNoNachrichtenAvailable { + @BeforeEach void init() { doThrow(StatusRuntimeException.class).when(nachrichtenRestClient).getFindRueckfragen(anyString(), anyString(), anyString()); @@ -133,10 +137,12 @@ public class NachrichtenRemoteServiceTest { assertThat(nachrichtHeaders).isEmpty(); } + } @Nested class TestNoTargetAddressAvailable { + @BeforeEach void init() { doThrow(AddressNotFoundException.class).when(nachrichtenRestClient) @@ -149,10 +155,12 @@ public class NachrichtenRemoteServiceTest { assertThatExceptionOfType(AddressNotFoundException.class).isThrownBy(() -> nachrichtenRemoteService.findRueckfrageHeads(nachrichtEvent)); } + } @Nested class TestGetNachricht { + private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.create(); @BeforeEach @@ -176,10 +184,12 @@ public class NachrichtenRemoteServiceTest { verify(nachrichtenRestClient).getGetRueckfrage(anyString(), anyString(), anyString()); } + } @Nested class TestGetNachrichtError { + @Test void shouldHandleNullRueckfrage() { when(nachrichtenRestClient.getGetRueckfrage(anyString(), anyString(), anyString())).thenReturn( @@ -201,10 +211,12 @@ public class NachrichtenRemoteServiceTest { verify(nachrichtenRestClient).getGetRueckfrage(anyString(), anyString(), anyString()); } + } @Nested class TestSendAnswer { + private final ReplyNachricht reply = ReplyNachrichtTestFactory.create(); @BeforeEach @@ -237,5 +249,7 @@ public class NachrichtenRemoteServiceTest { verify(nachrichtenRestClient).answerRueckfrage(any(AntragraumproxyGrpcRueckfrageAnswer.class), anyString(), anyString()); } + } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTestConfiguration.java index 21f2bd81161301c657450d428e0a7523e6822b53..69bffac07e707260d47270df315e92d3d3496d4e 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTestConfiguration.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRemoteServiceTestConfiguration.java @@ -45,6 +45,7 @@ import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcSendRueckfrageAnswerResp NachrichtServiceTestConfiguration.class })) @Configuration public class NachrichtenRemoteServiceTestConfiguration { + @MockBean private FileService fileService; @MockBean diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTest.java index d8da0cfa0efd193972a659ca091d8a159a2113de..643cf8930b8c5e46dfb18af71bd625f6a3f90ad3 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTest.java @@ -44,6 +44,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; @SpringJUnitConfig(classes = { NachrichtenRestClientTestConfiguration.class }) @RestClientTest(NachrichtenRestClient.class) class NachrichtenRestClientTest { + final static String ADDRESS = "http://localhost:8382/"; private final static String TOKEN = "saml_token"; @@ -64,6 +65,7 @@ class NachrichtenRestClientTest { @Nested class TestRueckfrageAnswer { + @BeforeEach void setup() throws JsonProcessingException { customizer.customize(restClientBuilder); @@ -79,10 +81,12 @@ class NachrichtenRestClientTest { assertThat(response).isNotNull(); } + } @Nested class TestFindRueckfragen { + @BeforeEach void setup() throws JsonProcessingException { customizer.customize(restClientBuilder); @@ -98,10 +102,12 @@ class NachrichtenRestClientTest { assertThat(response).isNotNull(); } + } @Nested class TestGetRueckfrage { + @BeforeEach void setup() throws JsonProcessingException { customizer.customize(restClientBuilder); @@ -117,7 +123,9 @@ class NachrichtenRestClientTest { assertThat(response).isNotNull(); } + } + } } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTestConfiguration.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTestConfiguration.java index e39f0412df4f61466aea73e25a78437b5d91396b..2666770b5d7a3548ec9765484589008386153881 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTestConfiguration.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenRestClientTestConfiguration.java @@ -43,6 +43,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventService; NachrichtServiceTestConfiguration.class })) @Configuration public class NachrichtenRestClientTestConfiguration { + @MockBean FileService fileService; diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceITCase.java index 56e897f3bec843a5916bb08dfe1196b55d049401..6e5847c6d948ba32a6349b6cbfc761a442bfaf06 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceITCase.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceITCase.java @@ -47,6 +47,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventTestFactory; @SpringBootTest @SpringJUnitConfig(classes = { NachrichtServiceTestConfiguration.class }) class NachrichtenServiceITCase { + public static final int OVERSIZED_EVENT_ID = 25; public static final int OVERSIZED_ID = 25; public static final int OVERSIZED_POSTFACH_ID = UUID.randomUUID().toString().length() + 1; @@ -65,6 +66,7 @@ class NachrichtenServiceITCase { @Nested class TestSendNachricht { + @BeforeEach void init() { when(nachrichtEventService.getNachrichtEventById(anyString())).thenReturn(NachrichtEventTestFactory.create()); @@ -127,6 +129,9 @@ class NachrichtenServiceITCase { assertThatExceptionOfType(TechnicalException.class).isThrownBy(() -> nachrichtenService.sendRueckfrageAnswer(msg)) .withMessageStartingWith("TechnicalException happened! Message: attachments: size must be between 0 and 20"); } + } + } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceTest.java index ac8c2a8a36b66992357960564318a93dab96532b..be2a9f4a0b3102e32b0461b10eec0178a3f6f677 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenServiceTest.java @@ -51,6 +51,7 @@ import de.ozgcloud.antragsraum.events.NachrichtEventTestFactory; @ExtendWith(MockitoExtension.class) class NachrichtenServiceTest { + @Spy @InjectMocks private NachrichtenService nachrichtenService; @@ -63,6 +64,7 @@ class NachrichtenServiceTest { @Nested class TestGetRueckfrageHeadersOfPostfach { + @BeforeEach void init() { when(nachrichtEventService.getNachrichtEventsOfPostfachId(anyString())).thenReturn( @@ -101,10 +103,12 @@ class NachrichtenServiceTest { assertThat(result.getFirst().getLinks()).isEqualTo(fullyLinkedHeader.getLinks()); } + } @Nested class TestGetRueckfrage { + private final NachrichtEvent nachrichtEvent = NachrichtEventTestFactory.create(); @BeforeEach @@ -131,10 +135,12 @@ class NachrichtenServiceTest { () -> nachrichtenService.getRueckfrage(NachrichtTestFactory.ID, NachrichtTestFactory.NACHRICHT_EVENT_ID)) .withMessage("Current user does not have the required trust level for the Rueckfrage with id '" + NachrichtTestFactory.ID + "'."); } + } @Nested class TestGetNachrichtHeadersOfPostfachWithNachrichtenEventAvailable { + final NachrichtEvent event = NachrichtEventTestFactory.create(); @BeforeEach @@ -164,10 +170,12 @@ class NachrichtenServiceTest { assertThat(nachrichtHeaders.stream().findFirst()).isPresent().map(NachrichtHeader::postfachId).hasValue(event.postfachId()); } + } @Nested class TestGetNachrichtHeadersOfPostfachWithNoNachrichtenEventAvailable { + @BeforeEach void init() { when(nachrichtEventService.getNachrichtEventsOfPostfachId(anyString())).thenReturn(List.of()); @@ -186,10 +194,12 @@ class NachrichtenServiceTest { verify(nachrichtenRemoteService, never()).findRueckfrageHeads(any(NachrichtEvent.class)); } + } @Nested class TestSendNachricht { + ReplyNachricht msg = ReplyNachrichtTestFactory.create(); @BeforeEach @@ -211,10 +221,12 @@ class NachrichtenServiceTest { assertThat(result).isInstanceOf(CommandReference.class); } + } @Nested class TestValidation { + @Test @SuppressWarnings("unchecked") void shouldNotCallSendOnValidationError() { @@ -222,5 +234,7 @@ class NachrichtenServiceTest { assertThatException().isThrownBy(() -> nachrichtenService.sendRueckfrageAnswer(ReplyNachrichtTestFactory.create())); } + } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTest.java index ca1cad65796e8514201319ec56e8c7663e9e5f0b..d4de599e420541a2907597549e92d72ccf9aa973 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTest.java @@ -27,6 +27,7 @@ import static org.assertj.core.api.Assertions.*; import org.junit.jupiter.api.Test; class ReplyNachrichtTest { + final ReplyNachricht replyNachricht = ReplyNachrichtTestFactory.create(); @Test @@ -35,4 +36,5 @@ class ReplyNachrichtTest { assertThat(replyNachrichtText).doesNotContain(ReplyNachrichtTestFactory.TEXT); } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java index e0b0bf7a544a6a045a0a26076cad35a9a9bc65d0..6937001db1e02e5bb0a269bd7793449bc9b616d1 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java @@ -22,6 +22,7 @@ package de.ozgcloud.antragsraum.nachricht; public class ReplyNachrichtTestFactory { + public static final String ID = "60af924b4f1a2560298b4567"; public static final String RUECKFRAGE_ID = "60af924b4f1a2560298b4568"; public static final String NACHRICHT_EVENT_ID = "60af924b4f1a2560298b4569"; @@ -39,4 +40,5 @@ public class ReplyNachrichtTestFactory { .postfachId(NachrichtTestFactory.POSTFACH_ID) .message(TEXT); } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapperTest.java index c8fa4a617e0f8c8c0201683b179e445e0e5f8f21..857a199fbe20ca847cda9f4e44cea5453fc5ef4b 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapperTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageHeaderMapperTest.java @@ -28,6 +28,7 @@ import java.util.List; import org.junit.jupiter.api.Test; class RueckfrageHeaderMapperTest { + private final List<NachrichtHeader> nachrichtHeaders = List.of(NachrichtTestFactory.createNachrichtHeader(), NachrichtTestFactory.createNachrichtHeader()); @@ -85,4 +86,5 @@ class RueckfrageHeaderMapperTest { assertThat(headers.getFirst().getStatus()).isEqualTo(NachrichtTestFactory.STATUS); assertThat(headers.get(1).getStatus()).isEqualTo(NachrichtTestFactory.STATUS); } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapperTest.java index 52b78297f13704bc48a891ec386e47c49a8a3ea0..612fd4ca9edf1f5dc2614c8c32750bf57ef6b307 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapperTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageMapperTest.java @@ -26,6 +26,7 @@ import static org.assertj.core.api.Assertions.*; import org.junit.jupiter.api.Test; class RueckfrageMapperTest { + private final Nachricht nachricht = NachrichtTestFactory.createNachricht(); @Test @@ -83,4 +84,5 @@ class RueckfrageMapperTest { assertThat(rueckfrage.getTrustLevel()).isEqualTo(NachrichtTestFactory.TRUST_LEVEL); } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTest.java index 402647a4bba932e22064aa6f11e52e966def688b..f98120a016bf2bc5c310f0b5316bae3b20dbbe1f 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTest.java @@ -27,6 +27,7 @@ import static org.assertj.core.api.Assertions.*; import org.junit.jupiter.api.Test; class RueckfrageTest { + final Rueckfrage rueckfrage = RueckfrageTestFactory.createRueckfrage(); @Test @@ -42,4 +43,5 @@ class RueckfrageTest { assertThat(rueckfrageString).contains("antworten=<...masked for privacy..>"); } + } \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTestFactory.java index 497c391de992ada4a9b524437ad1bc5a1b7b25de..3a42b06a22801225da63ead5eabacb31f293f5cb 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTestFactory.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/RueckfrageTestFactory.java @@ -26,6 +26,7 @@ import static de.ozgcloud.antragsraum.nachricht.NachrichtTestFactory.*; import java.util.Collections; public class RueckfrageTestFactory { + public static final String VORGANG_TITLE = "Vorgang Test "; public static final String TRUST_LEVEL = "LOW"; @@ -53,4 +54,5 @@ public class RueckfrageTestFactory { .accessible(true) .trustLevel(TRUST_LEVEL); } + } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapperTest.java index f147beb31e0736e63f6e78ae8725504b2cd6aa06..a7ab094feadbd266dc6e64c281ab8b8b7a4752ec 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapperTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/TrustLevelMapperTest.java @@ -26,6 +26,7 @@ import static org.assertj.core.api.Assertions.*; import org.junit.jupiter.api.Test; class TrustLevelMapperTest { + @Test void shouldMapLowTrustLevel() { assertThat(TrustLevelMapper.map(TrustLevelMapper.TRUST_LEVEL_LOW)).isEqualTo(TrustLevelMapper.TRUST_LEVEL_LOW); @@ -60,4 +61,5 @@ class TrustLevelMapperTest { void shouldMapLevel4TrustLevel() { assertThat(TrustLevelMapper.map(TrustLevelMapper.TRUST_LEVEL_STORK_QAA_LEVEL_4)).isEqualTo(TrustLevelMapper.TRUST_LEVEL_HIGH); } + } \ No newline at end of file