diff --git a/core/src/main/java/google/registry/flows/FlowModule.java b/core/src/main/java/google/registry/flows/FlowModule.java
index 81749ad9090..99e883d3f47 100644
--- a/core/src/main/java/google/registry/flows/FlowModule.java
+++ b/core/src/main/java/google/registry/flows/FlowModule.java
@@ -22,7 +22,6 @@
import dagger.Module;
import dagger.Provides;
import google.registry.flows.picker.FlowPicker;
-import google.registry.model.contact.ContactHistory;
import google.registry.model.domain.DomainHistory;
import google.registry.model.domain.metadata.MetadataExtension;
import google.registry.model.eppcommon.AuthInfo;
@@ -267,23 +266,6 @@ B makeHistoryEntryBuilder(
return builder;
}
- /**
- * Provides a partially filled in {@link ContactHistory.Builder}
- *
- *
This is not marked with {@link FlowScope} so that each retry gets a fresh one. Otherwise,
- * the fact that the builder is one-use would cause NPEs.
- */
- @Provides
- static ContactHistory.Builder provideContactHistoryBuilder(
- Trid trid,
- @InputXml byte[] inputXmlBytes,
- @Superuser boolean isSuperuser,
- @RegistrarId String registrarId,
- EppInput eppInput) {
- return makeHistoryEntryBuilder(
- new ContactHistory.Builder(), trid, inputXmlBytes, isSuperuser, registrarId, eppInput);
- }
-
/**
* Provides a partially filled in {@link HostHistory.Builder}
*
diff --git a/core/src/main/java/google/registry/model/poll/PollMessage.java b/core/src/main/java/google/registry/model/poll/PollMessage.java
index 06a9d957cd5..dd2204e0f3f 100644
--- a/core/src/main/java/google/registry/model/poll/PollMessage.java
+++ b/core/src/main/java/google/registry/model/poll/PollMessage.java
@@ -27,7 +27,6 @@
import google.registry.model.annotations.ExternalMessagingName;
import google.registry.model.annotations.IdAllocation;
import google.registry.model.contact.Contact;
-import google.registry.model.contact.ContactHistory;
import google.registry.model.domain.Domain;
import google.registry.model.domain.DomainHistory;
import google.registry.model.domain.DomainRenewData;
@@ -272,12 +271,6 @@ public B setDomainHistoryId(HistoryEntryId historyId) {
return thisCastToDerived();
}
- public B setContactHistoryId(HistoryEntryId historyId) {
- getInstance().contactRepoId = historyId.getRepoId();
- getInstance().contactHistoryRevisionId = historyId.getRevisionId();
- return thisCastToDerived();
- }
-
public B setHostHistoryId(HistoryEntryId historyId) {
getInstance().hostRepoId = historyId.getRepoId();
getInstance().hostHistoryRevisionId = historyId.getRevisionId();
@@ -290,9 +283,6 @@ public B setHistoryEntry(HistoryEntry history) {
if (history instanceof DomainHistory) {
return setDomainHistoryId(historyId);
}
- if (history instanceof ContactHistory) {
- return setContactHistoryId(historyId);
- }
if (history instanceof HostHistory) {
return setHostHistoryId(historyId);
}
diff --git a/core/src/main/java/google/registry/model/reporting/HistoryEntry.java b/core/src/main/java/google/registry/model/reporting/HistoryEntry.java
index 616c1e646bf..b47a02716f1 100644
--- a/core/src/main/java/google/registry/model/reporting/HistoryEntry.java
+++ b/core/src/main/java/google/registry/model/reporting/HistoryEntry.java
@@ -23,8 +23,6 @@
import google.registry.model.ImmutableObject;
import google.registry.model.UnsafeSerializable;
import google.registry.model.annotations.IdAllocation;
-import google.registry.model.contact.ContactBase;
-import google.registry.model.contact.ContactHistory;
import google.registry.model.domain.DomainBase;
import google.registry.model.domain.DomainHistory;
import google.registry.model.eppcommon.Trid;
@@ -348,8 +346,6 @@ public B setRequestedByRegistrar(Boolean requestedByRegistrar) {
HistoryEntry.Builder extends HistoryEntry, ?> createBuilderForResource(E parent) {
if (parent instanceof DomainBase) {
return new DomainHistory.Builder().setDomain((DomainBase) parent);
- } else if (parent instanceof ContactBase) {
- return new ContactHistory.Builder().setContact((ContactBase) parent);
} else if (parent instanceof HostBase) {
return new HostHistory.Builder().setHost((HostBase) parent);
} else {
diff --git a/core/src/main/java/google/registry/model/reporting/HistoryEntryDao.java b/core/src/main/java/google/registry/model/reporting/HistoryEntryDao.java
index 51d604f6208..1ff7e09b6b5 100644
--- a/core/src/main/java/google/registry/model/reporting/HistoryEntryDao.java
+++ b/core/src/main/java/google/registry/model/reporting/HistoryEntryDao.java
@@ -25,8 +25,6 @@
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Streams;
import google.registry.model.EppResource;
-import google.registry.model.contact.Contact;
-import google.registry.model.contact.ContactHistory;
import google.registry.model.domain.Domain;
import google.registry.model.domain.DomainHistory;
import google.registry.model.host.Host;
@@ -46,8 +44,6 @@ public class HistoryEntryDao {
public static ImmutableMap, Class extends HistoryEntry>>
RESOURCE_TYPES_TO_HISTORY_TYPES =
ImmutableMap.of(
- Contact.class,
- ContactHistory.class,
Domain.class,
DomainHistory.class,
Host.class,
@@ -59,7 +55,6 @@ public static ImmutableList loadAllHistoryObjects(
return tm().transact(
() ->
new ImmutableList.Builder()
- .addAll(loadAllHistoryObjects(ContactHistory.class, afterTime, beforeTime))
.addAll(loadAllHistoryObjects(DomainHistory.class, afterTime, beforeTime))
.addAll(loadAllHistoryObjects(HostHistory.class, afterTime, beforeTime))
.build());
@@ -121,7 +116,6 @@ public static Iterable loadHistoryObjectsByRegistrars(
return tm().reTransact(
() ->
Streams.concat(
- loadHistoryObjectByRegistrarsInternal(ContactHistory.class, registrarIds),
loadHistoryObjectByRegistrarsInternal(DomainHistory.class, registrarIds),
loadHistoryObjectByRegistrarsInternal(HostHistory.class, registrarIds))
.sorted(Comparator.comparing(HistoryEntry::getModificationTime))
diff --git a/core/src/test/java/google/registry/beam/resave/ResaveAllEppResourcesPipelineTest.java b/core/src/test/java/google/registry/beam/resave/ResaveAllEppResourcesPipelineTest.java
index 592c355323d..cfcaa799cb6 100644
--- a/core/src/test/java/google/registry/beam/resave/ResaveAllEppResourcesPipelineTest.java
+++ b/core/src/test/java/google/registry/beam/resave/ResaveAllEppResourcesPipelineTest.java
@@ -22,7 +22,6 @@
import static google.registry.testing.DatabaseHelper.loadByEntity;
import static google.registry.testing.DatabaseHelper.persistActiveContact;
import static google.registry.testing.DatabaseHelper.persistActiveDomain;
-import static google.registry.testing.DatabaseHelper.persistContactWithPendingTransfer;
import static google.registry.testing.DatabaseHelper.persistDomainWithDependentResources;
import static google.registry.testing.DatabaseHelper.persistDomainWithPendingTransfer;
import static google.registry.testing.DatabaseHelper.persistNewRegistrars;
@@ -89,18 +88,6 @@ void testPipeline_unchangedEntity() {
assertThat(loadByEntity(contact)).isEqualTo(contact);
}
- @Test
- void testPipeline_fulfilledContactTransfer() {
- Contact contact = persistActiveContact("test123");
- DateTime now = fakeClock.nowUtc();
- contact = persistContactWithPendingTransfer(contact, now, now.plusDays(5), now);
- fakeClock.advanceBy(Duration.standardDays(10));
- assertThat(loadByEntity(contact).getStatusValues()).contains(StatusValue.PENDING_TRANSFER);
- runPipeline();
- assertThat(loadByEntity(contact).getStatusValues())
- .doesNotContain(StatusValue.PENDING_TRANSFER);
- }
-
@Test
void testPipeline_fulfilledDomainTransfer() {
options.setFast(true);
diff --git a/core/src/test/java/google/registry/beam/wipeout/WipeOutContactHistoryPiiPipelineTest.java b/core/src/test/java/google/registry/beam/wipeout/WipeOutContactHistoryPiiPipelineTest.java
deleted file mode 100644
index 32dea845e25..00000000000
--- a/core/src/test/java/google/registry/beam/wipeout/WipeOutContactHistoryPiiPipelineTest.java
+++ /dev/null
@@ -1,196 +0,0 @@
-// Copyright 2023 The Nomulus Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package google.registry.beam.wipeout;
-
-import static com.google.common.collect.ImmutableList.toImmutableList;
-import static com.google.common.truth.Truth.assertThat;
-import static google.registry.model.reporting.HistoryEntry.Type.CONTACT_CREATE;
-import static google.registry.persistence.PersistenceModule.TransactionIsolationLevel.TRANSACTION_REPEATABLE_READ;
-import static google.registry.testing.DatabaseHelper.loadAllOf;
-import static google.registry.testing.DatabaseHelper.newContact;
-import static google.registry.testing.DatabaseHelper.persistResource;
-import static org.hibernate.cfg.AvailableSettings.ISOLATION;
-
-import com.google.common.collect.ImmutableList;
-import google.registry.beam.TestPipelineExtension;
-import google.registry.model.contact.Contact;
-import google.registry.model.contact.ContactHistory;
-import google.registry.model.contact.ContactPhoneNumber;
-import google.registry.model.reporting.HistoryEntryDao;
-import google.registry.persistence.transaction.JpaTestExtensions;
-import google.registry.persistence.transaction.JpaTestExtensions.JpaIntegrationTestExtension;
-import google.registry.testing.FakeClock;
-import org.apache.beam.sdk.options.PipelineOptionsFactory;
-import org.joda.time.DateTime;
-import org.joda.time.Duration;
-import org.joda.time.format.DateTimeFormat;
-import org.joda.time.format.DateTimeFormatter;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.RegisterExtension;
-
-/** Unit tests for {@link WipeOutContactHistoryPiiPipeline}. */
-public class WipeOutContactHistoryPiiPipelineTest {
-
- private static final int MIN_AGE_IN_MONTHS = 18;
- private static final DateTimeFormatter DATE_TIME_FORMATTER =
- DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
-
- private final FakeClock clock = new FakeClock(DateTime.parse("2020-02-02T12:34:56Z"));
- private final WipeOutContactHistoryPiiPipelineOptions options =
- PipelineOptionsFactory.create().as(WipeOutContactHistoryPiiPipelineOptions.class);
- private Contact contact1;
- private Contact contact2;
-
- @RegisterExtension
- final JpaIntegrationTestExtension jpa =
- new JpaTestExtensions.Builder()
- .withClock(clock)
- .withProperty(ISOLATION, TRANSACTION_REPEATABLE_READ.name())
- .buildIntegrationTestExtension();
-
- @RegisterExtension
- final TestPipelineExtension pipeline =
- TestPipelineExtension.create().enableAbandonedNodeEnforcement(true);
-
- @BeforeEach
- void beforeEach() {
- contact1 =
- persistResource(
- newContact("my-contact1")
- .asBuilder()
- .setEmailAddress("test@example.com")
- .setFaxNumber(
- new ContactPhoneNumber.Builder().setPhoneNumber("+12122122122").build())
- .build());
- contact2 =
- persistResource(
- newContact("my-contact2")
- .asBuilder()
- .setEmailAddress("test@example.tld")
- .setVoiceNumber(
- new ContactPhoneNumber.Builder().setPhoneNumber("+19177199177").build())
- .build());
- // T = 0 month;
- persistResource(createHistory(contact1));
- // T = 5 months;
- advanceMonths(5);
- persistResource(createHistory(contact2));
- // T = 10 months;
- advanceMonths(5);
- persistResource(createHistory(contact1));
- persistResource(createHistory(contact2));
- // T = 20 months;
- advanceMonths(10);
- persistResource(createHistory(contact2));
- // T = 30 months;
- advanceMonths(10);
- options.setCutoffTime(DATE_TIME_FORMATTER.print(clock.nowUtc().minusMonths(MIN_AGE_IN_MONTHS)));
- }
-
- @Test
- void testSuccess() {
- // Before the pipeline runs, every history entry should have an emali address.
- assertThat(
- loadAllOf(ContactHistory.class).stream()
- .filter(e -> e.getContactBase().get().getEmailAddress() != null)
- .count())
- .isEqualTo(5);
- // Before the pipeline runs, contact history for contact1 should have fax numbers.
- ImmutableList histories =
- HistoryEntryDao.loadHistoryObjectsForResource(contact1.createVKey(), ContactHistory.class);
- assertThat(
- histories.stream().filter(e -> e.getContactBase().get().getFaxNumber() != null).count())
- .isEqualTo(2);
- // Before the pipeline runs, contact history for contact2 should have voice numbers.
- histories =
- HistoryEntryDao.loadHistoryObjectsForResource(contact2.createVKey(), ContactHistory.class);
- assertThat(
- histories.stream()
- .filter(e -> e.getContactBase().get().getVoiceNumber() != null)
- .count())
- .isEqualTo(3);
- WipeOutContactHistoryPiiPipeline wipeOutContactHistoryPiiPipeline =
- new WipeOutContactHistoryPiiPipeline(options);
- wipeOutContactHistoryPiiPipeline.run(pipeline).waitUntilFinish();
- histories =
- HistoryEntryDao.loadHistoryObjectsForResource(contact1.createVKey(), ContactHistory.class);
- assertThat(histories.size()).isEqualTo(2);
- ImmutableList wipedEntries =
- histories.stream()
- .filter(e -> e.getContactBase().get().getEmailAddress() == null)
- .collect(toImmutableList());
- // Only the history entry at T = 10 is wiped. The one at T = 10 is over 18 months old, but it
- // is the most recent entry, so it is kept.
- assertThat(wipedEntries.size()).isEqualTo(1);
- assertThat(wipedEntries.get(0).getContactBase().get().getFaxNumber()).isNull();
- // With a new history entry at T = 30, the one at T = 10 is eligible for wipe out. Note the
- // current time itself (therefore the cutoff time) has not changed.
- persistResource(createHistory(contact1));
- wipeOutContactHistoryPiiPipeline.run(pipeline).waitUntilFinish();
- histories =
- HistoryEntryDao.loadHistoryObjectsForResource(contact1.createVKey(), ContactHistory.class);
- assertThat(histories.size()).isEqualTo(3);
- wipedEntries =
- histories.stream()
- .filter(e -> e.getContactBase().get().getEmailAddress() == null)
- .collect(toImmutableList());
- assertThat(wipedEntries.size()).isEqualTo(2);
- // Check that the pipeline deals with multiple contacts correctly.
- histories =
- HistoryEntryDao.loadHistoryObjectsForResource(contact2.createVKey(), ContactHistory.class);
- assertThat(histories.size()).isEqualTo(3);
- wipedEntries =
- histories.stream()
- .filter(e -> e.getContactBase().get().getEmailAddress() == null)
- .collect(toImmutableList());
- // Only the history entry at T = 10 is wiped. The one at T = 10 is over 18 months old, but it
- // is the most recent entry, so it is kept.
- assertThat(wipedEntries.size()).isEqualTo(2);
- assertThat(wipedEntries.get(0).getContactBase().get().getVoiceNumber()).isNull();
- assertThat(wipedEntries.get(1).getContactBase().get().getVoiceNumber()).isNull();
- }
-
- @Test
- void testSuccess_dryRun() {
- options.setIsDryRun(true);
- WipeOutContactHistoryPiiPipeline wipeOutContactHistoryPiiPipeline =
- new WipeOutContactHistoryPiiPipeline(options);
- wipeOutContactHistoryPiiPipeline.run(pipeline).waitUntilFinish();
- ImmutableList histories =
- HistoryEntryDao.loadHistoryObjectsForResource(contact1.createVKey(), ContactHistory.class);
- assertThat(histories.size()).isEqualTo(2);
- assertThat(
- histories.stream()
- .filter(e -> e.getContactBase().get().getEmailAddress() == null)
- .collect(toImmutableList()))
- .isEmpty();
- }
-
- private ContactHistory createHistory(Contact contact) {
- return new ContactHistory.Builder()
- .setContact(contact)
- .setType(CONTACT_CREATE)
- .setRegistrarId("TheRegistrar")
- .setModificationTime(clock.nowUtc())
- .build();
- }
-
- private void advanceMonths(int months) {
- DateTime now = clock.nowUtc();
- DateTime next = now.plusMonths(months);
- clock.advanceBy(new Duration(now, next));
- }
-}
diff --git a/core/src/test/java/google/registry/flows/ResourceFlowTestCase.java b/core/src/test/java/google/registry/flows/ResourceFlowTestCase.java
index 315cd9108c3..03c1fac8c7a 100644
--- a/core/src/test/java/google/registry/flows/ResourceFlowTestCase.java
+++ b/core/src/test/java/google/registry/flows/ResourceFlowTestCase.java
@@ -24,13 +24,10 @@
import com.google.common.testing.TestLogHandler;
import google.registry.model.EppResource;
import google.registry.model.ForeignKeyUtils;
-import google.registry.model.contact.ContactBase;
-import google.registry.model.contact.ContactHistory;
import google.registry.model.domain.DomainBase;
import google.registry.model.domain.DomainHistory;
import google.registry.model.eppinput.EppInput.ResourceCommandWrapper;
import google.registry.model.eppinput.ResourceCommand;
-import google.registry.model.host.HostBase;
import google.registry.model.host.HostHistory;
import google.registry.model.reporting.HistoryEntry;
import google.registry.model.tmch.ClaimsList;
@@ -131,18 +128,12 @@ protected void assertIcannReportingActivityFieldLogged(String fieldName) {
protected void assertLastHistoryContainsResource(EppResource resource) {
HistoryEntry historyEntry = Iterables.getLast(DatabaseHelper.getHistoryEntries(resource));
- if (resource instanceof ContactBase) {
- ContactHistory contactHistory = (ContactHistory) historyEntry;
- // Don't use direct equals comparison since one might be a subclass of the other
- assertAboutImmutableObjects()
- .that(contactHistory.getContactBase().get())
- .hasFieldsEqualTo(resource);
- } else if (resource instanceof DomainBase) {
+ if (resource instanceof DomainBase) {
DomainHistory domainHistory = (DomainHistory) historyEntry;
assertAboutImmutableObjects()
.that(domainHistory.getDomainBase().get())
.isEqualExceptFields(resource, "gracePeriods", "dsData", "nsHosts");
- } else if (resource instanceof HostBase) {
+ } else {
HostHistory hostHistory = (HostHistory) historyEntry;
// Don't use direct equals comparison since one might be a subclass of the other
assertAboutImmutableObjects()
diff --git a/core/src/test/java/google/registry/flows/poll/PollAckFlowTest.java b/core/src/test/java/google/registry/flows/poll/PollAckFlowTest.java
index b221dabb8e2..d3ece82ff75 100644
--- a/core/src/test/java/google/registry/flows/poll/PollAckFlowTest.java
+++ b/core/src/test/java/google/registry/flows/poll/PollAckFlowTest.java
@@ -17,7 +17,6 @@
import static com.google.common.truth.Truth.assertThat;
import static google.registry.testing.DatabaseHelper.createHistoryEntryForEppResource;
import static google.registry.testing.DatabaseHelper.createTld;
-import static google.registry.testing.DatabaseHelper.persistActiveContact;
import static google.registry.testing.DatabaseHelper.persistResource;
import static google.registry.util.DateTimeUtils.END_OF_TIME;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -28,7 +27,6 @@
import google.registry.flows.poll.PollAckFlow.MessageDoesNotExistException;
import google.registry.flows.poll.PollAckFlow.MissingMessageIdException;
import google.registry.flows.poll.PollAckFlow.NotAuthorizedToAckMessageException;
-import google.registry.model.contact.Contact;
import google.registry.model.domain.Domain;
import google.registry.model.poll.PollMessage;
import google.registry.testing.DatabaseHelper;
@@ -43,7 +41,6 @@ class PollAckFlowTest extends FlowTestCase {
private static final long MESSAGE_ID = 3;
private Domain domain;
- private Contact contact;
@BeforeEach
void setUp() {
@@ -51,8 +48,7 @@ void setUp() {
clock.setTo(DateTime.parse("2011-01-02T01:01:01Z"));
setRegistrarIdForFlow("NewRegistrar");
createTld("example");
- contact = persistActiveContact("jd1234");
- domain = persistResource(DatabaseHelper.newDomain("test.example", contact));
+ domain = persistResource(DatabaseHelper.newDomain("test.example"));
}
private void persistOneTimePollMessage(long messageId) {
@@ -85,43 +81,6 @@ void testDryRun() throws Exception {
dryRunFlowAssertResponse(loadFile("poll_ack_response_empty.xml"));
}
- @Test
- void testSuccess_contactPollMessage() throws Exception {
- setEppInput("poll_ack.xml", ImmutableMap.of("MSGID", "3-2011"));
- persistResource(
- new PollMessage.OneTime.Builder()
- .setId(MESSAGE_ID)
- .setRegistrarId(getRegistrarIdForFlow())
- .setEventTime(clock.nowUtc().minusDays(1))
- .setMsg("Some poll message.")
- .setHistoryEntry(createHistoryEntryForEppResource(contact))
- .build());
- assertMutatingFlow(true);
- runFlowAssertResponse(loadFile("poll_ack_response_empty.xml"));
- }
-
- @Test
- void testFailure_contactPollMessage_withIncorrectYearField() throws Exception {
- setEppInput("poll_ack.xml", ImmutableMap.of("MSGID", "3-1999"));
- persistResource(
- new PollMessage.OneTime.Builder()
- .setId(MESSAGE_ID)
- .setRegistrarId(getRegistrarIdForFlow())
- .setEventTime(clock.nowUtc().minusDays(1))
- .setMsg("Some poll message.")
- .setHistoryEntry(createHistoryEntryForEppResource(contact))
- .build());
- assertMutatingFlow(true);
- assertThrows(MessageDoesNotExistException.class, this::runFlow);
- }
-
- @Test
- void testSuccess_messageOnContact() throws Exception {
- persistOneTimePollMessage(MESSAGE_ID);
- assertMutatingFlow(true);
- runFlowAssertResponse(loadFile("poll_ack_response_empty.xml"));
- }
-
@Test
void testSuccess_recentActiveAutorenew() throws Exception {
setEppInput("poll_ack.xml", ImmutableMap.of("MSGID", "3-2010"));
@@ -184,21 +143,6 @@ void testFailure_invalidId_tooManyComponents() throws Exception {
assertThrows(InvalidMessageIdException.class, this::runFlow);
}
- @Test
- void testFailure_contactPollMessage_withMissingYearField() throws Exception {
- setEppInput("poll_ack.xml", ImmutableMap.of("MSGID", "3"));
- persistResource(
- new PollMessage.OneTime.Builder()
- .setId(MESSAGE_ID)
- .setRegistrarId(getRegistrarIdForFlow())
- .setEventTime(clock.nowUtc().minusDays(1))
- .setMsg("Some poll message.")
- .setHistoryEntry(createHistoryEntryForEppResource(contact))
- .build());
- assertMutatingFlow(true);
- assertThrows(InvalidMessageIdException.class, this::runFlow);
- }
-
@Test
void testFailure_invalidId_stringInsteadOfNumeric() throws Exception {
setEppInput("poll_ack.xml", ImmutableMap.of("MSGID", "ABC-12345"));
diff --git a/core/src/test/java/google/registry/flows/poll/PollRequestFlowTest.java b/core/src/test/java/google/registry/flows/poll/PollRequestFlowTest.java
index 94ce93735ab..ad4ae6722dd 100644
--- a/core/src/test/java/google/registry/flows/poll/PollRequestFlowTest.java
+++ b/core/src/test/java/google/registry/flows/poll/PollRequestFlowTest.java
@@ -16,7 +16,6 @@
import static google.registry.testing.DatabaseHelper.createHistoryEntryForEppResource;
import static google.registry.testing.DatabaseHelper.createTld;
-import static google.registry.testing.DatabaseHelper.persistActiveContact;
import static google.registry.testing.DatabaseHelper.persistActiveHost;
import static google.registry.testing.DatabaseHelper.persistNewRegistrar;
import static google.registry.testing.DatabaseHelper.persistResource;
@@ -27,8 +26,6 @@
import google.registry.flows.EppException;
import google.registry.flows.FlowTestCase;
import google.registry.flows.poll.PollRequestFlow.UnexpectedMessageIdException;
-import google.registry.model.contact.Contact;
-import google.registry.model.contact.ContactHistory;
import google.registry.model.domain.Domain;
import google.registry.model.eppcommon.Trid;
import google.registry.model.host.Host;
@@ -36,7 +33,6 @@
import google.registry.model.poll.PendingActionNotificationResponse.DomainPendingActionNotificationResponse;
import google.registry.model.poll.PollMessage;
import google.registry.model.reporting.HistoryEntry;
-import google.registry.model.transfer.TransferResponse.ContactTransferResponse;
import google.registry.model.transfer.TransferResponse.DomainTransferResponse;
import google.registry.model.transfer.TransferStatus;
import google.registry.testing.DatabaseHelper;
@@ -48,7 +44,6 @@
class PollRequestFlowTest extends FlowTestCase {
private Domain domain;
- private Contact contact;
private Host host;
@BeforeEach
@@ -58,8 +53,7 @@ void setUp() {
setRegistrarIdForFlow("NewRegistrar");
createTld("example");
persistNewRegistrar("BadRegistrar");
- contact = persistActiveContact("jd1234");
- domain = persistResource(DatabaseHelper.newDomain("test.example", contact));
+ domain = persistResource(DatabaseHelper.newDomain("test.example"));
host = persistActiveHost("ns1.test.example");
}
@@ -99,31 +93,6 @@ void testSuccess_clTridNotSpecified() throws Exception {
runFlowAssertResponse(loadFile("poll_response_domain_transfer_no_cltrid.xml"));
}
- @Test
- void testSuccess_contactTransferPending() throws Exception {
- setRegistrarIdForFlow("TheRegistrar");
- persistResource(
- new PollMessage.OneTime.Builder()
- .setId(3L)
- .setRegistrarId(getRegistrarIdForFlow())
- .setEventTime(clock.nowUtc().minusDays(5))
- .setMsg("Transfer requested.")
- .setResponseData(
- ImmutableList.of(
- new ContactTransferResponse.Builder()
- .setContactId("sh8013")
- .setTransferStatus(TransferStatus.PENDING)
- .setGainingRegistrarId(getRegistrarIdForFlow())
- .setTransferRequestTime(clock.nowUtc().minusDays(5))
- .setLosingRegistrarId("NewRegistrar")
- .setPendingTransferExpirationTime(clock.nowUtc())
- .build()))
- .setHistoryEntry(createHistoryEntryForEppResource(contact))
- .build());
- assertMutatingFlow(false);
- runFlowAssertResponse(loadFile("poll_response_contact_transfer.xml"));
- }
-
@Test
void testSuccess_domainPendingActionComplete() throws Exception {
persistResource(
@@ -225,29 +194,6 @@ void testSuccess_futureAutorenew() throws Exception {
runFlowAssertResponse(loadFile("poll_response_empty.xml"));
}
- @Test
- void testSuccess_contactDelete() throws Exception {
- // Contact delete poll messages do not have any response data, so ensure that no
- // response data block is produced in the poll message.
- HistoryEntry historyEntry =
- persistResource(
- new ContactHistory.Builder()
- .setRegistrarId("NewRegistrar")
- .setModificationTime(clock.nowUtc().minusDays(1))
- .setType(HistoryEntry.Type.CONTACT_DELETE)
- .setContact(contact)
- .build());
- persistResource(
- new PollMessage.OneTime.Builder()
- .setRegistrarId("NewRegistrar")
- .setMsg("Deleted contact jd1234")
- .setHistoryEntry(historyEntry)
- .setEventTime(clock.nowUtc().minusDays(1))
- .build());
- assertMutatingFlow(false);
- runFlowAssertResponse(loadFile("poll_response_contact_delete.xml"));
- }
-
@Test
void testSuccess_hostDelete() throws Exception {
// Host delete poll messages do not have any response data, so ensure that no
diff --git a/core/src/test/java/google/registry/model/poll/PollMessageExternalKeyConverterTest.java b/core/src/test/java/google/registry/model/poll/PollMessageExternalKeyConverterTest.java
index 662bab0347e..1b10e21bfb9 100644
--- a/core/src/test/java/google/registry/model/poll/PollMessageExternalKeyConverterTest.java
+++ b/core/src/test/java/google/registry/model/poll/PollMessageExternalKeyConverterTest.java
@@ -18,7 +18,6 @@
import static google.registry.model.poll.PollMessageExternalKeyConverter.makePollMessageExternalId;
import static google.registry.model.poll.PollMessageExternalKeyConverter.parsePollMessageExternalId;
import static google.registry.testing.DatabaseHelper.createTld;
-import static google.registry.testing.DatabaseHelper.persistActiveContact;
import static google.registry.testing.DatabaseHelper.persistActiveDomain;
import static google.registry.testing.DatabaseHelper.persistActiveHost;
import static google.registry.testing.DatabaseHelper.persistResource;
@@ -83,23 +82,6 @@ void testSuccess_domain() {
assertVKeysEqual(parsePollMessageExternalId("5-2007"), pollMessage.createVKey());
}
- @Test
- void testSuccess_contact() {
- historyEntry =
- persistResource(
- DatabaseHelper.createHistoryEntryForEppResource(persistActiveContact("tim")));
- PollMessage.OneTime pollMessage =
- persistResource(
- new PollMessage.OneTime.Builder()
- .setRegistrarId("TheRegistrar")
- .setEventTime(clock.nowUtc())
- .setMsg("Test poll message")
- .setHistoryEntry(historyEntry)
- .build());
- assertThat(makePollMessageExternalId(pollMessage)).isEqualTo("7-2007");
- assertVKeysEqual(parsePollMessageExternalId("7-2007"), pollMessage.createVKey());
- }
-
@Test
void testSuccess_host() {
historyEntry =
diff --git a/core/src/test/java/google/registry/model/reporting/HistoryEntryTest.java b/core/src/test/java/google/registry/model/reporting/HistoryEntryTest.java
index 30f68b3452c..823b00dc662 100644
--- a/core/src/test/java/google/registry/model/reporting/HistoryEntryTest.java
+++ b/core/src/test/java/google/registry/model/reporting/HistoryEntryTest.java
@@ -18,7 +18,6 @@
import static google.registry.model.ImmutableObjectSubject.assertAboutImmutableObjects;
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
import static google.registry.testing.DatabaseHelper.createTld;
-import static google.registry.testing.DatabaseHelper.persistActiveContact;
import static google.registry.testing.DatabaseHelper.persistActiveDomain;
import static google.registry.testing.DatabaseHelper.persistResource;
import static java.nio.charset.StandardCharsets.UTF_8;
@@ -26,13 +25,12 @@
import com.google.common.collect.ImmutableSet;
import google.registry.model.EntityTestCase;
-import google.registry.model.contact.Contact;
-import google.registry.model.contact.ContactHistory;
import google.registry.model.domain.Domain;
import google.registry.model.domain.DomainHistory;
import google.registry.model.domain.Period;
import google.registry.model.eppcommon.Trid;
import google.registry.model.reporting.DomainTransactionRecord.TransactionReportField;
+import google.registry.model.reporting.HistoryEntry.Type;
import org.joda.time.DateTime;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -40,14 +38,13 @@
/** Unit tests for {@link HistoryEntry}. */
class HistoryEntryTest extends EntityTestCase {
+ private Domain domain;
private DomainHistory domainHistory;
- private Contact contact;
@BeforeEach
void setUp() {
createTld("foobar");
- Domain domain = persistActiveDomain("foo.foobar");
- contact = persistActiveContact("someone");
+ domain = persistActiveDomain("foo.foobar");
DomainTransactionRecord transactionRecord =
new DomainTransactionRecord.Builder()
.setTld("foobar")
@@ -91,12 +88,12 @@ void testBuilder_resourceMustBeSpecified() {
assertThrows(
IllegalArgumentException.class,
() ->
- new ContactHistory.Builder()
+ new DomainHistory.Builder()
.setRevisionId(5L)
.setModificationTime(DateTime.parse("1985-07-12T22:30:00Z"))
.setRegistrarId("TheRegistrar")
.setReason("Reason")
- .setType(HistoryEntry.Type.CONTACT_CREATE)
+ .setType(Type.DOMAIN_CREATE)
.build());
assertThat(thrown).hasMessageThat().isEqualTo("EPP resource must be specified");
}
@@ -107,10 +104,10 @@ void testBuilder_typeMustBeSpecified() {
assertThrows(
IllegalArgumentException.class,
() ->
- new ContactHistory.Builder()
- .setContact(contact)
+ new DomainHistory.Builder()
.setRevisionId(5L)
- .setModificationTime(DateTime.parse("1985-07-12T22:30:00Z"))
+ .setDomain(domain)
+ .setModificationTime(DateTime.parse("1985-07-12T22:30.00Z"))
.setRegistrarId("TheRegistrar")
.setReason("Reason")
.build());
@@ -123,12 +120,12 @@ void testBuilder_modificationTimeMustBeSpecified() {
assertThrows(
IllegalArgumentException.class,
() ->
- new ContactHistory.Builder()
- .setContact(contact)
+ new DomainHistory.Builder()
.setRevisionId(5L)
- .setType(HistoryEntry.Type.CONTACT_CREATE)
+ .setDomain(domain)
+ .setType(Type.DOMAIN_CREATE)
.setRegistrarId("TheRegistrar")
- .setReason("Reason")
+ .setReason("reason")
.build());
assertThat(thrown).hasMessageThat().isEqualTo("Modification time must be specified");
}
@@ -139,11 +136,11 @@ void testBuilder_registrarIdMustBeSpecified() {
assertThrows(
IllegalArgumentException.class,
() ->
- new ContactHistory.Builder()
+ new DomainHistory.Builder()
.setRevisionId(5L)
- .setContact(contact)
- .setType(HistoryEntry.Type.CONTACT_CREATE)
- .setModificationTime(DateTime.parse("1985-07-12T22:30:00Z"))
+ .setDomain(domain)
+ .setType(Type.DOMAIN_CREATE)
+ .setModificationTime(DateTime.parse("1985-07-12T22:30.00Z"))
.setReason("Reason")
.build());
assertThat(thrown).hasMessageThat().isEqualTo("Registrar ID must be specified");
@@ -155,11 +152,11 @@ void testBuilder_syntheticHistoryEntries_mustNotBeRequestedByRegistrar() {
assertThrows(
IllegalArgumentException.class,
() ->
- new ContactHistory.Builder()
- .setContact(contact)
+ new DomainHistory.Builder()
.setRevisionId(5L)
- .setType(HistoryEntry.Type.SYNTHETIC)
- .setModificationTime(DateTime.parse("1985-07-12T22:30:00Z"))
+ .setDomain(domain)
+ .setType(Type.SYNTHETIC)
+ .setModificationTime(DateTime.parse("1985-07-12T22:30.00Z"))
.setRegistrarId("TheRegistrar")
.setReason("Reason")
.setRequestedByRegistrar(true)
diff --git a/core/src/test/java/google/registry/rde/DomainToXjcConverterTest.java b/core/src/test/java/google/registry/rde/DomainToXjcConverterTest.java
index 1871f4e6903..fee076ea0a4 100644
--- a/core/src/test/java/google/registry/rde/DomainToXjcConverterTest.java
+++ b/core/src/test/java/google/registry/rde/DomainToXjcConverterTest.java
@@ -28,17 +28,12 @@
import static java.nio.charset.StandardCharsets.UTF_8;
import static org.joda.money.CurrencyUnit.USD;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.net.InetAddresses;
import google.registry.model.billing.BillingBase.Flag;
import google.registry.model.billing.BillingBase.Reason;
import google.registry.model.billing.BillingEvent;
import google.registry.model.billing.BillingRecurrence;
-import google.registry.model.contact.Contact;
-import google.registry.model.contact.ContactAddress;
-import google.registry.model.contact.ContactPhoneNumber;
-import google.registry.model.contact.PostalInfo;
import google.registry.model.domain.DesignatedContact;
import google.registry.model.domain.Domain;
import google.registry.model.domain.DomainAuthInfo;
@@ -73,7 +68,6 @@
import google.registry.xjc.secdns.XjcSecdnsDsDataType;
import google.registry.xml.XmlException;
import java.io.ByteArrayOutputStream;
-import java.util.Optional;
import org.joda.money.Money;
import org.joda.time.DateTime;
import org.junit.jupiter.api.BeforeEach;
@@ -109,7 +103,7 @@ void testConvertThick() {
assertThat(
bean.getContacts().stream()
.map(input -> String.format("%s %s", input.getType().toString(), input.getValue())))
- .containsExactly("ADMIN 5372808-IRL", "TECH 5372808-TRL");
+ .containsExactly("ADMIN contact1234", "TECH contact1234");
assertThat(bean.getCrDate()).isEqualTo(DateTime.parse("1900-01-01T00:00:00Z"));
@@ -138,7 +132,7 @@ void testConvertThick() {
// name used to generate the IDN variant.
// TODO(b/26125498): bean.getOriginalName()
- assertThat(bean.getRegistrant()).isEqualTo("5372808-ERL");
+ assertThat(bean.getRegistrant()).isEqualTo("contact1234");
// o Zero or more OPTIONAL element to represent
// "pendingDelete" sub-statuses, including "redemptionPeriod",
@@ -264,26 +258,6 @@ static Domain makeDomain(FakeClock clock) {
domain
.asBuilder()
.setAuthInfo(DomainAuthInfo.create(PasswordAuth.create("secret")))
- .setContacts(
- ImmutableSet.of(
- DesignatedContact.create(
- DesignatedContact.Type.ADMIN,
- makeContact(
- clock,
- "10-Q9JYB4C",
- "5372808-IRL",
- "be that word our sign in parting",
- "BOFH@cat.みんな")
- .createVKey()),
- DesignatedContact.create(
- DesignatedContact.Type.TECH,
- makeContact(
- clock,
- "11-Q9JYB4C",
- "5372808-TRL",
- "bird or fiend!? i shrieked upstarting",
- "bog@cat.みんな")
- .createVKey())))
.setCreationRegistrarId("TheRegistrar")
.setCreationTimeForTest(DateTime.parse("1900-01-01T00:00:00Z"))
.setPersistedCurrentSponsorRegistrarId("TheRegistrar")
@@ -298,15 +272,6 @@ static Domain makeDomain(FakeClock clock) {
makeHost(clock, "3-Q9JYB4C", "bird.or.devil.みんな", "1.2.3.4").createVKey(),
makeHost(clock, "4-Q9JYB4C", "ns2.cat.みんな", "bad:f00d:cafe::15:beef")
.createVKey()))
- .setRegistrant(
- Optional.of(
- makeContact(
- clock,
- "12-Q9JYB4C",
- "5372808-ERL",
- "(◕‿◕) nevermore",
- "prophet@evil.みんな")
- .createVKey()))
.setRegistrationExpirationTime(DateTime.parse("1930-01-01T00:00:00Z"))
.setGracePeriods(
ImmutableSet.of(
@@ -404,37 +369,6 @@ static Domain makeDomain(FakeClock clock) {
return persistResource(domain);
}
- private static Contact makeContact(
- FakeClock clock, String repoId, String id, String name, String email) {
- clock.advanceOneMilli();
- return persistEppResource(
- new Contact.Builder()
- .setContactId(id)
- .setEmailAddress(email)
- .setPersistedCurrentSponsorRegistrarId("TheRegistrar")
- .setCreationRegistrarId("TheRegistrar")
- .setCreationTimeForTest(END_OF_TIME)
- .setInternationalizedPostalInfo(
- new PostalInfo.Builder()
- .setType(PostalInfo.Type.INTERNATIONALIZED)
- .setName(name)
- .setOrg("SINNERS INCORPORATED")
- .setAddress(
- new ContactAddress.Builder()
- .setStreet(ImmutableList.of("123 Example Boulevard"))
- .setCity("KOKOMO")
- .setState("BM")
- .setZip("31337")
- .setCountryCode("US")
- .build())
- .build())
- .setRepoId(repoId)
- .setVoiceNumber(
- new ContactPhoneNumber.Builder().setPhoneNumber("+1.2126660420").build())
- .setFaxNumber(new ContactPhoneNumber.Builder().setPhoneNumber("+1.2126660421").build())
- .build());
- }
-
private static Host makeHost(FakeClock clock, String repoId, String fqhn, String ip) {
clock.advanceOneMilli();
return persistEppResource(
diff --git a/core/src/test/java/google/registry/testing/DatabaseHelper.java b/core/src/test/java/google/registry/testing/DatabaseHelper.java
index 3f8d0b27813..86e18a72241 100644
--- a/core/src/test/java/google/registry/testing/DatabaseHelper.java
+++ b/core/src/test/java/google/registry/testing/DatabaseHelper.java
@@ -25,7 +25,6 @@
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;
import static google.registry.config.RegistryConfig.getContactAndHostRoidSuffix;
-import static google.registry.config.RegistryConfig.getContactAutomaticTransferLength;
import static google.registry.model.EppResourceUtils.createDomainRepoId;
import static google.registry.model.EppResourceUtils.createRepoId;
import static google.registry.model.ImmutableObjectSubject.assertAboutImmutableObjects;
@@ -76,7 +75,6 @@
import google.registry.model.console.UserRoles;
import google.registry.model.contact.Contact;
import google.registry.model.contact.ContactAuthInfo;
-import google.registry.model.contact.ContactHistory;
import google.registry.model.domain.DesignatedContact;
import google.registry.model.domain.DesignatedContact.Type;
import google.registry.model.domain.Domain;
@@ -536,53 +534,6 @@ public static BillingEvent createBillingEventForTransfer(
.build();
}
- public static Contact persistContactWithPendingTransfer(
- Contact contact, DateTime requestTime, DateTime expirationTime, DateTime now) {
- ContactHistory historyEntryContactTransfer =
- persistResource(
- new ContactHistory.Builder()
- .setType(HistoryEntry.Type.CONTACT_TRANSFER_REQUEST)
- .setContact(persistResource(contact))
- .setModificationTime(now)
- .setRegistrarId(contact.getCurrentSponsorRegistrarId())
- .build());
- return persistResource(
- contact
- .asBuilder()
- .setPersistedCurrentSponsorRegistrarId("TheRegistrar")
- .addStatusValue(StatusValue.PENDING_TRANSFER)
- .setTransferData(
- createContactTransferDataBuilder(requestTime, expirationTime)
- .setPendingTransferExpirationTime(now.plus(getContactAutomaticTransferLength()))
- .setServerApproveEntities(
- historyEntryContactTransfer.getRepoId(),
- historyEntryContactTransfer.getRevisionId(),
- ImmutableSet.of(
- // Pretend it's 3 days since the request
- persistResource(
- createPollMessageForImplicitTransfer(
- contact,
- historyEntryContactTransfer,
- "NewRegistrar",
- requestTime,
- expirationTime,
- null))
- .createVKey(),
- persistResource(
- createPollMessageForImplicitTransfer(
- contact,
- historyEntryContactTransfer,
- "TheRegistrar",
- requestTime,
- expirationTime,
- null))
- .createVKey()))
- .setTransferRequestTrid(
- Trid.create("transferClient-trid", "transferServer-trid"))
- .build())
- .build());
- }
-
public static Domain persistDomainWithDependentResources(
String label,
String tld,