From 8c4c1f4d90acc4231ae6c5f718e41c0a4e1b5047 Mon Sep 17 00:00:00 2001 From: Tevin Adams Date: Fri, 9 Aug 2024 19:53:16 -0500 Subject: [PATCH] Using spring dependency injection for EmailService --- pom.xml | 2 +- .../trdmlambda/milmove/service/EmailService.java | 7 +++---- .../milmove/trdmlambda/milmove/util/Trdm.java | 9 +++++---- .../milmove/util/EmailServiceTest.java | 16 ++++++++-------- .../trdmlambda/milmove/util/TrdmTest.java | 3 +++ 5 files changed, 20 insertions(+), 17 deletions(-) diff --git a/pom.xml b/pom.xml index b112d34..f819778 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ com.milmove.trdmlambda trdm-lambda - 1.0.3.14 + 1.0.3.15 trdm java spring interface Project for deploying a Java TRDM interfacer for TGET data. diff --git a/src/main/java/com/milmove/trdmlambda/milmove/service/EmailService.java b/src/main/java/com/milmove/trdmlambda/milmove/service/EmailService.java index 412daab..48a5089 100644 --- a/src/main/java/com/milmove/trdmlambda/milmove/service/EmailService.java +++ b/src/main/java/com/milmove/trdmlambda/milmove/service/EmailService.java @@ -32,8 +32,10 @@ public class EmailService { private String subject; private String bodyHTML; - public EmailService() throws URISyntaxException { + public EmailService(SecretFetcher secretFetcher) throws URISyntaxException { logger.info("starting initialization of Email Service"); + this.sender = secretFetcher.getSecret("ses_sender_email"); + this.recipient = secretFetcher.getSecret("ses_recipient"); this.sesClient = SesClient.builder() .region(Region.of("us-gov-west-1")) .build(); @@ -94,9 +96,6 @@ public void sendMalformedLOADataEmail(ArrayList loaSysIds) { } public void send(SesClient client) throws MessagingException { - SecretFetcher secretFetcher = new SecretFetcher(); - this.sender = secretFetcher.getSecret("ses_sender_email"); - this.recipient = secretFetcher.getSecret("ses_recipient"); logger.info("start of EmailService.send()"); Destination destination = Destination.builder() diff --git a/src/main/java/com/milmove/trdmlambda/milmove/util/Trdm.java b/src/main/java/com/milmove/trdmlambda/milmove/util/Trdm.java index 07966d6..22af89c 100644 --- a/src/main/java/com/milmove/trdmlambda/milmove/util/Trdm.java +++ b/src/main/java/com/milmove/trdmlambda/milmove/util/Trdm.java @@ -52,6 +52,7 @@ public class Trdm { private final DatabaseService databaseService; private final TransportationAccountingCodeParser tacParser; private final LineOfAccountingParser loaParser; + private final EmailService emailService; private final Connection rdsConnection; private static final Set allowedTableNames = Set.of("transportation_accounting_codes", @@ -62,12 +63,14 @@ public class Trdm { public Trdm(LastTableUpdateService lastTableUpdateService, GetTableService getTableService, DatabaseService databaseService, + EmailService emailService, TransportationAccountingCodeParser tacParser, LineOfAccountingParser loaParser) throws SQLException { this.lastTableUpdateService = lastTableUpdateService; this.getTableService = getTableService; this.databaseService = databaseService; + this.emailService = emailService; this.tacParser = tacParser; this.loaParser = loaParser; @@ -182,9 +185,8 @@ public void UpdateTGETData(XMLGregorianCalendar ourLastUpdate, String trdmTable, case "transportation_accounting_codes": // Parse the response attachment to get the codes logger.info("parsing response back from TRDM getTable"); - EmailService malformedTACDataEmailService = new EmailService(); List codes = tacParser.parse(getTableResponse.getAttachment(), - oneWeekLater, malformedTACDataEmailService); + oneWeekLater, emailService); // Generate list of TACs that needs to be updated. If TAC is in currentTacs then the // TAC will be in updateTacs list because the TAC already exist @@ -205,9 +207,8 @@ public void UpdateTGETData(XMLGregorianCalendar ourLastUpdate, String trdmTable, case "lines_of_accounting": // Parse the response attachment to get the loas logger.info("parsing response back from TRDM getTable"); - EmailService malformedLOADataEmailService = new EmailService(); List loas = loaParser.parse(getTableResponse.getAttachment(), - oneWeekLater, malformedLOADataEmailService); + oneWeekLater, emailService); // Generate list of loas that needs to be updated. If loas are in curentLoas // then the loa will be in updateLoas list because the loa already exist diff --git a/src/test/java/com/milmove/trdmlambda/milmove/util/EmailServiceTest.java b/src/test/java/com/milmove/trdmlambda/milmove/util/EmailServiceTest.java index 754e8fd..029809c 100644 --- a/src/test/java/com/milmove/trdmlambda/milmove/util/EmailServiceTest.java +++ b/src/test/java/com/milmove/trdmlambda/milmove/util/EmailServiceTest.java @@ -4,32 +4,33 @@ import jakarta.mail.MessagingException; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyList; -import org.apache.cxf.common.i18n.Exception; 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.jupiter.MockitoExtension; -import com.milmove.trdmlambda.milmove.model.TransportationAccountingCode; - import java.net.URISyntaxException; import java.util.ArrayList; @ExtendWith(MockitoExtension.class) public class EmailServiceTest { + @Mock + private SecretFetcher secretFetcher; + + @InjectMocks + private EmailService emailService; + @Test // Test sendMalformedTACDataEmailTest() void sendMalformedTACDataEmailTest() throws MessagingException, URISyntaxException { - EmailService emailService = new EmailService(); EmailService spyEmailService = spy(emailService); ArrayList codes = new ArrayList(); @@ -45,7 +46,6 @@ void sendMalformedTACDataEmailTest() throws MessagingException, URISyntaxExcepti @Test // Test sendMalformedLOADataEmailTest() void sendMalformedLOADataEmailTest() throws MessagingException, URISyntaxException { - EmailService emailService = new EmailService(); EmailService spyEmailService = spy(emailService); ArrayList codes = new ArrayList(); codes.add("TEST"); diff --git a/src/test/java/com/milmove/trdmlambda/milmove/util/TrdmTest.java b/src/test/java/com/milmove/trdmlambda/milmove/util/TrdmTest.java index 8cfdfcc..01f973e 100644 --- a/src/test/java/com/milmove/trdmlambda/milmove/util/TrdmTest.java +++ b/src/test/java/com/milmove/trdmlambda/milmove/util/TrdmTest.java @@ -35,6 +35,7 @@ import com.milmove.trdmlambda.milmove.model.gettable.GetTableRequest; import com.milmove.trdmlambda.milmove.model.gettable.GetTableResponse; import com.milmove.trdmlambda.milmove.service.DatabaseService; +import com.milmove.trdmlambda.milmove.service.EmailService; import com.milmove.trdmlambda.milmove.service.GetTableService; import com.milmove.trdmlambda.milmove.service.LastTableUpdateService; import com.milmove.trdmlambda.milmove.model.LineOfAccounting; @@ -43,6 +44,8 @@ @ExtendWith(MockitoExtension.class) class TrdmTest { + @Mock + private EmailService emailService; @Mock private LastTableUpdateService lastTableUpdateService; @Mock