diff --git a/core/src/main/java/google/registry/batch/SendExpiringCertificateNotificationEmailAction.java b/core/src/main/java/google/registry/batch/SendExpiringCertificateNotificationEmailAction.java index 0cb67a869..b402e93d9 100644 --- a/core/src/main/java/google/registry/batch/SendExpiringCertificateNotificationEmailAction.java +++ b/core/src/main/java/google/registry/batch/SendExpiringCertificateNotificationEmailAction.java @@ -31,6 +31,7 @@ import com.google.common.flogger.FluentLogger; import com.google.common.net.MediaType; import google.registry.config.RegistryConfig.Config; import google.registry.flows.certs.CertificateChecker; +import google.registry.groups.GmailClient; import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarPoc; import google.registry.model.registrar.RegistrarPoc.Type; @@ -38,7 +39,6 @@ import google.registry.request.Action; import google.registry.request.Response; import google.registry.request.auth.Auth; import google.registry.util.EmailMessage; -import google.registry.util.SendEmailService; import java.util.Date; import java.util.Optional; import javax.inject.Inject; @@ -72,7 +72,7 @@ public class SendExpiringCertificateNotificationEmailAction implements Runnable private final CertificateChecker certificateChecker; private final String expirationWarningEmailBodyText; - private final SendEmailService sendEmailService; + private final GmailClient gmailClient; private final String expirationWarningEmailSubjectText; private final InternetAddress gSuiteOutgoingEmailAddress; private final Response response; @@ -82,12 +82,12 @@ public class SendExpiringCertificateNotificationEmailAction implements Runnable @Config("expirationWarningEmailBodyText") String expirationWarningEmailBodyText, @Config("expirationWarningEmailSubjectText") String expirationWarningEmailSubjectText, @Config("gSuiteOutgoingEmailAddress") InternetAddress gSuiteOutgoingEmailAddress, - SendEmailService sendEmailService, + GmailClient gmailClient, CertificateChecker certificateChecker, Response response) { this.certificateChecker = certificateChecker; this.expirationWarningEmailSubjectText = expirationWarningEmailSubjectText; - this.sendEmailService = sendEmailService; + this.gmailClient = gmailClient; this.gSuiteOutgoingEmailAddress = gSuiteOutgoingEmailAddress; this.expirationWarningEmailBodyText = expirationWarningEmailBodyText; this.response = response; @@ -173,7 +173,7 @@ public class SendExpiringCertificateNotificationEmailAction implements Runnable registrar.getRegistrarName()); return false; } - sendEmailService.sendEmail( + gmailClient.sendEmail( EmailMessage.newBuilder() .setFrom(gSuiteOutgoingEmailAddress) .setSubject(expirationWarningEmailSubjectText) diff --git a/core/src/main/java/google/registry/dns/PublishDnsUpdatesAction.java b/core/src/main/java/google/registry/dns/PublishDnsUpdatesAction.java index dd33985c8..2641635e2 100644 --- a/core/src/main/java/google/registry/dns/PublishDnsUpdatesAction.java +++ b/core/src/main/java/google/registry/dns/PublishDnsUpdatesAction.java @@ -45,6 +45,7 @@ import google.registry.dns.DnsMetrics.ActionStatus; import google.registry.dns.DnsMetrics.CommitStatus; import google.registry.dns.DnsMetrics.PublishStatus; import google.registry.dns.writer.DnsWriter; +import google.registry.groups.GmailClient; import google.registry.model.domain.Domain; import google.registry.model.host.Host; import google.registry.model.registrar.Registrar; @@ -61,7 +62,6 @@ import google.registry.request.lock.LockHandler; import google.registry.util.Clock; import google.registry.util.DomainNameUtils; import google.registry.util.EmailMessage; -import google.registry.util.SendEmailService; import java.util.Optional; import java.util.Set; import java.util.concurrent.Callable; @@ -112,7 +112,7 @@ public final class PublishDnsUpdatesAction implements Runnable, Callable { private final Clock clock; private final CloudTasksUtils cloudTasksUtils; private final Response response; - private final SendEmailService sendEmailService; + private final GmailClient gmailClient; private final String dnsUpdateFailEmailSubjectText; private final String dnsUpdateFailEmailBodyText; private final String dnsUpdateFailRegistryName; @@ -143,12 +143,12 @@ public final class PublishDnsUpdatesAction implements Runnable, Callable { LockHandler lockHandler, Clock clock, CloudTasksUtils cloudTasksUtils, - SendEmailService sendEmailService, + GmailClient gmailClient, Response response) { this.dnsWriterProxy = dnsWriterProxy; this.dnsMetrics = dnsMetrics; this.timeout = timeout; - this.sendEmailService = sendEmailService; + this.gmailClient = gmailClient; this.retryCount = retryCount; this.dnsWriter = dnsWriter; this.enqueuedTime = enqueuedTime; @@ -303,7 +303,7 @@ public final class PublishDnsUpdatesAction implements Runnable, Callable { .map(PublishDnsUpdatesAction::emailToInternetAddress) .collect(toImmutableList()); - sendEmailService.sendEmail( + gmailClient.sendEmail( EmailMessage.newBuilder() .setBody(body) .setSubject(dnsUpdateFailEmailSubjectText) diff --git a/core/src/main/java/google/registry/groups/GmailClient.java b/core/src/main/java/google/registry/groups/GmailClient.java index cc54aa937..42f46971b 100644 --- a/core/src/main/java/google/registry/groups/GmailClient.java +++ b/core/src/main/java/google/registry/groups/GmailClient.java @@ -23,6 +23,7 @@ import com.google.api.services.gmail.model.Message; import com.google.common.collect.ImmutableSet; import com.google.common.flogger.FluentLogger; import com.google.common.net.MediaType; +import dagger.Lazy; import google.registry.config.RegistryConfig.Config; import google.registry.util.EmailMessage; import google.registry.util.EmailMessage.Attachment; @@ -49,7 +50,7 @@ public final class GmailClient { private static final FluentLogger logger = FluentLogger.forEnclosingClass(); - private final Gmail gmail; + private final Lazy gmail; private final Retrier retrier; private final boolean isEmailSendingEnabled; private final InternetAddress outgoingEmailAddressWithUsername; @@ -57,7 +58,7 @@ public final class GmailClient { @Inject GmailClient( - Gmail gmail, + Lazy gmail, Retrier retrier, @Config("isEmailSendingEnabled") boolean isEmailSendingEnabled, @Config("gSuiteNewOutgoingEmailAddress") String gSuiteOutgoingEmailAddress, @@ -99,7 +100,7 @@ public final class GmailClient { // Unlike other Cloud APIs such as GCS and SecretManager, Gmail does not retry on errors. retrier.callWithRetry( // "me" is reserved word for the authorized user of the Gmail API. - () -> this.gmail.users().messages().send("me", message).execute(), + () -> this.gmail.get().users().messages().send("me", message).execute(), RetriableGmailExceptionPredicate.INSTANCE); } diff --git a/core/src/main/java/google/registry/ui/server/SendEmailUtils.java b/core/src/main/java/google/registry/ui/server/SendEmailUtils.java index 2eec76cb5..bf9323f68 100644 --- a/core/src/main/java/google/registry/ui/server/SendEmailUtils.java +++ b/core/src/main/java/google/registry/ui/server/SendEmailUtils.java @@ -20,8 +20,8 @@ import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; import com.google.common.flogger.FluentLogger; import google.registry.config.RegistryConfig.Config; +import google.registry.groups.GmailClient; import google.registry.util.EmailMessage; -import google.registry.util.SendEmailService; import java.util.Objects; import java.util.Optional; import java.util.stream.Stream; @@ -38,7 +38,7 @@ public class SendEmailUtils { private final InternetAddress gSuiteOutgoingEmailAddress; private final String gSuiteOutgoingEmailDisplayName; - private final SendEmailService emailService; + private final GmailClient gmailClient; private final ImmutableList registrarChangesNotificationEmailAddresses; @Inject @@ -47,10 +47,10 @@ public class SendEmailUtils { @Config("gSuiteOutgoingEmailDisplayName") String gSuiteOutgoingEmailDisplayName, @Config("registrarChangesNotificationEmailAddresses") ImmutableList registrarChangesNotificationEmailAddresses, - SendEmailService emailService) { + GmailClient gmailClient) { this.gSuiteOutgoingEmailAddress = gSuiteOutgoingEmailAddress; this.gSuiteOutgoingEmailDisplayName = gSuiteOutgoingEmailDisplayName; - this.emailService = emailService; + this.gmailClient = gmailClient; this.registrarChangesNotificationEmailAddresses = registrarChangesNotificationEmailAddresses; } @@ -109,7 +109,7 @@ public class SendEmailUtils { "Could not send email to %s with subject '%s'.", bcc, subject); } } - emailService.sendEmail(emailMessage.build()); + gmailClient.sendEmail(emailMessage.build()); return true; } catch (Throwable t) { logger.atSevere().withCause(t).log( diff --git a/core/src/test/java/google/registry/batch/CheckBulkComplianceActionTest.java b/core/src/test/java/google/registry/batch/CheckBulkComplianceActionTest.java index d4c2a6d31..97bb5644b 100644 --- a/core/src/test/java/google/registry/batch/CheckBulkComplianceActionTest.java +++ b/core/src/test/java/google/registry/batch/CheckBulkComplianceActionTest.java @@ -28,6 +28,7 @@ import static org.mockito.Mockito.verifyNoInteractions; import com.google.common.collect.ImmutableList; import com.google.common.testing.TestLogHandler; +import google.registry.groups.GmailClient; import google.registry.model.billing.BillingBase.RenewalPriceBehavior; import google.registry.model.contact.Contact; import google.registry.model.domain.token.AllocationToken; @@ -39,7 +40,6 @@ import google.registry.testing.DatabaseHelper; import google.registry.testing.FakeClock; import google.registry.ui.server.SendEmailUtils; import google.registry.util.EmailMessage; -import google.registry.util.SendEmailService; import java.util.logging.Level; import java.util.logging.Logger; import javax.mail.internet.InternetAddress; @@ -77,7 +77,7 @@ public class CheckBulkComplianceActionTest { private final TestLogHandler logHandler = new TestLogHandler(); private final Logger loggerToIntercept = Logger.getLogger(CheckBulkComplianceAction.class.getCanonicalName()); - private final SendEmailService emailService = mock(SendEmailService.class); + private final GmailClient gmailClient = mock(GmailClient.class); private Contact contact; private BulkPricingPackage bulkPricingPackage; private SendEmailUtils sendEmailUtils; @@ -91,7 +91,7 @@ public class CheckBulkComplianceActionTest { new InternetAddress("outgoing@registry.example"), "UnitTest Registry", ImmutableList.of("notification@test.example", "notification2@test.example"), - emailService); + gmailClient); createTld("tld"); action = new CheckBulkComplianceAction( @@ -143,7 +143,7 @@ public class CheckBulkComplianceActionTest { .build()); action.run(); - verifyNoInteractions(emailService); + verifyNoInteractions(gmailClient); assertAboutLogs() .that(logHandler) .hasLogAtLevelWithMessage( @@ -176,7 +176,7 @@ public class CheckBulkComplianceActionTest { Level.INFO, "Bulk pricing package with bulk token abc123 has exceeded their max domain creation" + " limit by 1 name(s)."); - verify(emailService).sendEmail(emailCaptor.capture()); + verify(gmailClient).sendEmail(emailCaptor.capture()); EmailMessage emailMessage = emailCaptor.getValue(); assertThat(emailMessage.subject()).isEqualTo(CREATE_LIMIT_EMAIL_SUBJECT); assertThat(emailMessage.body()) @@ -248,7 +248,7 @@ public class CheckBulkComplianceActionTest { Level.INFO, "Bulk pricing package with bulk token token has exceeded their max domain creation" + " limit by 1 name(s)."); - verify(emailService, times(2)).sendEmail(any(EmailMessage.class)); + verify(gmailClient, times(2)).sendEmail(any(EmailMessage.class)); } @Test @@ -292,7 +292,7 @@ public class CheckBulkComplianceActionTest { .that(logHandler) .hasLogAtLevelWithMessage( Level.INFO, "Found no bulk pricing packages over their create limit."); - verifyNoInteractions(emailService); + verifyNoInteractions(gmailClient); } @Test @@ -305,7 +305,7 @@ public class CheckBulkComplianceActionTest { .build()); action.run(); - verifyNoInteractions(emailService); + verifyNoInteractions(gmailClient); assertAboutLogs() .that(logHandler) .hasLogAtLevelWithMessage( @@ -365,7 +365,7 @@ public class CheckBulkComplianceActionTest { Level.INFO, "Bulk pricing package with bulk token abc123 has exceed their max active domains limit" + " by 1 name(s)."); - verify(emailService).sendEmail(emailCaptor.capture()); + verify(gmailClient).sendEmail(emailCaptor.capture()); EmailMessage emailMessage = emailCaptor.getValue(); assertThat(emailMessage.subject()).isEqualTo(DOMAIN_LIMIT_WARNING_EMAIL_SUBJECT); assertThat(emailMessage.body()) @@ -442,7 +442,7 @@ public class CheckBulkComplianceActionTest { Level.INFO, "Bulk pricing package with bulk token token has exceed their max active domains limit" + " by 1 name(s)."); - verify(emailService, times(2)).sendEmail(any(EmailMessage.class)); + verify(gmailClient, times(2)).sendEmail(any(EmailMessage.class)); } @Test @@ -479,7 +479,7 @@ public class CheckBulkComplianceActionTest { Level.INFO, "Bulk pricing package with bulk token abc123 has exceed their max active domains limit" + " by 1 name(s)."); - verifyNoInteractions(emailService); + verifyNoInteractions(gmailClient); BulkPricingPackage packageAfterCheck = tm().transact(() -> BulkPricingPackage.loadByTokenString(token.getToken()).get()); assertThat(packageAfterCheck.getLastNotificationSent().get()) @@ -520,7 +520,7 @@ public class CheckBulkComplianceActionTest { Level.INFO, "Bulk pricing package with bulk token abc123 has exceed their max active domains limit" + " by 1 name(s)."); - verify(emailService).sendEmail(emailCaptor.capture()); + verify(gmailClient).sendEmail(emailCaptor.capture()); EmailMessage emailMessage = emailCaptor.getValue(); assertThat(emailMessage.subject()).isEqualTo(DOMAIN_LIMIT_WARNING_EMAIL_SUBJECT); assertThat(emailMessage.body()) @@ -565,7 +565,7 @@ public class CheckBulkComplianceActionTest { Level.INFO, "Bulk pricing package with bulk token abc123 has exceed their max active domains limit" + " by 1 name(s)."); - verify(emailService).sendEmail(emailCaptor.capture()); + verify(gmailClient).sendEmail(emailCaptor.capture()); EmailMessage emailMessage = emailCaptor.getValue(); assertThat(emailMessage.subject()).isEqualTo(DOMAIN_LIMIT_UPGRADE_EMAIL_SUBJECT); assertThat(emailMessage.body()) diff --git a/core/src/test/java/google/registry/batch/SendExpiringCertificateNotificationEmailActionTest.java b/core/src/test/java/google/registry/batch/SendExpiringCertificateNotificationEmailActionTest.java index a160defbd..42c63511b 100644 --- a/core/src/test/java/google/registry/batch/SendExpiringCertificateNotificationEmailActionTest.java +++ b/core/src/test/java/google/registry/batch/SendExpiringCertificateNotificationEmailActionTest.java @@ -32,6 +32,7 @@ import com.google.common.collect.ImmutableSortedMap; import google.registry.batch.SendExpiringCertificateNotificationEmailAction.CertificateType; import google.registry.batch.SendExpiringCertificateNotificationEmailAction.RegistrarInfo; import google.registry.flows.certs.CertificateChecker; +import google.registry.groups.GmailClient; import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarAddress; import google.registry.model.registrar.RegistrarPoc; @@ -41,7 +42,6 @@ import google.registry.persistence.transaction.JpaTestExtensions.JpaIntegrationT import google.registry.testing.FakeClock; import google.registry.testing.FakeResponse; import google.registry.util.SelfSignedCaCertificate; -import google.registry.util.SendEmailService; import java.security.cert.X509Certificate; import java.util.Optional; import javax.annotation.Nullable; @@ -75,7 +75,7 @@ class SendExpiringCertificateNotificationEmailActionTest { new JpaTestExtensions.Builder().buildIntegrationTestExtension(); private final FakeClock clock = new FakeClock(DateTime.parse("2021-05-24T20:21:22Z")); - private final SendEmailService sendEmailService = mock(SendEmailService.class); + private final GmailClient sendEmailService = mock(GmailClient.class); private CertificateChecker certificateChecker; private SendExpiringCertificateNotificationEmailAction action; private Registrar sampleRegistrar; diff --git a/core/src/test/java/google/registry/dns/PublishDnsUpdatesActionTest.java b/core/src/test/java/google/registry/dns/PublishDnsUpdatesActionTest.java index 324a4400d..495f0429c 100644 --- a/core/src/test/java/google/registry/dns/PublishDnsUpdatesActionTest.java +++ b/core/src/test/java/google/registry/dns/PublishDnsUpdatesActionTest.java @@ -50,6 +50,7 @@ import google.registry.dns.DnsMetrics.ActionStatus; import google.registry.dns.DnsMetrics.CommitStatus; import google.registry.dns.DnsMetrics.PublishStatus; import google.registry.dns.writer.DnsWriter; +import google.registry.groups.GmailClient; import google.registry.model.domain.Domain; import google.registry.model.tld.Tld; import google.registry.persistence.transaction.JpaTestExtensions; @@ -63,7 +64,6 @@ import google.registry.testing.FakeLockHandler; import google.registry.testing.FakeResponse; import google.registry.testing.Lazies; import google.registry.util.EmailMessage; -import google.registry.util.SendEmailService; import java.util.Set; import javax.mail.internet.InternetAddress; import org.joda.time.DateTime; @@ -90,7 +90,7 @@ public class PublishDnsUpdatesActionTest { private InternetAddress outgoingRegistry; private Lazy registrySupportEmail; private Lazy registryCcEmail; - private final SendEmailService emailService = mock(SendEmailService.class); + private final GmailClient emailService = mock(GmailClient.class); @BeforeEach void beforeEach() throws Exception { diff --git a/core/src/test/java/google/registry/groups/GmailClientTest.java b/core/src/test/java/google/registry/groups/GmailClientTest.java index e6e7a9b92..e43a095cf 100644 --- a/core/src/test/java/google/registry/groups/GmailClientTest.java +++ b/core/src/test/java/google/registry/groups/GmailClientTest.java @@ -61,7 +61,7 @@ public class GmailClientTest { private GmailClient getGmailClient(boolean isExternalEmailAllowed) throws Exception { return new GmailClient( - gmail, + () -> gmail, new Retrier(new SystemSleeper(), 3), isExternalEmailAllowed, "from@example.com", diff --git a/core/src/test/java/google/registry/ui/server/SendEmailUtilsTest.java b/core/src/test/java/google/registry/ui/server/SendEmailUtilsTest.java index 954617e4e..fd635f480 100644 --- a/core/src/test/java/google/registry/ui/server/SendEmailUtilsTest.java +++ b/core/src/test/java/google/registry/ui/server/SendEmailUtilsTest.java @@ -22,8 +22,8 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import com.google.common.collect.ImmutableList; +import google.registry.groups.GmailClient; import google.registry.util.EmailMessage; -import google.registry.util.SendEmailService; import java.util.Optional; import javax.mail.MessagingException; import javax.mail.internet.InternetAddress; @@ -33,7 +33,7 @@ import org.mockito.ArgumentCaptor; /** Unit tests for {@link SendEmailUtils}. */ class SendEmailUtilsTest { - private final SendEmailService emailService = mock(SendEmailService.class); + private final GmailClient gmailClient = mock(GmailClient.class); private SendEmailUtils sendEmailUtils; private void setRecipients(ImmutableList recipients) throws Exception { @@ -42,7 +42,7 @@ class SendEmailUtilsTest { new InternetAddress("outgoing@registry.example"), "outgoing display name", recipients, - emailService); + gmailClient); } @Test @@ -90,7 +90,7 @@ class SendEmailUtilsTest { "Welcome to the Internet", "It is a dark and scary place.")) .isFalse(); - verify(emailService, never()).sendEmail(any()); + verify(gmailClient, never()).sendEmail(any()); } @Test @@ -102,7 +102,7 @@ class SendEmailUtilsTest { "Welcome to the Internet", "It is a dark and scary place.")) .isFalse(); - verify(emailService, never()).sendEmail(any()); + verify(gmailClient, never()).sendEmail(any()); } @Test @@ -110,7 +110,7 @@ class SendEmailUtilsTest { setRecipients(ImmutableList.of("foo@example.com")); assertThat(sendEmailUtils.hasRecipients()).isTrue(); doThrow(new RuntimeException(new MessagingException("expected"))) - .when(emailService) + .when(gmailClient) .sendEmail(any()); assertThat( sendEmailUtils.sendEmail( @@ -131,7 +131,7 @@ class SendEmailUtilsTest { ImmutableList.of("baz@example.com")); ArgumentCaptor contentCaptor = ArgumentCaptor.forClass(EmailMessage.class); - verify(emailService).sendEmail(contentCaptor.capture()); + verify(gmailClient).sendEmail(contentCaptor.capture()); EmailMessage emailMessage = contentCaptor.getValue(); ImmutableList.Builder recipientBuilder = ImmutableList.builder(); for (String expectedRecipient : ImmutableList.of("johnny@fakesite.tld", "baz@example.com")) { @@ -176,7 +176,7 @@ class SendEmailUtilsTest { private void verifyMessageSent(String... expectedRecipients) throws Exception { ArgumentCaptor contentCaptor = ArgumentCaptor.forClass(EmailMessage.class); - verify(emailService).sendEmail(contentCaptor.capture()); + verify(gmailClient).sendEmail(contentCaptor.capture()); EmailMessage emailMessage = contentCaptor.getValue(); ImmutableList.Builder recipientBuilder = ImmutableList.builder(); for (String expectedRecipient : expectedRecipients) { diff --git a/core/src/test/java/google/registry/ui/server/registrar/ConsoleOteSetupActionTest.java b/core/src/test/java/google/registry/ui/server/registrar/ConsoleOteSetupActionTest.java index bd7da1aaf..b3d78c130 100644 --- a/core/src/test/java/google/registry/ui/server/registrar/ConsoleOteSetupActionTest.java +++ b/core/src/test/java/google/registry/ui/server/registrar/ConsoleOteSetupActionTest.java @@ -31,6 +31,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSetMultimap; import google.registry.config.RegistryEnvironment; +import google.registry.groups.GmailClient; import google.registry.model.tld.Tld; import google.registry.persistence.transaction.JpaTestExtensions; import google.registry.persistence.transaction.JpaTestExtensions.JpaIntegrationTestExtension; @@ -47,7 +48,6 @@ import google.registry.testing.SystemPropertyExtension; import google.registry.testing.UserServiceExtension; import google.registry.ui.server.SendEmailUtils; import google.registry.util.EmailMessage; -import google.registry.util.SendEmailService; import java.util.Optional; import javax.mail.internet.InternetAddress; import javax.servlet.http.HttpServletRequest; @@ -79,7 +79,7 @@ public final class ConsoleOteSetupActionTest { private final User user = new User("marla.singer@example.com", "gmail.com", "12345"); @Mock HttpServletRequest request; - @Mock SendEmailService emailService; + @Mock GmailClient gmailClient; @BeforeEach void beforeEach() throws Exception { @@ -99,7 +99,7 @@ public final class ConsoleOteSetupActionTest { new InternetAddress("outgoing@registry.example"), "UnitTest Registry", ImmutableList.of("notification@test.example", "notification2@test.example"), - emailService); + gmailClient); action.logoFilename = "logo.png"; action.productName = "Nomulus"; action.clientId = Optional.empty(); @@ -158,7 +158,7 @@ public final class ConsoleOteSetupActionTest { assertThat(response.getPayload()) .contains("

OT&E successfully created for registrar myclientid!

"); ArgumentCaptor contentCaptor = ArgumentCaptor.forClass(EmailMessage.class); - verify(emailService).sendEmail(contentCaptor.capture()); + verify(gmailClient).sendEmail(contentCaptor.capture()); EmailMessage emailMessage = contentCaptor.getValue(); assertThat(emailMessage.subject()) .isEqualTo("OT&E for registrar myclientid created in unittest"); diff --git a/core/src/test/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorActionTest.java b/core/src/test/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorActionTest.java index ab072c419..41439e5f3 100644 --- a/core/src/test/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorActionTest.java +++ b/core/src/test/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorActionTest.java @@ -29,6 +29,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSetMultimap; import google.registry.config.RegistryEnvironment; +import google.registry.groups.GmailClient; import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarAddress; import google.registry.model.registrar.RegistrarPoc; @@ -47,7 +48,6 @@ import google.registry.testing.SystemPropertyExtension; import google.registry.testing.UserServiceExtension; import google.registry.ui.server.SendEmailUtils; import google.registry.util.EmailMessage; -import google.registry.util.SendEmailService; import java.util.Optional; import javax.mail.internet.InternetAddress; import javax.servlet.http.HttpServletRequest; @@ -79,7 +79,7 @@ final class ConsoleRegistrarCreatorActionTest { private final User user = new User("marla.singer@example.com", "gmail.com", "12345"); @Mock HttpServletRequest request; - @Mock SendEmailService emailService; + @Mock GmailClient gmailClient; @BeforeEach void beforeEach() throws Exception { @@ -99,7 +99,7 @@ final class ConsoleRegistrarCreatorActionTest { new InternetAddress("outgoing@registry.example"), "UnitTest Registry", ImmutableList.of("notification@test.example", "notification2@test.example"), - emailService); + gmailClient); action.logoFilename = "logo.png"; action.productName = "Nomulus"; @@ -183,7 +183,7 @@ final class ConsoleRegistrarCreatorActionTest { .contains("

Successfully created Registrar myclientid

"); ArgumentCaptor contentCaptor = ArgumentCaptor.forClass(EmailMessage.class); - verify(emailService).sendEmail(contentCaptor.capture()); + verify(gmailClient).sendEmail(contentCaptor.capture()); EmailMessage emailMessage = contentCaptor.getValue(); assertThat(emailMessage.subject()).isEqualTo("Registrar myclientid created in unittest"); assertThat(emailMessage.body()) diff --git a/core/src/test/java/google/registry/ui/server/registrar/RegistrarSettingsActionTest.java b/core/src/test/java/google/registry/ui/server/registrar/RegistrarSettingsActionTest.java index d59bfcf50..f96f9cbb7 100644 --- a/core/src/test/java/google/registry/ui/server/registrar/RegistrarSettingsActionTest.java +++ b/core/src/test/java/google/registry/ui/server/registrar/RegistrarSettingsActionTest.java @@ -65,7 +65,7 @@ class RegistrarSettingsActionTest extends RegistrarSettingsActionTestCase { verify(rsp, never()).setStatus(anyInt()); verifyNotificationEmailsSent(); ArgumentCaptor contentCaptor = ArgumentCaptor.forClass(EmailMessage.class); - verify(emailService).sendEmail(contentCaptor.capture()); + verify(gmailClient).sendEmail(contentCaptor.capture()); assertThat(contentCaptor.getValue().body()).isEqualTo(expectedEmailBody); cloudTasksHelper.assertTasksEnqueued( "sheet", diff --git a/core/src/test/java/google/registry/ui/server/registrar/RegistrarSettingsActionTestCase.java b/core/src/test/java/google/registry/ui/server/registrar/RegistrarSettingsActionTestCase.java index 809af2b5f..be8ac9693 100644 --- a/core/src/test/java/google/registry/ui/server/registrar/RegistrarSettingsActionTestCase.java +++ b/core/src/test/java/google/registry/ui/server/registrar/RegistrarSettingsActionTestCase.java @@ -36,6 +36,7 @@ import com.google.common.collect.ImmutableSetMultimap; import com.google.common.collect.ImmutableSortedMap; import com.google.common.truth.Truth; import google.registry.flows.certs.CertificateChecker; +import google.registry.groups.GmailClient; import google.registry.model.registrar.RegistrarPoc; import google.registry.persistence.transaction.JpaTestExtensions; import google.registry.persistence.transaction.JpaTestExtensions.JpaIntegrationTestExtension; @@ -50,7 +51,6 @@ import google.registry.testing.CloudTasksHelper; import google.registry.testing.FakeClock; import google.registry.ui.server.SendEmailUtils; import google.registry.util.EmailMessage; -import google.registry.util.SendEmailService; import java.io.PrintWriter; import java.io.StringWriter; import javax.mail.internet.InternetAddress; @@ -82,7 +82,7 @@ public abstract class RegistrarSettingsActionTestCase { @Mock HttpServletRequest req; @Mock HttpServletResponse rsp; - @Mock SendEmailService emailService; + @Mock GmailClient gmailClient; final RegistrarSettingsAction action = new RegistrarSettingsAction(); private final StringWriter writer = new StringWriter(); @@ -110,7 +110,7 @@ public abstract class RegistrarSettingsActionTestCase { getGSuiteOutgoingEmailAddress(), getGSuiteOutgoingEmailDisplayName(), ImmutableList.of("notification@test.example", "notification2@test.example"), - emailService); + gmailClient); action.registrarConsoleMetrics = new RegistrarConsoleMetrics(); action.authResult = AuthResult.create( @@ -172,7 +172,7 @@ public abstract class RegistrarSettingsActionTestCase { /** Verifies that the original contact of TheRegistrar is among those notified of a change. */ void verifyNotificationEmailsSent() throws Exception { ArgumentCaptor captor = ArgumentCaptor.forClass(EmailMessage.class); - verify(emailService).sendEmail(captor.capture()); + verify(gmailClient).sendEmail(captor.capture()); Truth.assertThat(captor.getValue().recipients()) .containsExactly( new InternetAddress("notification@test.example"),