From 465a9e635bcc2d2743623032d35705339a10bf30 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Thu, 15 Oct 2020 11:48:17 +0200 Subject: [PATCH] Rename createFallbackMailAddress to more explicit getMailOrFallback --- .../sonia/scm/repository/util/AuthorUtil.java | 2 +- .../src/main/java/sonia/scm/user/EMail.java | 18 ++++++++++++++++-- .../scm/repository/util/AuthorUtilTest.java | 4 +--- .../test/java/sonia/scm/user/EMailTest.java | 6 +++--- .../scm/api/v2/resources/MeDtoFactory.java | 2 +- .../scm/api/v2/resources/MeDtoFactoryTest.java | 2 +- 6 files changed, 23 insertions(+), 11 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/repository/util/AuthorUtil.java b/scm-core/src/main/java/sonia/scm/repository/util/AuthorUtil.java index 21142ba95d..e5a6501604 100644 --- a/scm-core/src/main/java/sonia/scm/repository/util/AuthorUtil.java +++ b/scm-core/src/main/java/sonia/scm/repository/util/AuthorUtil.java @@ -48,7 +48,7 @@ public class AuthorUtil { Subject subject = SecurityUtils.getSubject(); User user = subject.getPrincipals().oneByType(User.class); String name = user.getDisplayName(); - String mailAddress = eMail != null ? eMail.createFallbackMailAddress(user) : user.getMail(); + String mailAddress = eMail != null ? eMail.getMailOrFallback(user) : user.getMail(); return new Person(name, mailAddress); } diff --git a/scm-core/src/main/java/sonia/scm/user/EMail.java b/scm-core/src/main/java/sonia/scm/user/EMail.java index 0718a3c722..8da1377c94 100644 --- a/scm-core/src/main/java/sonia/scm/user/EMail.java +++ b/scm-core/src/main/java/sonia/scm/user/EMail.java @@ -29,6 +29,11 @@ import sonia.scm.config.ScmConfiguration; import javax.inject.Inject; +/** + * Email is able to resolve email addresses of users. + * + * @since 2.8.0 + */ public class EMail { private final ScmConfiguration scmConfiguration; @@ -38,15 +43,24 @@ public class EMail { this.scmConfiguration = scmConfiguration; } - public String createFallbackMailAddress(User user) { + /** + * Returns the email address of the given user or a generated fallback address. + * @param user user to resolve address from + * @return email address or fallback + */ + public String getMailOrFallback(User user) { if (Strings.isNullOrEmpty(user.getMail())) { if (user.getId().contains("@")) { return user.getId(); } else { - return user.getId() + "@" + scmConfiguration.getMailDomainName(); + return createFallbackMail(user); } } else { return user.getMail(); } } + + private String createFallbackMail(User user) { + return user.getId() + "@" + scmConfiguration.getMailDomainName(); + } } diff --git a/scm-core/src/test/java/sonia/scm/repository/util/AuthorUtilTest.java b/scm-core/src/test/java/sonia/scm/repository/util/AuthorUtilTest.java index efd5b0e69a..08a49cea44 100644 --- a/scm-core/src/test/java/sonia/scm/repository/util/AuthorUtilTest.java +++ b/scm-core/src/test/java/sonia/scm/repository/util/AuthorUtilTest.java @@ -36,10 +36,8 @@ import org.mockito.junit.jupiter.MockitoExtension; import sonia.scm.repository.Person; import sonia.scm.user.EMail; import sonia.scm.user.User; -import sonia.scm.web.UserAgentParserTest; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) @@ -65,7 +63,7 @@ class AuthorUtilTest { void shouldCreateMailAddressFromEmail() { User trillian = new User("trillian"); when(subject.getPrincipals().oneByType(User.class)).thenReturn(trillian); - when(eMail.createFallbackMailAddress(trillian)).thenReturn("tricia@hitchhicker.com"); + when(eMail.getMailOrFallback(trillian)).thenReturn("tricia@hitchhicker.com"); Command command = new Command(null); AuthorUtil.setAuthorIfNotAvailable(command, eMail); diff --git a/scm-core/src/test/java/sonia/scm/user/EMailTest.java b/scm-core/src/test/java/sonia/scm/user/EMailTest.java index 21f6181757..49842223ba 100644 --- a/scm-core/src/test/java/sonia/scm/user/EMailTest.java +++ b/scm-core/src/test/java/sonia/scm/user/EMailTest.java @@ -37,7 +37,7 @@ class EMailTest { void shouldUserUsersAddressIfAvailable() { User user = new User("dent", "Arthur Dent", "arthur@hitchhiker.com"); - String mailAddress = eMail.createFallbackMailAddress(user); + String mailAddress = eMail.getMailOrFallback(user); assertThat(mailAddress).isEqualTo("arthur@hitchhiker.com"); } @@ -46,7 +46,7 @@ class EMailTest { void shouldCreateAddressIfNoneAvailable() { User user = new User("dent", "Arthur Dent", ""); - String mailAddress = eMail.createFallbackMailAddress(user); + String mailAddress = eMail.getMailOrFallback(user); assertThat(mailAddress).isEqualTo("dent@scm-manager.local"); } @@ -55,7 +55,7 @@ class EMailTest { void shouldUserUsersIdIfItLooksLikeAnMailAddress() { User user = new User("dent@hitchhiker.com", "Arthur Dent", ""); - String mailAddress = eMail.createFallbackMailAddress(user); + String mailAddress = eMail.getMailOrFallback(user); assertThat(mailAddress).isEqualTo("dent@hitchhiker.com"); } diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/MeDtoFactory.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/MeDtoFactory.java index 2bc72d509a..ff3914654d 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/MeDtoFactory.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/MeDtoFactory.java @@ -86,7 +86,7 @@ public class MeDtoFactory extends HalAppenderMapper { private void setGeneratedMail(User user, MeDto dto) { if (Strings.isNullOrEmpty(user.getMail())) { - dto.setFallbackMail(eMail.createFallbackMailAddress(user)); + dto.setFallbackMail(eMail.getMailOrFallback(user)); } } diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/MeDtoFactoryTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/MeDtoFactoryTest.java index 2a4cea9626..ea539c4631 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/MeDtoFactoryTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/MeDtoFactoryTest.java @@ -244,7 +244,7 @@ class MeDtoFactoryTest { User user = UserTestData.createTrillian(); user.setMail(null); prepareSubject(user); - when(eMail.createFallbackMailAddress(user)).thenReturn("trillian@hitchhiker.local"); + when(eMail.getMailOrFallback(user)).thenReturn("trillian@hitchhiker.local"); MeDto dto = meDtoFactory.create();