From fa2ea0d5f5d935cb3d00c13c0caada2ba7aa682f Mon Sep 17 00:00:00 2001 From: LeandroSilva Date: Mon, 27 Jan 2025 10:20:37 +0100 Subject: [PATCH 1/4] feat: TSYSTEMS-196 * initial upgrade to 3.1 --- pom.xml | 59 ++++++---- .../ApiResponseEntityExceptionHandler.java | 2 +- .../api/controller/MailController.java | 6 +- .../api/helper/ThymeleafHelper.java | 2 +- .../service/DefaultTranslationsService.java | 6 +- .../api/service/ExchangeMailService.java | 4 +- .../api/service/MailErrorMessageBuilder.java | 2 +- .../mailservice/api/service/MailService.java | 6 +- .../api/service/SmtpMailService.java | 2 - .../service/TemplateDescriptionService.java | 6 +- .../api/service/TemplateService.java | 3 +- .../api/service/TranslationService.java | 3 +- .../mailservice/config/SecurityConfig.java | 17 ++- src/main/resources/application.properties | 4 +- .../cob/mailservice/api/ResourceIT.java | 3 +- .../api/controller/ActuatorControllerIT.java | 2 +- .../MailControllerTestExchangeIT.java | 15 +-- .../controller/MailControllerTestSmtpIT.java | 11 +- .../mailservice/api/helper/HelperTest.java | 36 +++--- .../api/helper/TemplateDataConverterTest.java | 20 ++-- .../api/service/ExchangeMailServiceTest.java | 105 +++++++++--------- .../service/MailErrorMessageBuilderTest.java | 10 +- .../api/service/MailServiceTest.java | 90 +++++++-------- .../api/service/SmtpMailServiceTest.java | 48 ++++---- .../api/service/TemplateServiceTest.java | 28 ++--- 25 files changed, 251 insertions(+), 239 deletions(-) diff --git a/pom.xml b/pom.xml index 5c9ca94..86f6c81 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ org.springframework.boot spring-boot-starter-parent - 3.0.6 + 3.1.12 @@ -68,12 +68,10 @@ javax.cache cache-api - 1.1.1 org.hibernate.validator hibernate-validator - ${hibernate-validator.version} @@ -112,19 +110,17 @@ 2.4.0 - javax.ws.rs - javax.ws.rs-api - ${javax.ws.rs-api.version} + jakarta.ws.rs + jakarta.ws.rs-api - javax.xml.ws - jaxws-api - 2.3.1 + jakarta.xml.ws + jakarta.xml.ws-api + 2.3.3 org.springframework.security spring-security-core - ${spring-security.version} @@ -145,7 +141,6 @@ org.apache.commons commons-lang3 - ${commons-lang3.version} org.apache.commons @@ -193,12 +188,10 @@ org.apache.logging.log4j log4j-api - ${log4j.version} org.apache.logging.log4j log4j-to-slf4j - ${log4j.version} @@ -223,6 +216,12 @@ snakeyaml 2.0 + + com.sun.xml.ws + jaxws-rt + 4.0.3 + provided + @@ -242,13 +241,17 @@ - - - junit - junit - 4.13.2 + org.hamcrest + hamcrest-junit + 2.0.0.0 test + + + junit + junit + + @@ -300,7 +303,7 @@ org.apache.maven.plugins maven-checkstyle-plugin - 3.1.1 + 3.6.0 validate @@ -356,6 +359,24 @@ + + org.openrewrite.maven + rewrite-maven-plugin + 6.0.4 + + true + + org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_1 + + + + + org.openrewrite.recipe + rewrite-spring + 6.0.1 + + + diff --git a/src/main/java/de/caritas/cob/mailservice/api/ApiResponseEntityExceptionHandler.java b/src/main/java/de/caritas/cob/mailservice/api/ApiResponseEntityExceptionHandler.java index 23b17ed..b3ff045 100644 --- a/src/main/java/de/caritas/cob/mailservice/api/ApiResponseEntityExceptionHandler.java +++ b/src/main/java/de/caritas/cob/mailservice/api/ApiResponseEntityExceptionHandler.java @@ -3,7 +3,7 @@ import de.caritas.cob.mailservice.api.exception.InternalServerErrorException; import de.caritas.cob.mailservice.api.service.LogService; import java.net.UnknownHostException; -import javax.validation.ConstraintViolationException; +import jakarta.validation.ConstraintViolationException; import lombok.NoArgsConstructor; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; diff --git a/src/main/java/de/caritas/cob/mailservice/api/controller/MailController.java b/src/main/java/de/caritas/cob/mailservice/api/controller/MailController.java index cb04eca..5eb4bc2 100644 --- a/src/main/java/de/caritas/cob/mailservice/api/controller/MailController.java +++ b/src/main/java/de/caritas/cob/mailservice/api/controller/MailController.java @@ -7,8 +7,8 @@ import de.caritas.cob.mailservice.api.model.MailsDTO; import de.caritas.cob.mailservice.api.service.MailService; import de.caritas.cob.mailservice.generated.api.controller.MailsApi; -import io.swagger.annotations.Api; -import javax.validation.Valid; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; import lombok.NonNull; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; @@ -18,8 +18,8 @@ /** Controller for mail requests. */ @RestController +@Tag(name = "mails-controller") @RequiredArgsConstructor -@Api(tags = "mails-controller") public class MailController implements MailsApi { private final @NonNull MailService mailService; diff --git a/src/main/java/de/caritas/cob/mailservice/api/helper/ThymeleafHelper.java b/src/main/java/de/caritas/cob/mailservice/api/helper/ThymeleafHelper.java index 7e4f55e..963cf6d 100644 --- a/src/main/java/de/caritas/cob/mailservice/api/helper/ThymeleafHelper.java +++ b/src/main/java/de/caritas/cob/mailservice/api/helper/ThymeleafHelper.java @@ -5,7 +5,7 @@ import java.util.Locale; import java.util.Map; import java.util.Optional; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.thymeleaf.TemplateEngine; diff --git a/src/main/java/de/caritas/cob/mailservice/api/service/DefaultTranslationsService.java b/src/main/java/de/caritas/cob/mailservice/api/service/DefaultTranslationsService.java index f06fa45..e48adae 100644 --- a/src/main/java/de/caritas/cob/mailservice/api/service/DefaultTranslationsService.java +++ b/src/main/java/de/caritas/cob/mailservice/api/service/DefaultTranslationsService.java @@ -40,8 +40,7 @@ public String fetchDefaultTranslations( return String.join("", fileLines); } catch (IOException ex) { throw new IllegalStateException( - String.format( - "Json file with translations could not be loaded, translation component name: %s", + "Json file with translations could not be loaded, translation component name: %s".formatted( translationComponentName), ex); } @@ -60,8 +59,7 @@ private FileInputStream buildStreamForExternalPath( String translationComponentName, String languageCode, Dialect dialect) { try { String filename = - String.format( - "%s/%s.%s%s.json", + "%s/%s.%s%s.json".formatted( customTranslationsPath, translationComponentName.toLowerCase(), languageCode, diff --git a/src/main/java/de/caritas/cob/mailservice/api/service/ExchangeMailService.java b/src/main/java/de/caritas/cob/mailservice/api/service/ExchangeMailService.java index bdd9e32..8e4225d 100644 --- a/src/main/java/de/caritas/cob/mailservice/api/service/ExchangeMailService.java +++ b/src/main/java/de/caritas/cob/mailservice/api/service/ExchangeMailService.java @@ -99,7 +99,7 @@ private void prepareAndSendMail( LogService.logDebug("email sent"); } catch (Exception e) { throw new ExchangeMailServiceException( - String.format("Error while sending Exchange email: %s", msg.toString()), e); + "Error while sending Exchange email: %s".formatted(msg.toString()), e); } finally { exchangeService.close(); } @@ -115,7 +115,7 @@ private void setupExchangeService(ExchangeService exchangeService) } catch (URISyntaxException e) { exchangeService.close(); throw new ExchangeMailServiceException( - String.format("Could not set ExchangeMailService URL %s ", this.exchangeUrl), e); + "Could not set ExchangeMailService URL %s ".formatted(this.exchangeUrl), e); } } diff --git a/src/main/java/de/caritas/cob/mailservice/api/service/MailErrorMessageBuilder.java b/src/main/java/de/caritas/cob/mailservice/api/service/MailErrorMessageBuilder.java index 91c978b..ef7b460 100644 --- a/src/main/java/de/caritas/cob/mailservice/api/service/MailErrorMessageBuilder.java +++ b/src/main/java/de/caritas/cob/mailservice/api/service/MailErrorMessageBuilder.java @@ -21,7 +21,7 @@ public class MailErrorMessageBuilder { */ public String buildEmailErrorMessage(MailDTO mail, Exception ex) { String errorMessage = - String.format("Mail request for template %s could not be executed.", mail.getTemplate()); + "Mail request for template %s could not be executed.".formatted(mail.getTemplate()); return "Error message:" + errorMessage + "\n" + replaceMailAddresses(getStackTrace(ex)); } diff --git a/src/main/java/de/caritas/cob/mailservice/api/service/MailService.java b/src/main/java/de/caritas/cob/mailservice/api/service/MailService.java index 2485a8b..5389231 100644 --- a/src/main/java/de/caritas/cob/mailservice/api/service/MailService.java +++ b/src/main/java/de/caritas/cob/mailservice/api/service/MailService.java @@ -66,7 +66,7 @@ private Consumer renderAndSendHtmlMail() { private void logAndSendErrorMessage(MailDTO mail) { String errorMessage = - String.format("Template description %s could not be found.", mail.getTemplate()); + "Template description %s could not be found.".formatted(mail.getTemplate()); LogService.logError(errorMessage); sendErrorMail(errorMessage); } @@ -83,7 +83,7 @@ private void renderAndSend(MailDTO mail, TemplateDescription desc, Map sendHtmlMail(mail, desc, text, subject)); } catch (TemplateServiceException e) { - var message = String.format("Could not load template: %s", e.getMessage()); + var message = "Could not load template: %s".formatted(e.getMessage()); throw new InternalServerErrorException(message, e); } } @@ -100,7 +100,7 @@ private void sendHtmlMail( } } catch (SmtpMailServiceException | ExchangeMailServiceException e) { throw new InternalServerErrorException( - String.format("Could not send HTML mail: %s", e.getMessage()), e); + "Could not send HTML mail: %s".formatted(e.getMessage()), e); } } diff --git a/src/main/java/de/caritas/cob/mailservice/api/service/SmtpMailService.java b/src/main/java/de/caritas/cob/mailservice/api/service/SmtpMailService.java index 04ab90e..11fb372 100644 --- a/src/main/java/de/caritas/cob/mailservice/api/service/SmtpMailService.java +++ b/src/main/java/de/caritas/cob/mailservice/api/service/SmtpMailService.java @@ -8,7 +8,6 @@ import java.io.FileInputStream; import java.util.List; import org.apache.commons.io.IOUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.ByteArrayResource; import org.springframework.core.io.ClassPathResource; @@ -42,7 +41,6 @@ public class SmtpMailService { private boolean useCustomResourcesPath; /** Standard constructor for mail service */ - @Autowired public SmtpMailService(JavaMailSender javaMailSender) { this.javaMailSender = javaMailSender; } diff --git a/src/main/java/de/caritas/cob/mailservice/api/service/TemplateDescriptionService.java b/src/main/java/de/caritas/cob/mailservice/api/service/TemplateDescriptionService.java index d6ed20a..c180a50 100644 --- a/src/main/java/de/caritas/cob/mailservice/api/service/TemplateDescriptionService.java +++ b/src/main/java/de/caritas/cob/mailservice/api/service/TemplateDescriptionService.java @@ -51,8 +51,7 @@ private TemplateDescription loadTemplateDescription(String templateName) return mapper.readValue(templateDescriptionJson, TemplateDescription.class); } catch (Exception ex) { throw new TemplateDescriptionServiceException( - String.format( - "Json file with template description could not be parsed, template name: %s", + "Json file with template description could not be parsed, template name: %s".formatted( templateName), ex); } @@ -78,8 +77,7 @@ private String loadTemplateDescriptionFile(String templateName) return String.join("", fileLines); } catch (Exception ex) { throw new TemplateDescriptionServiceException( - String.format( - "Json file with template description could not be loaded, template name: %s", + "Json file with template description could not be loaded, template name: %s".formatted( templateName), ex); } diff --git a/src/main/java/de/caritas/cob/mailservice/api/service/TemplateService.java b/src/main/java/de/caritas/cob/mailservice/api/service/TemplateService.java index f1d1477..7b3ba67 100644 --- a/src/main/java/de/caritas/cob/mailservice/api/service/TemplateService.java +++ b/src/main/java/de/caritas/cob/mailservice/api/service/TemplateService.java @@ -53,8 +53,7 @@ public Optional render(TemplateDescription desc, MailDTO mail, Map fetchTranslations(String languageCode, Dialect dialec return fetchTranslationAsMap(languageCode, dialect); } catch (JsonProcessingException ex) { throw new TranslationServiceException( - String.format( - "Json file with translations could not be parsed, translation component name: %s", + "Json file with translations could not be parsed, translation component name: %s".formatted( component), ex); } diff --git a/src/main/java/de/caritas/cob/mailservice/config/SecurityConfig.java b/src/main/java/de/caritas/cob/mailservice/config/SecurityConfig.java index 4fd787b..68e988d 100644 --- a/src/main/java/de/caritas/cob/mailservice/config/SecurityConfig.java +++ b/src/main/java/de/caritas/cob/mailservice/config/SecurityConfig.java @@ -42,19 +42,18 @@ public class SecurityConfig { public SecurityFilterChain configure(HttpSecurity http) throws Exception { var httpSecurity = - http.csrf() - .disable() + http.csrf(csrf -> csrf + .disable()) .addFilterBefore( new StatelessCsrfFilter(csrfCookieProperty, csrfHeaderProperty), CsrfFilter.class); httpSecurity - .sessionManagement() - .sessionCreationPolicy(SessionCreationPolicy.STATELESS) - .sessionAuthenticationStrategy(new NullAuthenticatedSessionStrategy()) - .and() - .authorizeRequests() - .anyRequest() - .permitAll(); + .sessionManagement(management -> management + .sessionCreationPolicy(SessionCreationPolicy.STATELESS) + .sessionAuthenticationStrategy(new NullAuthenticatedSessionStrategy())) + .authorizeHttpRequests(requests -> requests + .anyRequest() + .permitAll()); return httpSecurity.build(); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 755df8f..8a9dce2 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -7,7 +7,7 @@ spring.profiles.active=@activeSpringProfile@ # General app settings server.port=8080 -spring.mvc.locale=de_DE +spring.web.locale=de_DE spring.jackson.time-zone=Europe/Berlin # Logging: SLF4J (via Lombok) @@ -73,7 +73,7 @@ weblate.component=mailing management.endpoint.health.enabled=true management.endpoint.health.show-details=never management.endpoints.web.exposure.include=health -management.health.probes.enabled=true +management.endpoint.health.probes.enabled=true spring.cache.jcache.config=classpath:ehcache.xml logging.level.net.sf.ehcache=info diff --git a/src/test/java/de/caritas/cob/mailservice/api/ResourceIT.java b/src/test/java/de/caritas/cob/mailservice/api/ResourceIT.java index 68e1423..edd3cc1 100644 --- a/src/test/java/de/caritas/cob/mailservice/api/ResourceIT.java +++ b/src/test/java/de/caritas/cob/mailservice/api/ResourceIT.java @@ -111,8 +111,7 @@ void descriptionShouldHaveSubjectKey() throws IOException { var subjectKey = desc.getSubject(); assertNotNull( subjectKey, - String.format( - "Json file with resource description does not contain subject key: %s", + "Json file with resource description does not contain subject key: %s".formatted( jsonFile.getFilename())); } } diff --git a/src/test/java/de/caritas/cob/mailservice/api/controller/ActuatorControllerIT.java b/src/test/java/de/caritas/cob/mailservice/api/controller/ActuatorControllerIT.java index db8db76..71f344c 100644 --- a/src/test/java/de/caritas/cob/mailservice/api/controller/ActuatorControllerIT.java +++ b/src/test/java/de/caritas/cob/mailservice/api/controller/ActuatorControllerIT.java @@ -1,6 +1,6 @@ package de.caritas.cob.mailservice.api.controller; -import static javax.ws.rs.core.MediaType.APPLICATION_JSON; +import static jakarta.ws.rs.core.MediaType.APPLICATION_JSON; import static org.hamcrest.Matchers.is; import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; diff --git a/src/test/java/de/caritas/cob/mailservice/api/controller/MailControllerTestExchangeIT.java b/src/test/java/de/caritas/cob/mailservice/api/controller/MailControllerTestExchangeIT.java index be65c88..71dd6ec 100644 --- a/src/test/java/de/caritas/cob/mailservice/api/controller/MailControllerTestExchangeIT.java +++ b/src/test/java/de/caritas/cob/mailservice/api/controller/MailControllerTestExchangeIT.java @@ -6,8 +6,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import de.caritas.cob.mailservice.api.service.MailService; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; @@ -15,14 +14,12 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; -@RunWith(SpringRunner.class) @WebMvcTest(MailController.class) @AutoConfigureMockMvc(addFilters = false) @TestPropertySource(properties = {"mail.usesmtp=false"}) -public class MailControllerTestExchangeIT { +class MailControllerTestExchangeIT { private final String PATH_SEND_MAIL = "/mails/send"; private final String PATH_SEND_ERROR_MAIL = "/mails/error/send"; @@ -55,7 +52,7 @@ public class MailControllerTestExchangeIT { @MockBean MailService mailService; @Test - public void sendMail_Should_ReturnOk_WhenTemplateDescriptionIsNotFound() throws Exception { + void sendMail_Should_ReturnOk_WhenTemplateDescriptionIsNotFound() throws Exception { mvc.perform( post(PATH_SEND_MAIL) @@ -66,7 +63,7 @@ public void sendMail_Should_ReturnOk_WhenTemplateDescriptionIsNotFound() throws } @Test - public void sendMail_Should_SendHtmlMail_And_ReturnOk_WhenExchange() throws Exception { + void sendMail_Should_SendHtmlMail_And_ReturnOk_WhenExchange() throws Exception { mvc.perform( post(PATH_SEND_MAIL) @@ -79,7 +76,7 @@ public void sendMail_Should_SendHtmlMail_And_ReturnOk_WhenExchange() throws Exce } @Test - public void sendErrorMail_Should_ReturnOk_WhenTemplateDescriptionIsNotFound() throws Exception { + void sendErrorMail_Should_ReturnOk_WhenTemplateDescriptionIsNotFound() throws Exception { mvc.perform( post(PATH_SEND_ERROR_MAIL) @@ -90,7 +87,7 @@ public void sendErrorMail_Should_ReturnOk_WhenTemplateDescriptionIsNotFound() th } @Test - public void sendErrorMail_Should_SendHtmlMail_And_ReturnOk_WhenExchange() throws Exception { + void sendErrorMail_Should_SendHtmlMail_And_ReturnOk_WhenExchange() throws Exception { mvc.perform( post(PATH_SEND_ERROR_MAIL) diff --git a/src/test/java/de/caritas/cob/mailservice/api/controller/MailControllerTestSmtpIT.java b/src/test/java/de/caritas/cob/mailservice/api/controller/MailControllerTestSmtpIT.java index facb056..f3a330e 100644 --- a/src/test/java/de/caritas/cob/mailservice/api/controller/MailControllerTestSmtpIT.java +++ b/src/test/java/de/caritas/cob/mailservice/api/controller/MailControllerTestSmtpIT.java @@ -6,8 +6,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import de.caritas.cob.mailservice.api.service.MailService; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; @@ -15,14 +14,12 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; -@RunWith(SpringRunner.class) @WebMvcTest(MailController.class) @AutoConfigureMockMvc(addFilters = false) @TestPropertySource(properties = {"mail.usesmtp=true"}) -public class MailControllerTestSmtpIT { +class MailControllerTestSmtpIT { private final String PATH_SEND_MAIL = "/mails/send"; private final String TEMPLATE = "test"; @@ -43,7 +40,7 @@ public class MailControllerTestSmtpIT { @MockBean MailService mailService; @Test - public void sendMail_Should_ReturnOk_WhenTemplateDescriptionIsNotFound() throws Exception { + void sendMail_Should_ReturnOk_WhenTemplateDescriptionIsNotFound() throws Exception { mvc.perform( post(PATH_SEND_MAIL) @@ -54,7 +51,7 @@ public void sendMail_Should_ReturnOk_WhenTemplateDescriptionIsNotFound() throws } @Test - public void sendMail_Should_SendHtmlMail_And_ReturnOk_WhenExchange() throws Exception { + void sendMail_Should_SendHtmlMail_And_ReturnOk_WhenExchange() throws Exception { mvc.perform( post(PATH_SEND_MAIL) diff --git a/src/test/java/de/caritas/cob/mailservice/api/helper/HelperTest.java b/src/test/java/de/caritas/cob/mailservice/api/helper/HelperTest.java index de285ca..00dcf7b 100644 --- a/src/test/java/de/caritas/cob/mailservice/api/helper/HelperTest.java +++ b/src/test/java/de/caritas/cob/mailservice/api/helper/HelperTest.java @@ -1,15 +1,16 @@ package de.caritas.cob.mailservice.api.helper; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import de.caritas.cob.mailservice.api.exception.InternalServerErrorException; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.junit.MockitoJUnitRunner; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(MockitoJUnitRunner.class) -public class HelperTest { +@ExtendWith(MockitoExtension.class) +class HelperTest { private Helper helper; @@ -22,40 +23,39 @@ public class HelperTest { private static final String TEXT_WITH_HTML_ENTITY = "Hallo &"; private static final String TEXT_WITH_UNESCAPED_HTML_ENTITY = "Hallo &"; - @Before - public void setup() { + @BeforeEach + void setup() { helper = new Helper(); } @Test - public void removeHTMLFromText_Should_RemoveHtmlFromText() { + void removeHTMLFromText_Should_RemoveHtmlFromText() { assertEquals(TEXT, helper.removeHTMLFromText(TEXT_WITH_HTML)); } @Test - public void removeHTMLFromText_Should_RemoveJavascriptFromText() { + void removeHTMLFromText_Should_RemoveJavascriptFromText() { assertEquals(TEXT, helper.removeHTMLFromText(TEXT_WITH_JS)); } @Test - public void removeHTMLFromText_ShouldNot_RemoveNewlinesFromText() { + void removeHTMLFromText_ShouldNot_RemoveNewlinesFromText() { assertEquals(TEXT_WITH_NEWLINE, helper.removeHTMLFromText(TEXT_WITH_NEWLINE)); } @Test - public void + void removeHTMLFromText_Should_RemoveHtmlAndJavascriptFromText_And_ShouldNot_RemoveNewlines() { assertEquals(TEXT_WITH_NEWLINE, helper.removeHTMLFromText(TEXT_WITH_NEWLINE_AND_HTML_AND_JS)); } @Test - public void unescapeHtml_Should_ConvertHtmlEntity() { + void unescapeHtml_Should_ConvertHtmlEntity() { assertEquals(TEXT_WITH_UNESCAPED_HTML_ENTITY, helper.unescapeHtml(TEXT_WITH_HTML_ENTITY)); } - @Test(expected = InternalServerErrorException.class) - public void - removeHTMLFromText_Should_ThrowInternalServerErrorException_When_removeTextFromNull() { - helper.removeHTMLFromText(null); + @Test + void removeHTMLFromText_Should_ThrowInternalServerErrorException_When_removeTextFromNull() { + assertThrows(InternalServerErrorException.class, () -> helper.removeHTMLFromText(null)); } } diff --git a/src/test/java/de/caritas/cob/mailservice/api/helper/TemplateDataConverterTest.java b/src/test/java/de/caritas/cob/mailservice/api/helper/TemplateDataConverterTest.java index 59c7553..74b7fc1 100644 --- a/src/test/java/de/caritas/cob/mailservice/api/helper/TemplateDataConverterTest.java +++ b/src/test/java/de/caritas/cob/mailservice/api/helper/TemplateDataConverterTest.java @@ -1,6 +1,6 @@ package de.caritas.cob.mailservice.api.helper; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.when; import de.caritas.cob.mailservice.api.model.TemplateDataDTO; @@ -8,15 +8,15 @@ import java.util.List; import java.util.Map; import org.hamcrest.collection.IsMapContaining; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(MockitoJUnitRunner.class) -public class TemplateDataConverterTest { +@ExtendWith(MockitoExtension.class) +class TemplateDataConverterTest { private TemplateDataConverter templateDataConverter; @Mock private Helper helper; @@ -30,13 +30,13 @@ public class TemplateDataConverterTest { new TemplateDataDTO().key(KEY1).value(VALUE1), new TemplateDataDTO().key(KEY2).value(VALUE2)); - @Before - public void setup() { + @BeforeEach + void setup() { this.templateDataConverter = new TemplateDataConverter(helper); } @Test - public void convertFromTemplateDataDTOList_Should() { + void convertFromTemplateDataDTOList_Should() { when(helper.removeHTMLFromText(Mockito.eq(VALUE1))).thenReturn(VALUE1); when(helper.removeHTMLFromText(Mockito.eq(VALUE2))).thenReturn(VALUE2); diff --git a/src/test/java/de/caritas/cob/mailservice/api/service/ExchangeMailServiceTest.java b/src/test/java/de/caritas/cob/mailservice/api/service/ExchangeMailServiceTest.java index f2c006a..4b79780 100644 --- a/src/test/java/de/caritas/cob/mailservice/api/service/ExchangeMailServiceTest.java +++ b/src/test/java/de/caritas/cob/mailservice/api/service/ExchangeMailServiceTest.java @@ -1,38 +1,39 @@ package de.caritas.cob.mailservice.api.service; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import de.caritas.cob.mailservice.api.exception.ExchangeMailServiceException; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.junit.MockitoJUnitRunner; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.test.util.ReflectionTestUtils; -@RunWith(MockitoJUnitRunner.class) -public class ExchangeMailServiceTest { +@ExtendWith(MockitoExtension.class) +class ExchangeMailServiceTest { - public final String SENDER = "name@domain.de"; - public final String RECIPIENT = "name@domain.de"; - public final String SUBJECT = "subject"; - public final String TEMPLATE = "test"; - public final String BODY = "test"; + final String SENDER = "name@domain.de"; + final String RECIPIENT = "name@domain.de"; + final String SUBJECT = "subject"; + final String TEMPLATE = "test"; + final String BODY = "test"; - public final String EXCHANGE_USER_FIELD_NAME = "exchangeUser"; - public final String EXCHANGE_PASSWORD_FIELD_NAME = "exchangePassword"; - public final String EXCHANGE_URL_FIELD_NAME = "exchangeUrl"; - public final String EXCHANGE_VERSION_FIELD_NAME = "exchangeVersion"; - public final String EXCHANGE_USER_VALUE = "dummyUser"; - public final String EXCHANGE_PASSWORD_VALUE = "dummyPassword"; - public final String EXCHANGE_URL_VALUE = "dummyULR"; - public final String EXCHANGE_VERSION_VALUE = "Exchange2007_SP1"; + final String EXCHANGE_USER_FIELD_NAME = "exchangeUser"; + final String EXCHANGE_PASSWORD_FIELD_NAME = "exchangePassword"; + final String EXCHANGE_URL_FIELD_NAME = "exchangeUrl"; + final String EXCHANGE_VERSION_FIELD_NAME = "exchangeVersion"; + final String EXCHANGE_USER_VALUE = "dummyUser"; + final String EXCHANGE_PASSWORD_VALUE = "dummyPassword"; + final String EXCHANGE_URL_VALUE = "dummyULR"; + final String EXCHANGE_VERSION_VALUE = "Exchange2007_SP1"; private ExchangeMailService mailService; - @Before - public void setup() throws Exception { + @BeforeEach + void setup() throws Exception { this.mailService = new ExchangeMailService(); ReflectionTestUtils.setField(mailService, EXCHANGE_USER_FIELD_NAME, EXCHANGE_USER_VALUE); ReflectionTestUtils.setField( @@ -42,57 +43,61 @@ public void setup() throws Exception { } @Test - public void prepareAndSendHtmlMail_Should_ThrowServiceException_When_SenderMailAddressIsNotSet() { + void prepareAndSendHtmlMail_Should_ThrowServiceException_When_SenderMailAddressIsNotSet() { try { mailService.prepareAndSendHtmlMail(RECIPIENT, SUBJECT, TEMPLATE, null); fail("Expected exception: ServiceException"); } catch (ExchangeMailServiceException serviceException) { - assertTrue("Excepted ServiceException thrown", true); + assertTrue(true, "Excepted ServiceException thrown"); assertEquals("No sender mail address set", serviceException.getMessage()); } } - @Test(expected = ExchangeMailServiceException.class) - public void prepareAndSendHtmlMail_Should_ThrowServiceException_When_MailCouldNotBeSend() - throws NoSuchFieldException, SecurityException, ExchangeMailServiceException { + @Test + void prepareAndSendHtmlMail_Should_ThrowServiceException_When_MailCouldNotBeSend() { + assertThrows(ExchangeMailServiceException.class, () -> { - ReflectionTestUtils.setField(mailService, "mailSender", SENDER); + ReflectionTestUtils.setField(mailService, "mailSender", SENDER); - mailService.prepareAndSendHtmlMail(RECIPIENT, SUBJECT, TEMPLATE, null); + mailService.prepareAndSendHtmlMail(RECIPIENT, SUBJECT, TEMPLATE, null); + }); } @Test - public void prepareAndSendTextMail_Should_ThrowServiceException_When_SenderMailAddressIsNotSet() { + void prepareAndSendTextMail_Should_ThrowServiceException_When_SenderMailAddressIsNotSet() { try { mailService.prepareAndSendTextMail(RECIPIENT, SUBJECT, BODY); fail("Expected exception: ServiceException"); } catch (ExchangeMailServiceException serviceException) { - assertTrue("Excepted ServiceException thrown", true); + assertTrue(true, "Excepted ServiceException thrown"); assertEquals("No sender mail address set", serviceException.getMessage()); } } - @Test(expected = ExchangeMailServiceException.class) - public void prepareAndSendTextMail_Should_ThrowServiceException_When_MailCouldNotBeSend() - throws NoSuchFieldException, SecurityException, ExchangeMailServiceException { + @Test + void prepareAndSendTextMail_Should_ThrowServiceException_When_MailCouldNotBeSend() { + assertThrows(ExchangeMailServiceException.class, () -> { - ReflectionTestUtils.setField(mailService, "mailSender", SENDER); - mailService.prepareAndSendTextMail(RECIPIENT, SUBJECT, BODY); + ReflectionTestUtils.setField(mailService, "mailSender", SENDER); + mailService.prepareAndSendTextMail(RECIPIENT, SUBJECT, BODY); + }); } - @Test(expected = ExchangeMailServiceException.class) - public void - prepareAndSendTextMail_Should_ThrowExchangeMailServiceException_When_MailUrlIsInvalid() - throws NoSuchFieldException, ExchangeMailServiceException { - ReflectionTestUtils.setField(mailService, EXCHANGE_URL_FIELD_NAME, "Invalid"); - mailService.prepareAndSendTextMail(RECIPIENT, SUBJECT, BODY); + @Test + void + prepareAndSendTextMail_Should_ThrowExchangeMailServiceException_When_MailUrlIsInvalid() { + assertThrows(ExchangeMailServiceException.class, () -> { + ReflectionTestUtils.setField(mailService, EXCHANGE_URL_FIELD_NAME, "Invalid"); + mailService.prepareAndSendTextMail(RECIPIENT, SUBJECT, BODY); + }); } - @Test(expected = ExchangeMailServiceException.class) - public void - prepareAndSendTextMail_Should_ThrowExchangeMailServiceException_When_ParametersAreNull() - throws ExchangeMailServiceException, NoSuchFieldException { - ReflectionTestUtils.setField(mailService, "mailSender", SENDER); - mailService.prepareAndSendTextMail(null, null, null); + @Test + void + prepareAndSendTextMail_Should_ThrowExchangeMailServiceException_When_ParametersAreNull() { + assertThrows(ExchangeMailServiceException.class, () -> { + ReflectionTestUtils.setField(mailService, "mailSender", SENDER); + mailService.prepareAndSendTextMail(null, null, null); + }); } } diff --git a/src/test/java/de/caritas/cob/mailservice/api/service/MailErrorMessageBuilderTest.java b/src/test/java/de/caritas/cob/mailservice/api/service/MailErrorMessageBuilderTest.java index fe6b659..083f2cc 100644 --- a/src/test/java/de/caritas/cob/mailservice/api/service/MailErrorMessageBuilderTest.java +++ b/src/test/java/de/caritas/cob/mailservice/api/service/MailErrorMessageBuilderTest.java @@ -5,15 +5,15 @@ import static org.hamcrest.Matchers.not; import de.caritas.cob.mailservice.api.model.MailDTO; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class MailErrorMessageBuilderTest { +class MailErrorMessageBuilderTest { private final MailErrorMessageBuilder mailErrorMessageBuilder = new MailErrorMessageBuilder(); private final MailDTO mailDTO = new MailDTO().template("template"); @Test - public void + void buildEmailErrorMessage_Should_returnErrorMessageWithoutEmail_When_emailIsContainedInStacktrace() { Exception exception = new RuntimeException("test@test.de"); @@ -23,7 +23,7 @@ public class MailErrorMessageBuilderTest { } @Test - public void + void buildEmailErrorMessage_Should_returnErrorMessageWithoutOnlyEmail_When_emailIsContainedInStacktrace() { Exception exception = new RuntimeException("address is test@test.de for given user"); @@ -34,7 +34,7 @@ public class MailErrorMessageBuilderTest { } @Test - public void + void buildEmailErrorMessage_Should_returnErrorMessageWithCustomReason_When_noEmailIsContainedInReason() { Exception exception = new RuntimeException("My custom reason"); diff --git a/src/test/java/de/caritas/cob/mailservice/api/service/MailServiceTest.java b/src/test/java/de/caritas/cob/mailservice/api/service/MailServiceTest.java index 5cd4712..e20ce6a 100644 --- a/src/test/java/de/caritas/cob/mailservice/api/service/MailServiceTest.java +++ b/src/test/java/de/caritas/cob/mailservice/api/service/MailServiceTest.java @@ -2,6 +2,7 @@ import static java.util.Arrays.asList; import static java.util.Collections.singletonList; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.atLeastOnce; @@ -27,16 +28,16 @@ import java.util.HashMap; import java.util.Map; import java.util.Optional; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.test.util.ReflectionTestUtils; -@RunWith(MockitoJUnitRunner.class) -public class MailServiceTest { +@ExtendWith(MockitoExtension.class) +class MailServiceTest { private static final String EMAIL = "email"; private final String ERROR_MESSAGE = "error message"; @@ -56,7 +57,7 @@ public class MailServiceTest { @Mock private TemplateDataConverter templateDataConverter; @Test - public void sendErrorMail_Should_SendErrorMail_When_ErrorRecipientIsSetAndUsingExchange() + void sendErrorMail_Should_SendErrorMail_When_ErrorRecipientIsSetAndUsingExchange() throws SecurityException, ExchangeMailServiceException { ReflectionTestUtils.setField(mailService, "errorRecipients", ERROR_RECIPIENTS); ReflectionTestUtils.setField(mailService, FIELD_NAME_USE_SMTP, false); @@ -67,7 +68,7 @@ public void sendErrorMail_Should_SendErrorMail_When_ErrorRecipientIsSetAndUsingE } @Test - public void sendErrorMail_Should_SendErrorMail_When_ErrorRecipientIsSetAndUsingSmtp() + void sendErrorMail_Should_SendErrorMail_When_ErrorRecipientIsSetAndUsingSmtp() throws SecurityException, SmtpMailServiceException { ReflectionTestUtils.setField(mailService, "errorRecipients", ERROR_RECIPIENTS); ReflectionTestUtils.setField(mailService, FIELD_NAME_USE_SMTP, true); @@ -78,7 +79,7 @@ public void sendErrorMail_Should_SendErrorMail_When_ErrorRecipientIsSetAndUsingS } @Test - public void sendErrorMail_ShouldNot_SendErrorMail_When_ErrorRecipientIsNotSet() + void sendErrorMail_ShouldNot_SendErrorMail_When_ErrorRecipientIsNotSet() throws SecurityException, SmtpMailServiceException { mailService.sendErrorMail(ERROR_MESSAGE); @@ -87,7 +88,7 @@ public void sendErrorMail_ShouldNot_SendErrorMail_When_ErrorRecipientIsNotSet() } @Test - public void sendHtmlMails_Should_sendHtmlMails_When_MailHasAddressAndUsingExchange() + void sendHtmlMails_Should_sendHtmlMails_When_MailHasAddressAndUsingExchange() throws SecurityException, ExchangeMailServiceException, TemplateDescriptionServiceException, TemplateServiceException { ReflectionTestUtils.setField(mailService, "errorRecipients", ERROR_RECIPIENTS); @@ -111,7 +112,7 @@ private MailDTO createMailDTO() { } @Test - public void sendHtmlMails_Should_sendHtmlMails_When_UsingSmtp() + void sendHtmlMails_Should_sendHtmlMails_When_UsingSmtp() throws SecurityException, SmtpMailServiceException, TemplateDescriptionServiceException, TemplateServiceException { ReflectionTestUtils.setField(mailService, FIELD_NAME_USE_SMTP, true); @@ -127,7 +128,7 @@ public void sendHtmlMails_Should_sendHtmlMails_When_UsingSmtp() } @Test - public void sendHtmlMails_ShouldNot_sendHtmlMails_When_NoMailServiceIsSet() + void sendHtmlMails_ShouldNot_sendHtmlMails_When_NoMailServiceIsSet() throws SecurityException { MailsDTO mailsDTO = new MailsDTO().mails(singletonList(createMailDTO())); @@ -137,7 +138,7 @@ public void sendHtmlMails_ShouldNot_sendHtmlMails_When_NoMailServiceIsSet() } @Test - public void sendHtmlMails_Should_sendSeveralHtmlMails_When_MoreThanOneMailIsInMailsDTO() + void sendHtmlMails_Should_sendSeveralHtmlMails_When_MoreThanOneMailIsInMailsDTO() throws SecurityException, SmtpMailServiceException, TemplateDescriptionServiceException, TemplateServiceException { ReflectionTestUtils.setField(mailService, FIELD_NAME_USE_SMTP, true); @@ -154,7 +155,7 @@ public void sendHtmlMails_Should_sendSeveralHtmlMails_When_MoreThanOneMailIsInMa } @Test - public void sendHtmlMails_Should_sendErrorMail_When_TemplateDescriptionServiceExceptionIsThrown() + void sendHtmlMails_Should_sendErrorMail_When_TemplateDescriptionServiceExceptionIsThrown() throws SecurityException, SmtpMailServiceException, TemplateDescriptionServiceException { ReflectionTestUtils.setField(mailService, "errorRecipients", ERROR_RECIPIENTS); ReflectionTestUtils.setField(mailService, FIELD_NAME_USE_SMTP, true); @@ -167,26 +168,26 @@ public void sendHtmlMails_Should_sendErrorMail_When_TemplateDescriptionServiceEx .prepareAndSendTextMail(eq(ERROR_RECIPIENTS), Mockito.anyString(), Mockito.anyString()); } - @Test(expected = InternalServerErrorException.class) - public void - sendHtmlMail_Should_ThrowInternalServerErrorExceptionAndLogExceptionStackTrace_When_AnErrorOccursDuringSendingMails() - throws ExchangeMailServiceException, TemplateDescriptionServiceException, - TemplateServiceException { - ReflectionTestUtils.setField(mailService, FIELD_NAME_USE_SMTP, false); - when(templateDescriptionService.getTemplateDescription(any())) - .thenReturn(Optional.of(new TemplateDescription())); - when(templateService.render(any(), any(), any())).thenReturn(Optional.of("success")); - ExchangeMailServiceException exception = mock(ExchangeMailServiceException.class); - doThrow(exception).when(exchangeMailService).prepareAndSendHtmlMail(any(), any(), any(), any()); - - MailsDTO mailsDTO = new MailsDTO().mails(singletonList(createMailDTO())); - mailService.sendHtmlMails(mailsDTO); - - verify(exception, atLeastOnce()).printStackTrace(any(PrintWriter.class)); + @Test + void + sendHtmlMail_Should_ThrowInternalServerErrorExceptionAndLogExceptionStackTrace_When_AnErrorOccursDuringSendingMails() { + assertThrows(InternalServerErrorException.class, () -> { + ReflectionTestUtils.setField(mailService, FIELD_NAME_USE_SMTP, false); + when(templateDescriptionService.getTemplateDescription(any())) + .thenReturn(Optional.of(new TemplateDescription())); + when(templateService.render(any(), any(), any())).thenReturn(Optional.of("success")); + ExchangeMailServiceException exception = mock(ExchangeMailServiceException.class); + doThrow(exception).when(exchangeMailService).prepareAndSendHtmlMail(any(), any(), any(), any()); + + MailsDTO mailsDTO = new MailsDTO().mails(singletonList(createMailDTO())); + mailService.sendHtmlMails(mailsDTO); + + verify(exception, atLeastOnce()).printStackTrace(any(PrintWriter.class)); + }); } @Test - public void sendErrotMailDto_Should_sendUnescapedHtmlErrorMail() throws Exception { + void sendErrotMailDto_Should_sendUnescapedHtmlErrorMail() throws Exception { ReflectionTestUtils.setField(mailService, "errorRecipients", ERROR_RECIPIENTS); ReflectionTestUtils.setField(mailService, FIELD_NAME_USE_SMTP, false); TemplateDescription templateDescription = new TemplateDescription(); @@ -207,19 +208,20 @@ public void sendErrotMailDto_Should_sendUnescapedHtmlErrorMail() throws Exceptio .getRenderedSubject(eq(templateDescription), eq(expectedData), any(MailDTO.class)); } - @Test(expected = InternalServerErrorException.class) - public void - sendErrotMailDto_Should_ThrowInternalServerErrorExceptionAndLogExceptionStackTrace_When_AnErrorOccursDuringSendingMails() - throws Exception { - ReflectionTestUtils.setField(mailService, FIELD_NAME_USE_SMTP, false); - when(templateDescriptionService.getTemplateDescription(any())) - .thenReturn(Optional.of(new TemplateDescription())); - when(templateService.render(any(), any(), any())).thenThrow(new TemplateServiceException("")); - ErrorMailDTO errorMailDTO = - new ErrorMailDTO() - .template("free-text") - .templateData(singletonList(new TemplateDataDTO().key("text").value("

test

"))); - - mailService.sendErrorMailDto(errorMailDTO); + @Test + void + sendErrotMailDto_Should_ThrowInternalServerErrorExceptionAndLogExceptionStackTrace_When_AnErrorOccursDuringSendingMails() { + assertThrows(InternalServerErrorException.class, () -> { + ReflectionTestUtils.setField(mailService, FIELD_NAME_USE_SMTP, false); + when(templateDescriptionService.getTemplateDescription(any())) + .thenReturn(Optional.of(new TemplateDescription())); + when(templateService.render(any(), any(), any())).thenThrow(new TemplateServiceException("")); + ErrorMailDTO errorMailDTO = + new ErrorMailDTO() + .template("free-text") + .templateData(singletonList(new TemplateDataDTO().key("text").value("

test

"))); + + mailService.sendErrorMailDto(errorMailDTO); + }); } } diff --git a/src/test/java/de/caritas/cob/mailservice/api/service/SmtpMailServiceTest.java b/src/test/java/de/caritas/cob/mailservice/api/service/SmtpMailServiceTest.java index a9c5ee9..cf91016 100644 --- a/src/test/java/de/caritas/cob/mailservice/api/service/SmtpMailServiceTest.java +++ b/src/test/java/de/caritas/cob/mailservice/api/service/SmtpMailServiceTest.java @@ -1,53 +1,53 @@ package de.caritas.cob.mailservice.api.service; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import static org.mockito.Mockito.doThrow; import de.caritas.cob.mailservice.api.exception.SmtpMailServiceException; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.mail.MailException; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessagePreparator; import org.springframework.test.util.ReflectionTestUtils; -@RunWith(MockitoJUnitRunner.class) -public class SmtpMailServiceTest { +@ExtendWith(MockitoExtension.class) +class SmtpMailServiceTest { - public final String SENDER = "name@domain.de"; - public final String RECIPIENT = "name@domain.de"; - public final String RECIPIENTS = "name@domain.de,name2@domain.de"; - public final String SUBJECT = "subject"; - public final String TEMPLATE = "test"; - public final String BODY = "test"; + final String SENDER = "name@domain.de"; + final String RECIPIENT = "name@domain.de"; + final String RECIPIENTS = "name@domain.de,name2@domain.de"; + final String SUBJECT = "subject"; + final String TEMPLATE = "test"; + final String BODY = "test"; @Mock private JavaMailSender javaMailSender; private SmtpMailService mailService; - @Before - public void setup() { + @BeforeEach + void setup() { this.mailService = new SmtpMailService(javaMailSender); } @Test - public void prepareAndSendHtmlMail_Should_ThrowServiceException_WhenSenderMailAddressIsNotSet() { + void prepareAndSendHtmlMail_Should_ThrowServiceException_WhenSenderMailAddressIsNotSet() { try { mailService.prepareAndSendHtmlMail(RECIPIENT, SUBJECT, TEMPLATE, null); fail("Expected exception: ServiceException"); } catch (SmtpMailServiceException serviceException) { - assertTrue("Excepted ServiceException thrown", true); + assertTrue(true, "Excepted ServiceException thrown"); } } @Test - public void prepareAndSendHtmlMail_Should_ThrowServiceException_WhenMailCouldNotBeSend() + void prepareAndSendHtmlMail_Should_ThrowServiceException_WhenMailCouldNotBeSend() throws NoSuchFieldException, SecurityException { ReflectionTestUtils.setField(mailService, "mailSender", String.valueOf(SENDER)); @@ -60,23 +60,23 @@ public void prepareAndSendHtmlMail_Should_ThrowServiceException_WhenMailCouldNot mailService.prepareAndSendHtmlMail(RECIPIENT, SUBJECT, TEMPLATE, null); fail("Expected exception: ServiceException"); } catch (SmtpMailServiceException serviceException) { - assertTrue("Excepted ServiceException thrown", true); + assertTrue(true, "Excepted ServiceException thrown"); } } @Test - public void prepareAndSendTextMail_Should_ThrowServiceException_WhenSenderMailAddressIsNotSet() { + void prepareAndSendTextMail_Should_ThrowServiceException_WhenSenderMailAddressIsNotSet() { try { mailService.prepareAndSendTextMail(RECIPIENT, SUBJECT, BODY); fail("Expected exception: ServiceException"); } catch (SmtpMailServiceException serviceException) { - assertTrue("Excepted ServiceException thrown", true); + assertTrue(true, "Excepted ServiceException thrown"); } } @Test - public void prepareAndSendTextMail_Should_ThrowServiceException_WhenMailCouldNotBeSend() + void prepareAndSendTextMail_Should_ThrowServiceException_WhenMailCouldNotBeSend() throws NoSuchFieldException, SecurityException { ReflectionTestUtils.setField(mailService, "mailSender", String.valueOf(SENDER)); @@ -89,7 +89,7 @@ public void prepareAndSendTextMail_Should_ThrowServiceException_WhenMailCouldNot mailService.prepareAndSendTextMail(RECIPIENT, SUBJECT, BODY); fail("Expected exception: ServiceException"); } catch (SmtpMailServiceException serviceException) { - assertTrue("Excepted ServiceException thrown", true); + assertTrue(true, "Excepted ServiceException thrown"); } } } diff --git a/src/test/java/de/caritas/cob/mailservice/api/service/TemplateServiceTest.java b/src/test/java/de/caritas/cob/mailservice/api/service/TemplateServiceTest.java index fa2d4b9..60c6b55 100644 --- a/src/test/java/de/caritas/cob/mailservice/api/service/TemplateServiceTest.java +++ b/src/test/java/de/caritas/cob/mailservice/api/service/TemplateServiceTest.java @@ -1,8 +1,8 @@ package de.caritas.cob.mailservice.api.service; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import static org.mockito.Mockito.when; import de.caritas.cob.mailservice.api.exception.TemplateServiceException; @@ -16,14 +16,14 @@ import java.util.List; import java.util.Map; import java.util.Optional; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(MockitoJUnitRunner.class) -public class TemplateServiceTest { +@ExtendWith(MockitoExtension.class) +class TemplateServiceTest { private final String TEMPLATE_NAME = "test"; private final String PLACEHOLDER1 = "placeholder1"; @@ -63,13 +63,13 @@ public class TemplateServiceTest { @Mock private TranslationService translationService; - @Before - public void setup() { + @BeforeEach + void setup() { this.templateService = new TemplateService(translationService); } @Test - public void getProcessedSubject_Should_ReturnSubjectWithReplacedPlaceholders() { + void getProcessedSubject_Should_ReturnSubjectWithReplacedPlaceholders() { when(translationService.tryFetchTranslations(LanguageCode.DE.getValue(), Dialect.INFORMAL)) .thenReturn(Optional.of(Map.of("translationKey", SUBJECT_WITH_PLACEHOLDERS))); @@ -86,7 +86,7 @@ public void getProcessedSubject_Should_ReturnSubjectWithReplacedPlaceholders() { } @Test - public void getProcessedHtmlTemplate_Should_ThrowServiceException_WhenTemplateDataIsMissing() { + void getProcessedHtmlTemplate_Should_ThrowServiceException_WhenTemplateDataIsMissing() { try { templateService.render( @@ -95,7 +95,7 @@ public void getProcessedHtmlTemplate_Should_ThrowServiceException_WhenTemplateDa TEMPLATE_DATA_WITH_MISSING_FIELD); fail("Expected exception: ServiceException"); } catch (TemplateServiceException serviceException) { - assertTrue("Excepted ServiceException thrown", true); + assertTrue(true, "Excepted ServiceException thrown"); } } } From bf5c6390d67f35295fc9ed271c92ec1eeff4e866 Mon Sep 17 00:00:00 2001 From: LeandroSilva Date: Mon, 27 Jan 2025 10:25:14 +0100 Subject: [PATCH 2/4] feat: TSYSTEMS-196 * fix Trivy vulnerability --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 86f6c81..f6defdc 100644 --- a/pom.xml +++ b/pom.xml @@ -29,7 +29,7 @@ 6.6.0 3.0.0 0.2.3 - 6.0.5 + 6.3.4 17 17 8.0.0.Final From 0309e9d3e8a5888c23e1e2e5324df0897b124922 Mon Sep 17 00:00:00 2001 From: LeandroSilva Date: Mon, 27 Jan 2025 10:47:26 +0100 Subject: [PATCH 3/4] feat: TSYSTEMS-196 * upgrade to 3.2 --- pom.xml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index f6defdc..ffab864 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ org.springframework.boot spring-boot-starter-parent - 3.1.12 + 3.2.12 @@ -107,7 +107,7 @@ org.springdoc springdoc-openapi-starter-webmvc-ui - 2.4.0 + 2.5.0 jakarta.ws.rs @@ -214,7 +214,6 @@ org.yaml snakeyaml - 2.0 com.sun.xml.ws @@ -366,14 +365,14 @@ true - org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_1 + org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_2 org.openrewrite.recipe rewrite-spring - 6.0.1 + 6.0.2 From 9bdcc22f01bc1d7c84b2fba8ff1091018c31401d Mon Sep 17 00:00:00 2001 From: LeandroSilva Date: Mon, 27 Jan 2025 11:01:40 +0100 Subject: [PATCH 4/4] feat: TSYSTEMS-196 * upgrade to 3.3 --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index ffab864..2265964 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ org.springframework.boot spring-boot-starter-parent - 3.2.12 + 3.3.8 @@ -107,7 +107,7 @@ org.springdoc springdoc-openapi-starter-webmvc-ui - 2.5.0 + 2.6.0 jakarta.ws.rs @@ -365,7 +365,7 @@ true - org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_2 + org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_3