mirror of
https://github.com/google/nomulus.git
synced 2025-08-03 16:32:11 +02:00
Using Gmail for most use cases (#2126)
* Using Gmail for most use cases
This commit is contained in:
parent
7b59c4abbf
commit
e6f9b1c7e6
13 changed files with 58 additions and 57 deletions
|
@ -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)
|
||||
|
|
|
@ -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<Void> {
|
|||
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<Void> {
|
|||
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<Void> {
|
|||
.map(PublishDnsUpdatesAction::emailToInternetAddress)
|
||||
.collect(toImmutableList());
|
||||
|
||||
sendEmailService.sendEmail(
|
||||
gmailClient.sendEmail(
|
||||
EmailMessage.newBuilder()
|
||||
.setBody(body)
|
||||
.setSubject(dnsUpdateFailEmailSubjectText)
|
||||
|
|
|
@ -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> 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> 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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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<String> registrarChangesNotificationEmailAddresses;
|
||||
|
||||
@Inject
|
||||
|
@ -47,10 +47,10 @@ public class SendEmailUtils {
|
|||
@Config("gSuiteOutgoingEmailDisplayName") String gSuiteOutgoingEmailDisplayName,
|
||||
@Config("registrarChangesNotificationEmailAddresses")
|
||||
ImmutableList<String> 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(
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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<InternetAddress> registrySupportEmail;
|
||||
private Lazy<InternetAddress> registryCcEmail;
|
||||
private final SendEmailService emailService = mock(SendEmailService.class);
|
||||
private final GmailClient emailService = mock(GmailClient.class);
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach() throws Exception {
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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<String> 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<EmailMessage> contentCaptor = ArgumentCaptor.forClass(EmailMessage.class);
|
||||
verify(emailService).sendEmail(contentCaptor.capture());
|
||||
verify(gmailClient).sendEmail(contentCaptor.capture());
|
||||
EmailMessage emailMessage = contentCaptor.getValue();
|
||||
ImmutableList.Builder<InternetAddress> 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<EmailMessage> contentCaptor = ArgumentCaptor.forClass(EmailMessage.class);
|
||||
verify(emailService).sendEmail(contentCaptor.capture());
|
||||
verify(gmailClient).sendEmail(contentCaptor.capture());
|
||||
EmailMessage emailMessage = contentCaptor.getValue();
|
||||
ImmutableList.Builder<InternetAddress> recipientBuilder = ImmutableList.builder();
|
||||
for (String expectedRecipient : expectedRecipients) {
|
||||
|
|
|
@ -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("<h1>OT&E successfully created for registrar myclientid!</h1>");
|
||||
ArgumentCaptor<EmailMessage> 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");
|
||||
|
|
|
@ -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("<h1>Successfully created Registrar myclientid</h1>");
|
||||
|
||||
ArgumentCaptor<EmailMessage> 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())
|
||||
|
|
|
@ -65,7 +65,7 @@ class RegistrarSettingsActionTest extends RegistrarSettingsActionTestCase {
|
|||
verify(rsp, never()).setStatus(anyInt());
|
||||
verifyNotificationEmailsSent();
|
||||
ArgumentCaptor<EmailMessage> contentCaptor = ArgumentCaptor.forClass(EmailMessage.class);
|
||||
verify(emailService).sendEmail(contentCaptor.capture());
|
||||
verify(gmailClient).sendEmail(contentCaptor.capture());
|
||||
assertThat(contentCaptor.getValue().body()).isEqualTo(expectedEmailBody);
|
||||
cloudTasksHelper.assertTasksEnqueued(
|
||||
"sheet",
|
||||
|
|
|
@ -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<EmailMessage> 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"),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue