From 8270e3bef7249db8bfc10a2292c7e82eb56f20d3 Mon Sep 17 00:00:00 2001 From: patrick heyroth Date: Tue, 7 Dec 2021 10:19:13 +0100 Subject: [PATCH 1/3] Make API behaviour more consistant. --- .../jira/service/DirectoryServiceImpl.java | 21 ++++++++++++++----- .../jira/service/MailServerServiceImpl.java | 21 +++++++++---------- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/src/main/java/de/aservo/confapi/jira/service/DirectoryServiceImpl.java b/src/main/java/de/aservo/confapi/jira/service/DirectoryServiceImpl.java index 34a9b61..6cfc4f1 100644 --- a/src/main/java/de/aservo/confapi/jira/service/DirectoryServiceImpl.java +++ b/src/main/java/de/aservo/confapi/jira/service/DirectoryServiceImpl.java @@ -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); @@ -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); @@ -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); diff --git a/src/main/java/de/aservo/confapi/jira/service/MailServerServiceImpl.java b/src/main/java/de/aservo/confapi/jira/service/MailServerServiceImpl.java index 8e90a9a..86fba29 100644 --- a/src/main/java/de/aservo/confapi/jira/service/MailServerServiceImpl.java +++ b/src/main/java/de/aservo/confapi/jira/service/MailServerServiceImpl.java @@ -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; @@ -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()); } @@ -81,7 +80,7 @@ public MailServerSmtpBean setMailServerSmtp( smtpMailServer.setTlsRequired(mailServerSmtpBean.getUseTls()); - if (StringUtils.isNotBlank(mailServerSmtpBean.getUsername())) { + if (mailServerSmtpBean.getUsername() != null) { smtpMailServer.setUsername(mailServerSmtpBean.getUsername()); } @@ -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()); } @@ -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()); } From 51b21904f986cbbf1e64e723cb32a1ed1848d360 Mon Sep 17 00:00:00 2001 From: patrick heyroth Date: Wed, 29 Dec 2021 10:48:05 +0100 Subject: [PATCH 2/3] Adding default test --- .../jira/service/DirectoryServiceTest.java | 30 +++++++++++++++---- .../jira/service/MailServerServiceTest.java | 30 +++++++++++++++++++ 2 files changed, 54 insertions(+), 6 deletions(-) diff --git a/src/test/java/de/aservo/confapi/jira/service/DirectoryServiceTest.java b/src/test/java/de/aservo/confapi/jira/service/DirectoryServiceTest.java index b5bf25f..ea5e56c 100644 --- a/src/test/java/de/aservo/confapi/jira/service/DirectoryServiceTest.java +++ b/src/test/java/de/aservo/confapi/jira/service/DirectoryServiceTest.java @@ -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); @@ -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); @@ -116,7 +116,7 @@ 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); @@ -124,13 +124,31 @@ public void testSetDirectoriesWithConnectionTest() { } @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); @@ -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); } @@ -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); diff --git a/src/test/java/de/aservo/confapi/jira/service/MailServerServiceTest.java b/src/test/java/de/aservo/confapi/jira/service/MailServerServiceTest.java index 80fe713..b7dafae 100644 --- a/src/test/java/de/aservo/confapi/jira/service/MailServerServiceTest.java +++ b/src/test/java/de/aservo/confapi/jira/service/MailServerServiceTest.java @@ -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; @@ -96,6 +99,33 @@ public void testPutSmtpMaiLServerCreate() throws Exception { assertEquals(requestMailServerSmtpBean, responseMailServerSmtpBean); } + @Test + public void testPutMailServerSmtpDefaultConfig() throws MailException { + final MailServerSmtpBean mailServerSmtpBean = new MailServerSmtpBean(); + + mailServerSmtpBean.setName(null); + mailServerSmtpBean.setDescription(null); + mailServerSmtpBean.setFrom(null); + mailServerSmtpBean.setPrefix(null); + mailServerSmtpBean.setHost(null); + mailServerSmtpBean.setPort(null); + mailServerSmtpBean.setUsername(null); + + mailServerService.setMailServerSmtp(mailServerSmtpBean); + + final ArgumentCaptor 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(); From 0dab6b59e08cce35393aed4c4944136eea244f7c Mon Sep 17 00:00:00 2001 From: patrick heyroth Date: Tue, 11 Jan 2022 10:06:23 +0100 Subject: [PATCH 3/3] Change reported review issues --- .../confapi/jira/service/MailServerServiceTest.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/test/java/de/aservo/confapi/jira/service/MailServerServiceTest.java b/src/test/java/de/aservo/confapi/jira/service/MailServerServiceTest.java index b7dafae..b0b4074 100644 --- a/src/test/java/de/aservo/confapi/jira/service/MailServerServiceTest.java +++ b/src/test/java/de/aservo/confapi/jira/service/MailServerServiceTest.java @@ -103,14 +103,6 @@ public void testPutSmtpMaiLServerCreate() throws Exception { public void testPutMailServerSmtpDefaultConfig() throws MailException { final MailServerSmtpBean mailServerSmtpBean = new MailServerSmtpBean(); - mailServerSmtpBean.setName(null); - mailServerSmtpBean.setDescription(null); - mailServerSmtpBean.setFrom(null); - mailServerSmtpBean.setPrefix(null); - mailServerSmtpBean.setHost(null); - mailServerSmtpBean.setPort(null); - mailServerSmtpBean.setUsername(null); - mailServerService.setMailServerSmtp(mailServerSmtpBean); final ArgumentCaptor smtpMailServerCaptor = ArgumentCaptor.forClass(SMTPMailServer.class);