Skip to content

Commit

Permalink
Merge pull request #42 from aservo/feature/api-behaviour
Browse files Browse the repository at this point in the history
Make API behaviour more consistant
  • Loading branch information
pathob authored Jan 12, 2022
2 parents 1af8335 + 0dab6b5 commit 184c2b7
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public DirectoriesBean setDirectories(DirectoriesBean directoriesBean, boolean t

directoriesBean.getDirectories().forEach(directoryRequestBean -> {
if (directoryRequestBean instanceof DirectoryCrowdBean) {
DirectoryCrowdBean crowdRequestBean = (DirectoryCrowdBean)directoryRequestBean;
DirectoryCrowdBean crowdRequestBean = (DirectoryCrowdBean) directoryRequestBean;

if (existingDirectoriesByName.containsKey(crowdRequestBean.getName())) {
setDirectory(existingDirectoriesByName.get(crowdRequestBean.getName()).getId(), crowdRequestBean, testConnection);
Expand Down Expand Up @@ -97,10 +97,21 @@ private AbstractDirectoryBean setDirectoryCrowd(long id, @NotNull DirectoryCrowd
Directory directory = validateAndCreateDirectoryConfig(crowdBean, testConnection);

ImmutableDirectory.Builder directoryBuilder = ImmutableDirectory.newBuilder(existingDirectory);
directoryBuilder.setAttributes(directory.getAttributes());
directoryBuilder.setDescription(directory.getDescription());
directoryBuilder.setName(directory.getName());

if (directory.getAttributes() != null) {
directoryBuilder.setAttributes(directory.getAttributes());
}

if (directory.getDescription() != null) {
directoryBuilder.setDescription(directory.getDescription());
}

if (directory.getName() != null) {
directoryBuilder.setName(directory.getName());
}

directoryBuilder.setActive(directory.isActive());

Directory updatedDirectory = directoryBuilder.toDirectory();

Directory responseDirectory = crowdDirectoryService.updateDirectory(updatedDirectory);
Expand All @@ -110,7 +121,7 @@ private AbstractDirectoryBean setDirectoryCrowd(long id, @NotNull DirectoryCrowd
@Override
public AbstractDirectoryBean addDirectory(AbstractDirectoryBean abstractDirectoryBean, boolean testConnection) {
if (abstractDirectoryBean instanceof DirectoryCrowdBean) {
DirectoryCrowdBean crowdBean = (DirectoryCrowdBean)abstractDirectoryBean;
DirectoryCrowdBean crowdBean = (DirectoryCrowdBean) abstractDirectoryBean;
Directory directory = validateAndCreateDirectoryConfig(crowdBean, testConnection);
Directory addedDirectory = crowdDirectoryService.addDirectory(directory);
return DirectoryBeanUtil.toDirectoryBean(addedDirectory);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import de.aservo.confapi.jira.model.util.MailServerPopBeanUtil;
import de.aservo.confapi.jira.model.util.MailServerSmtpBeanUtil;
import de.aservo.confapi.jira.util.MailProtocolUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

import javax.inject.Inject;
Expand Down Expand Up @@ -51,25 +50,25 @@ public MailServerSmtpBean setMailServerSmtp(

assert smtpMailServer != null;

if (StringUtils.isNotBlank(mailServerSmtpBean.getName())) {
if (mailServerSmtpBean.getName() != null) {
smtpMailServer.setName(mailServerSmtpBean.getName());
}

if (StringUtils.isNotBlank(mailServerSmtpBean.getDescription())) {
if (mailServerSmtpBean.getDescription() != null) {
smtpMailServer.setDescription(mailServerSmtpBean.getDescription());
}

if (StringUtils.isNotBlank(mailServerSmtpBean.getFrom())) {
if (mailServerSmtpBean.getFrom() != null) {
smtpMailServer.setDefaultFrom(mailServerSmtpBean.getFrom());
}

if (StringUtils.isNotBlank(mailServerSmtpBean.getPrefix())) {
if (mailServerSmtpBean.getPrefix() != null) {
smtpMailServer.setPrefix(mailServerSmtpBean.getPrefix());
}

smtpMailServer.setMailProtocol(MailProtocolUtil.find(mailServerSmtpBean.getProtocol(), MailProtocol.SMTP));

if (StringUtils.isNotBlank(mailServerSmtpBean.getHost())) {
if (mailServerSmtpBean.getHost() != null) {
smtpMailServer.setHostname(mailServerSmtpBean.getHost());
}

Expand All @@ -81,7 +80,7 @@ public MailServerSmtpBean setMailServerSmtp(

smtpMailServer.setTlsRequired(mailServerSmtpBean.getUseTls());

if (StringUtils.isNotBlank(mailServerSmtpBean.getUsername())) {
if (mailServerSmtpBean.getUsername() != null) {
smtpMailServer.setUsername(mailServerSmtpBean.getUsername());
}

Expand Down Expand Up @@ -116,17 +115,17 @@ public MailServerPopBean setMailServerPop(

assert popMailServer != null;

if (StringUtils.isNotBlank(mailServerPopBean.getName())) {
if (mailServerPopBean.getName() != null) {
popMailServer.setName(mailServerPopBean.getName());
}

if (StringUtils.isNotBlank(mailServerPopBean.getDescription())) {
if (mailServerPopBean.getDescription() != null) {
popMailServer.setDescription(mailServerPopBean.getDescription());
}

popMailServer.setMailProtocol(MailProtocolUtil.find(mailServerPopBean.getProtocol(), MailProtocol.POP));

if (StringUtils.isNotBlank(mailServerPopBean.getHost())) {
if (mailServerPopBean.getHost() != null) {
popMailServer.setHostname(mailServerPopBean.getHost());
}

Expand All @@ -136,7 +135,7 @@ public MailServerPopBean setMailServerPop(
popMailServer.setPort(popMailServer.getMailProtocol().getDefaultPort());
}

if (StringUtils.isNotBlank(mailServerPopBean.getUsername())) {
if (mailServerPopBean.getUsername() != null) {
popMailServer.setUsername(mailServerPopBean.getUsername());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ public void testSetDirectoriesWithoutExistingDirectory() {
doReturn(directory).when(crowdDirectoryService).addDirectory(any());
doReturn(Collections.emptyList()).when(crowdDirectoryService).findAllDirectories();

DirectoryCrowdBean directoryBean = (DirectoryCrowdBean)DirectoryBeanUtil.toDirectoryBean(directory);
DirectoryCrowdBean directoryBean = (DirectoryCrowdBean) DirectoryBeanUtil.toDirectoryBean(directory);
directoryBean.getServer().setAppPassword("test");
directoryService.setDirectories(new DirectoriesBean(Collections.singletonList(directoryBean)), false);

Expand All @@ -101,7 +101,7 @@ public void testSetDirectoriesWithExistingDirectory() {
doReturn(directory).when(crowdDirectoryService).updateDirectory(any());
doReturn(Collections.singletonList(directory)).when(crowdDirectoryService).findAllDirectories();

DirectoryCrowdBean directoryBean = (DirectoryCrowdBean)DirectoryBeanUtil.toDirectoryBean(directory);
DirectoryCrowdBean directoryBean = (DirectoryCrowdBean) DirectoryBeanUtil.toDirectoryBean(directory);
directoryBean.getServer().setAppPassword("test");
DirectoriesBean directoryAdded = directoryService.setDirectories(new DirectoriesBean(Collections.singletonList(directoryBean)), false);

Expand All @@ -116,21 +116,39 @@ public void testSetDirectoriesWithConnectionTest() {
doReturn(directory).when(crowdDirectoryService).updateDirectory(any());
doReturn(Collections.singletonList(directory)).when(crowdDirectoryService).findAllDirectories();

DirectoryCrowdBean directoryBean = (DirectoryCrowdBean)DirectoryBeanUtil.toDirectoryBean(directory);
DirectoryCrowdBean directoryBean = (DirectoryCrowdBean) DirectoryBeanUtil.toDirectoryBean(directory);
directoryBean.getServer().setAppPassword("test");
DirectoriesBean directoryAdded = directoryService.setDirectories(new DirectoriesBean(Collections.singletonList(directoryBean)), true);

assertEquals(directoryAdded.getDirectories().iterator().next().getName(), directoryBean.getName());
}

@Test
public void testSetDirectoryWithConnectionTest() {
public void testSetDirectoryDefault() {
Directory directory = createDirectory();

doReturn(directory).when(crowdDirectoryService).findDirectoryById(1L);
doReturn(directory).when(crowdDirectoryService).updateDirectory(any());

DirectoryCrowdBean directoryBean = (DirectoryCrowdBean)DirectoryBeanUtil.toDirectoryBean(directory);
directoryBean.setDescription(null);
directoryBean.setName(null);

directoryBean.getServer().setAppPassword("test");
AbstractDirectoryBean directoryAdded = directoryService.setDirectory(1L, directoryBean, true);

assertEquals(directoryBean.getDescription(), directoryAdded.getDescription());
assertEquals(directory.getName(), directoryAdded.getName());
}

@Test
public void testSetDirectoryWithConnectionTest() {
Directory directory = createDirectory();

doReturn(directory).when(crowdDirectoryService).findDirectoryById(1L);
doReturn(directory).when(crowdDirectoryService).updateDirectory(any());

DirectoryCrowdBean directoryBean = (DirectoryCrowdBean) DirectoryBeanUtil.toDirectoryBean(directory);
directoryBean.getServer().setAppPassword("test");
AbstractDirectoryBean directoryAdded = directoryService.setDirectory(1L, directoryBean, true);

Expand All @@ -155,7 +173,7 @@ public void testAddDirectoryUriException() {
doReturn(responseDirectory).when(crowdDirectoryService).addDirectory(any());

Directory directory = createDirectory();
DirectoryCrowdBean directoryBean = (DirectoryCrowdBean)DirectoryBeanUtil.toDirectoryBean(directory);
DirectoryCrowdBean directoryBean = (DirectoryCrowdBean) DirectoryBeanUtil.toDirectoryBean(directory);

directoryService.addDirectory(directoryBean, false);
}
Expand All @@ -165,7 +183,7 @@ public void testAddDirectory() {
Directory directory = createDirectory();
doReturn(directory).when(crowdDirectoryService).addDirectory(any(Directory.class));

DirectoryCrowdBean directoryBean = (DirectoryCrowdBean)DirectoryBeanUtil.toDirectoryBean(directory);
DirectoryCrowdBean directoryBean = (DirectoryCrowdBean) DirectoryBeanUtil.toDirectoryBean(directory);
directoryBean.getServer().setAppPassword("test");

AbstractDirectoryBean directoryAdded = directoryService.addDirectory(directoryBean, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@
import atlassian.mail.server.DefaultTestSmtpMailServerImpl;
import atlassian.mail.server.OtherTestPopMailServerImpl;
import atlassian.mail.server.OtherTestSmtpMailServerImpl;
import com.atlassian.crowd.manager.mail.MailConfiguration;
import com.atlassian.mail.MailException;
import com.atlassian.mail.server.MailServer;
import com.atlassian.mail.server.MailServerManager;
import com.atlassian.mail.server.PopMailServer;
import com.atlassian.mail.server.SMTPMailServer;
import com.atlassian.mail.server.impl.SMTPMailServerImpl;
import de.aservo.confapi.commons.exception.BadRequestException;
import de.aservo.confapi.commons.model.MailServerPopBean;
import de.aservo.confapi.commons.model.MailServerSmtpBean;
Expand Down Expand Up @@ -96,6 +99,25 @@ public void testPutSmtpMaiLServerCreate() throws Exception {
assertEquals(requestMailServerSmtpBean, responseMailServerSmtpBean);
}

@Test
public void testPutMailServerSmtpDefaultConfig() throws MailException {
final MailServerSmtpBean mailServerSmtpBean = new MailServerSmtpBean();

mailServerService.setMailServerSmtp(mailServerSmtpBean);

final ArgumentCaptor<SMTPMailServer> smtpMailServerCaptor = ArgumentCaptor.forClass(SMTPMailServer.class);
verify(mailServerManager).create(smtpMailServerCaptor.capture());
final SMTPMailServer smtpMailServer = smtpMailServerCaptor.getValue();

assertEquals(mailServerSmtpBean.getName(), smtpMailServer.getName());
assertEquals(mailServerSmtpBean.getDescription(), smtpMailServer.getDescription());
assertEquals(mailServerSmtpBean.getFrom(), smtpMailServer.getDefaultFrom());
assertEquals(mailServerSmtpBean.getPrefix(), smtpMailServer.getPrefix());
assertEquals(mailServerSmtpBean.getHost(), smtpMailServer.getHostname());
assertEquals(smtpMailServer.getMailProtocol().getDefaultPort(), smtpMailServer.getPort());
assertEquals(mailServerSmtpBean.getUsername(), smtpMailServer.getUsername());
}

@Test
public void testPutSmtpMaiLServerWithoutPort() throws Exception {
final SMTPMailServer createSmtpMailServer = new DefaultTestSmtpMailServerImpl();
Expand Down

0 comments on commit 184c2b7

Please sign in to comment.