diff --git a/core/src/test/java/google/registry/flows/contact/ContactCheckFlowTest.java b/core/src/test/java/google/registry/flows/contact/ContactCheckFlowTest.java index e194eeead..cf7d1ad56 100644 --- a/core/src/test/java/google/registry/flows/contact/ContactCheckFlowTest.java +++ b/core/src/test/java/google/registry/flows/contact/ContactCheckFlowTest.java @@ -25,12 +25,19 @@ import google.registry.flows.ResourceCheckFlowTestCase; import google.registry.flows.exceptions.TooManyResourceChecksException; import google.registry.model.contact.ContactResource; import google.registry.testing.DualDatabaseTest; +import google.registry.testing.ReplayExtension; import google.registry.testing.TestOfyAndSql; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link ContactCheckFlow}. */ @DualDatabaseTest class ContactCheckFlowTest extends ResourceCheckFlowTestCase { + @Order(value = Order.DEFAULT - 2) + @RegisterExtension + final ReplayExtension replayExtension = ReplayExtension.createWithCompare(clock); + ContactCheckFlowTest() { setEppInput("contact_check.xml"); } diff --git a/core/src/test/java/google/registry/flows/contact/ContactDeleteFlowTest.java b/core/src/test/java/google/registry/flows/contact/ContactDeleteFlowTest.java index bec6d1198..0f8e4e9ee 100644 --- a/core/src/test/java/google/registry/flows/contact/ContactDeleteFlowTest.java +++ b/core/src/test/java/google/registry/flows/contact/ContactDeleteFlowTest.java @@ -38,13 +38,20 @@ import google.registry.model.eppcommon.StatusValue; import google.registry.model.eppcommon.Trid; import google.registry.model.reporting.HistoryEntry; import google.registry.testing.DualDatabaseTest; +import google.registry.testing.ReplayExtension; import google.registry.testing.TestOfyAndSql; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link ContactDeleteFlow}. */ @DualDatabaseTest class ContactDeleteFlowTest extends ResourceFlowTestCase { + @Order(value = Order.DEFAULT - 2) + @RegisterExtension + final ReplayExtension replayExtension = ReplayExtension.createWithCompare(clock); + @BeforeEach void initFlowTest() { setEppInput("contact_delete.xml"); diff --git a/core/src/test/java/google/registry/flows/contact/ContactInfoFlowTest.java b/core/src/test/java/google/registry/flows/contact/ContactInfoFlowTest.java index 26db87506..ccce1cb89 100644 --- a/core/src/test/java/google/registry/flows/contact/ContactInfoFlowTest.java +++ b/core/src/test/java/google/registry/flows/contact/ContactInfoFlowTest.java @@ -39,13 +39,20 @@ import google.registry.model.eppcommon.AuthInfo.PasswordAuth; import google.registry.model.eppcommon.PresenceMarker; import google.registry.model.eppcommon.StatusValue; import google.registry.testing.DualDatabaseTest; +import google.registry.testing.ReplayExtension; import google.registry.testing.TestOfyAndSql; import org.joda.time.DateTime; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link ContactInfoFlow}. */ @DualDatabaseTest class ContactInfoFlowTest extends ResourceFlowTestCase { + @Order(value = Order.DEFAULT - 2) + @RegisterExtension + final ReplayExtension replayExtension = ReplayExtension.createWithCompare(clock); + ContactInfoFlowTest() { setEppInput("contact_info.xml"); } diff --git a/core/src/test/java/google/registry/flows/contact/ContactTransferCancelFlowTest.java b/core/src/test/java/google/registry/flows/contact/ContactTransferCancelFlowTest.java index 80718a736..b84684478 100644 --- a/core/src/test/java/google/registry/flows/contact/ContactTransferCancelFlowTest.java +++ b/core/src/test/java/google/registry/flows/contact/ContactTransferCancelFlowTest.java @@ -38,14 +38,21 @@ import google.registry.model.transfer.TransferData; import google.registry.model.transfer.TransferResponse; import google.registry.model.transfer.TransferStatus; import google.registry.testing.DualDatabaseTest; +import google.registry.testing.ReplayExtension; import google.registry.testing.TestOfyAndSql; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link ContactTransferCancelFlow}. */ @DualDatabaseTest class ContactTransferCancelFlowTest extends ContactTransferFlowTestCase { + @Order(value = Order.DEFAULT - 2) + @RegisterExtension + final ReplayExtension replayExtension = ReplayExtension.createWithCompare(clock); + @BeforeEach void setUp() { this.setEppInput("contact_transfer_cancel.xml"); diff --git a/core/src/test/java/google/registry/flows/contact/ContactTransferRejectFlowTest.java b/core/src/test/java/google/registry/flows/contact/ContactTransferRejectFlowTest.java index 9aa96d537..c9fa17657 100644 --- a/core/src/test/java/google/registry/flows/contact/ContactTransferRejectFlowTest.java +++ b/core/src/test/java/google/registry/flows/contact/ContactTransferRejectFlowTest.java @@ -40,14 +40,21 @@ import google.registry.model.transfer.TransferData; import google.registry.model.transfer.TransferResponse; import google.registry.model.transfer.TransferStatus; import google.registry.testing.DualDatabaseTest; +import google.registry.testing.ReplayExtension; import google.registry.testing.TestOfyAndSql; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link ContactTransferRejectFlow}. */ @DualDatabaseTest class ContactTransferRejectFlowTest extends ContactTransferFlowTestCase { + @Order(value = Order.DEFAULT - 2) + @RegisterExtension + final ReplayExtension replayExtension = ReplayExtension.createWithCompare(clock); + @BeforeEach void setUp() { setEppInput("contact_transfer_reject.xml"); diff --git a/core/src/test/java/google/registry/flows/contact/ContactTransferRequestFlowTest.java b/core/src/test/java/google/registry/flows/contact/ContactTransferRequestFlowTest.java index a62952693..f293ca262 100644 --- a/core/src/test/java/google/registry/flows/contact/ContactTransferRequestFlowTest.java +++ b/core/src/test/java/google/registry/flows/contact/ContactTransferRequestFlowTest.java @@ -52,15 +52,22 @@ import google.registry.model.reporting.HistoryEntry; import google.registry.model.transfer.ContactTransferData; import google.registry.model.transfer.TransferStatus; import google.registry.testing.DualDatabaseTest; +import google.registry.testing.ReplayExtension; import google.registry.testing.TestOfyAndSql; import org.joda.time.DateTime; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link ContactTransferRequestFlow}. */ @DualDatabaseTest class ContactTransferRequestFlowTest extends ContactTransferFlowTestCase { + @Order(value = Order.DEFAULT - 2) + @RegisterExtension + final ReplayExtension replayExtension = ReplayExtension.createWithCompare(clock); + ContactTransferRequestFlowTest() { // We need the transfer to happen at exactly this time in order for the response to match up. clock.setTo(DateTime.parse("2000-06-08T22:00:00.0Z")); diff --git a/core/src/test/java/google/registry/flows/domain/DomainCheckFlowTest.java b/core/src/test/java/google/registry/flows/domain/DomainCheckFlowTest.java index e1ba51ce2..18fbccfab 100644 --- a/core/src/test/java/google/registry/flows/domain/DomainCheckFlowTest.java +++ b/core/src/test/java/google/registry/flows/domain/DomainCheckFlowTest.java @@ -71,16 +71,29 @@ import google.registry.model.registry.Registry; import google.registry.model.registry.Registry.TldState; import google.registry.model.registry.label.ReservedList; import google.registry.model.reporting.HistoryEntry; +import google.registry.testing.ReplayExtension; import org.joda.money.CurrencyUnit; import org.joda.money.Money; import org.joda.time.DateTime; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.BeforeEachCallback; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link DomainCheckFlow}. */ class DomainCheckFlowTest extends ResourceCheckFlowTestCase { + @Order(value = Order.DEFAULT - 3) + @RegisterExtension + final SetClockExtension setClockExtension = new SetClockExtension(); + + @Order(value = Order.DEFAULT - 2) + @RegisterExtension + final ReplayExtension replayExtension = ReplayExtension.createWithCompare(clock); + DomainCheckFlowTest() { setEppInput("domain_check_one_tld.xml"); } @@ -1338,4 +1351,12 @@ class DomainCheckFlowTest extends ResourceCheckFlowTestCase { + @Order(value = Order.DEFAULT - 2) + @RegisterExtension + final ReplayExtension replayExtension = ReplayExtension.createWithCompare(clock); + DomainClaimsCheckFlowTest() { setEppInput("domain_check_claims.xml"); } diff --git a/core/src/test/java/google/registry/flows/domain/DomainInfoFlowTest.java b/core/src/test/java/google/registry/flows/domain/DomainInfoFlowTest.java index 0d6d12874..dd550111f 100644 --- a/core/src/test/java/google/registry/flows/domain/DomainInfoFlowTest.java +++ b/core/src/test/java/google/registry/flows/domain/DomainInfoFlowTest.java @@ -26,6 +26,7 @@ import static google.registry.testing.DatabaseHelper.persistActiveHost; import static google.registry.testing.DatabaseHelper.persistResource; import static google.registry.testing.EppExceptionSubject.assertAboutEppExceptions; import static google.registry.testing.TestDataHelper.updateSubstitutions; +import static google.registry.util.DateTimeUtils.END_OF_TIME; import static google.registry.util.DateTimeUtils.START_OF_TIME; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -45,7 +46,8 @@ import google.registry.flows.domain.DomainFlowUtils.FeeChecksDontSupportPhasesEx import google.registry.flows.domain.DomainFlowUtils.RestoresAreAlwaysForOneYearException; import google.registry.flows.domain.DomainFlowUtils.TransfersAreAlwaysForOneYearException; import google.registry.model.billing.BillingEvent; -import google.registry.model.billing.BillingEvent.Recurring; +import google.registry.model.billing.BillingEvent.Flag; +import google.registry.model.billing.BillingEvent.Reason; import google.registry.model.contact.ContactAuthInfo; import google.registry.model.contact.ContactResource; import google.registry.model.domain.DesignatedContact; @@ -63,13 +65,26 @@ import google.registry.model.registry.Registry; import google.registry.model.reporting.HistoryEntry; import google.registry.persistence.VKey; import google.registry.testing.AppEngineExtension; +import google.registry.testing.ReplayExtension; import org.joda.time.DateTime; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.BeforeEachCallback; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link DomainInfoFlow}. */ class DomainInfoFlowTest extends ResourceFlowTestCase { + @Order(value = Order.DEFAULT - 3) + @RegisterExtension + final SetClockExtension setClockExtension = new SetClockExtension(); + + @Order(value = Order.DEFAULT - 2) + @RegisterExtension + final ReplayExtension replayExtension = ReplayExtension.createWithCompare(clock); + /** * The domain_info_fee.xml default substitutions common to most tests. * @@ -93,7 +108,6 @@ class DomainInfoFlowTest extends ResourceFlowTestCase substitutions) + String expectedXmlFilename, + boolean inactive, + ImmutableMap substitutions, + boolean expectHistoryAndBilling) throws Exception { assertTransactionalFlow(false); String expected = @@ -158,12 +175,20 @@ class DomainInfoFlowTest extends ResourceFlowTestCase substitutions) + throws Exception { + doSuccessfulTest(expectedXmlFilename, inactive, substitutions, false); } private void doSuccessfulTest(String expectedXmlFilename, boolean inactive) throws Exception { - doSuccessfulTest(expectedXmlFilename, inactive, ImmutableMap.of()); + doSuccessfulTest(expectedXmlFilename, inactive, ImmutableMap.of(), false); } private void doSuccessfulTest(String expectedXmlFilename) throws Exception { @@ -309,7 +334,11 @@ class DomainInfoFlowTest extends ResourceFlowTestCase historyEntry = - Key.create(domain.createVKey().getOfyKey(), HistoryEntry.class, 67890); - VKey recurringVKey = - VKey.from(Key.create(historyEntry, Recurring.class, 12345)); + HistoryEntry historyEntry = + persistResource( + new HistoryEntry.Builder() + .setParent(domain) + .setType(HistoryEntry.Type.DOMAIN_CREATE) + .setModificationTime(clock.nowUtc()) + .build()); + BillingEvent.Recurring renewEvent = + persistResource( + new BillingEvent.Recurring.Builder() + .setReason(Reason.RENEW) + .setFlags(ImmutableSet.of(Flag.AUTO_RENEW)) + .setTargetId(getUniqueIdFromCommand()) + .setClientId("TheRegistrar") + .setEventTime(clock.nowUtc()) + .setRecurrenceEndTime(END_OF_TIME) + .setParent(historyEntry) + .build()); + VKey recurringVKey = renewEvent.createVKey(); // Add an AUTO_RENEW grace period to the saved resource. persistResource( domain @@ -341,10 +385,10 @@ class DomainInfoFlowTest extends ResourceFlowTestCase { + @Order(value = Order.DEFAULT - 2) + @RegisterExtension + final ReplayExtension replayExtension = ReplayExtension.createWithCompare(clock); + private static final ImmutableMap FEE_06_MAP = ImmutableMap.of("FEE_VERSION", "0.6", "FEE_NS", "fee", "CURRENCY", "USD"); private static final ImmutableMap FEE_11_MAP = @@ -99,11 +106,12 @@ class DomainRestoreRequestFlowTest } void persistPendingDeleteDomain(DateTime expirationTime) throws Exception { - DomainBase domain = newDomainBase(getUniqueIdFromCommand()); + DomainBase domain = persistResource(newDomainBase(getUniqueIdFromCommand())); HistoryEntry historyEntry = persistResource( new HistoryEntry.Builder() .setType(HistoryEntry.Type.DOMAIN_DELETE) + .setModificationTime(clock.nowUtc()) .setParent(domain) .build()); persistResource( @@ -116,7 +124,7 @@ class DomainRestoreRequestFlowTest GracePeriodStatus.REDEMPTION, domain.getRepoId(), clock.nowUtc().plusDays(1), - "foo", + "TheRegistrar", null)) .setStatusValues(ImmutableSet.of(StatusValue.PENDING_DELETE)) .setDeletePollMessage( diff --git a/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_date_v12.xml b/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_date_v12.xml index 316179cdb..bb574b496 100644 --- a/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_date_v12.xml +++ b/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_date_v12.xml @@ -28,7 +28,7 @@ 1 13.00 - 50.00 + 50.00 2010-01-02T13:22:21Z 2010-01-03T10:00:00.000Z @@ -40,7 +40,7 @@ 1 13.00 - 50.00 + 50.00 2010-01-02T13:22:21Z 2010-01-03T10:00:00.000Z @@ -52,7 +52,7 @@ 1 13.00 - 50.00 + 50.00 2010-01-02T13:22:21Z 2010-01-03T10:00:00.000Z diff --git a/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_v06.xml b/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_v06.xml index 615e3d8be..1c72c9819 100644 --- a/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_v06.xml +++ b/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_v06.xml @@ -25,7 +25,7 @@ create 1 13.00 - 100.00 + 100.00 example3.tld @@ -33,7 +33,7 @@ create 2 26.00 - 100.00 + 100.00 diff --git a/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_v11.xml b/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_v11.xml index eb4853abe..3e23d5024 100644 --- a/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_v11.xml +++ b/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_v11.xml @@ -28,7 +28,7 @@ USD 1 13.00 - 100.00 + 100.00 @@ -38,7 +38,7 @@ USD 1 13.00 - 100.00 + 100.00 @@ -48,7 +48,7 @@ USD 1 13.00 - 100.00 + 100.00 diff --git a/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_v12.xml b/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_v12.xml index b1a6a3e54..48fc5e5af 100644 --- a/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_v12.xml +++ b/core/src/test/resources/google/registry/flows/domain/domain_check_eap_fee_response_v12.xml @@ -28,7 +28,7 @@ 1 13.00 - 100.00 + 100.00 2010-01-02T10:00:00.000Z @@ -39,7 +39,7 @@ 1 13.00 - 100.00 + 100.00 2010-01-02T10:00:00.000Z @@ -50,7 +50,7 @@ 1 13.00 - 100.00 + 100.00 2010-01-02T10:00:00.000Z diff --git a/core/src/test/resources/google/registry/flows/domain/domain_check_fee_premium_eap_response_v06_with_renewal.xml b/core/src/test/resources/google/registry/flows/domain/domain_check_fee_premium_eap_response_v06_with_renewal.xml index 23ba2eb6d..22b31193b 100644 --- a/core/src/test/resources/google/registry/flows/domain/domain_check_fee_premium_eap_response_v06_with_renewal.xml +++ b/core/src/test/resources/google/registry/flows/domain/domain_check_fee_premium_eap_response_v06_with_renewal.xml @@ -19,7 +19,7 @@ create 1 100.00 - 100.00 + 100.00 premium