Rename createFallbackMailAddress to more explicit getMailOrFallback

This commit is contained in:
Sebastian Sdorra
2020-10-15 11:48:17 +02:00
parent 775b37980d
commit 465a9e635b
6 changed files with 23 additions and 11 deletions

View File

@@ -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);
}

View File

@@ -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();
}
}

View File

@@ -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);

View File

@@ -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");
}

View File

@@ -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));
}
}

View File

@@ -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();