diff --git a/core/src/test/java/google/registry/flows/CheckApiActionTest.java b/core/src/test/java/google/registry/flows/CheckApiActionTest.java index 57cabf60d..14f2c1baa 100644 --- a/core/src/test/java/google/registry/flows/CheckApiActionTest.java +++ b/core/src/test/java/google/registry/flows/CheckApiActionTest.java @@ -39,35 +39,31 @@ import google.registry.testing.FakeResponse; import java.util.Map; import org.joda.time.DateTime; import org.json.simple.JSONValue; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; +import org.mockito.junit.jupiter.MockitoExtension; /** Tests for {@link CheckApiAction}. */ -@RunWith(JUnit4.class) -public class CheckApiActionTest { +@ExtendWith(MockitoExtension.class) +class CheckApiActionTest { private static final DateTime START_TIME = DateTime.parse("2000-01-01T00:00:00.0Z"); - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); - - @Rule public final MockitoRule mocks = MockitoJUnit.rule(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @Mock private CheckApiMetrics checkApiMetrics; @Captor private ArgumentCaptor metricCaptor; private DateTime endTime; - @Before - public void init() { + @BeforeEach + void beforeEach() { createTld("example"); persistResource( Registry.get("example") @@ -98,7 +94,7 @@ public class CheckApiActionTest { } @Test - public void testFailure_nullDomain() { + void testFailure_nullDomain() { assertThat(getCheckResponse(null)) .containsExactly( "status", "error", @@ -108,7 +104,7 @@ public class CheckApiActionTest { } @Test - public void testFailure_emptyDomain() { + void testFailure_emptyDomain() { assertThat(getCheckResponse("")) .containsExactly( "status", "error", @@ -118,7 +114,7 @@ public class CheckApiActionTest { } @Test - public void testFailure_invalidDomain() { + void testFailure_invalidDomain() { assertThat(getCheckResponse("@#$%^")) .containsExactly( "status", "error", @@ -128,7 +124,7 @@ public class CheckApiActionTest { } @Test - public void testFailure_singlePartDomain() { + void testFailure_singlePartDomain() { assertThat(getCheckResponse("foo")) .containsExactly( "status", "error", @@ -138,7 +134,7 @@ public class CheckApiActionTest { } @Test - public void testFailure_nonExistentTld() { + void testFailure_nonExistentTld() { assertThat(getCheckResponse("foo.bar")) .containsExactly( "status", "error", @@ -148,7 +144,7 @@ public class CheckApiActionTest { } @Test - public void testFailure_invalidIdnTable() { + void testFailure_invalidIdnTable() { assertThat(getCheckResponse("ΑΒΓ.example")) .containsExactly( "status", "error", @@ -158,7 +154,7 @@ public class CheckApiActionTest { } @Test - public void testFailure_tldInPredelegation() { + void testFailure_tldInPredelegation() { createTld("predelegated", PREDELEGATION); assertThat(getCheckResponse("foo.predelegated")) .containsExactly( @@ -169,7 +165,7 @@ public class CheckApiActionTest { } @Test - public void testSuccess_availableStandard() { + void testSuccess_availableStandard() { assertThat(getCheckResponse("somedomain.example")) .containsExactly( "status", "success", @@ -180,7 +176,7 @@ public class CheckApiActionTest { } @Test - public void testSuccess_availableCapital() { + void testSuccess_availableCapital() { assertThat(getCheckResponse("SOMEDOMAIN.EXAMPLE")) .containsExactly( "status", "success", @@ -191,7 +187,7 @@ public class CheckApiActionTest { } @Test - public void testSuccess_availableUnicode() { + void testSuccess_availableUnicode() { assertThat(getCheckResponse("ééé.example")) .containsExactly( "status", "success", @@ -202,7 +198,7 @@ public class CheckApiActionTest { } @Test - public void testSuccess_availablePunycode() { + void testSuccess_availablePunycode() { assertThat(getCheckResponse("xn--9caaa.example")) .containsExactly( "status", "success", @@ -213,7 +209,7 @@ public class CheckApiActionTest { } @Test - public void testSuccess_availablePremium() { + void testSuccess_availablePremium() { assertThat(getCheckResponse("rich.example")) .containsExactly( "status", "success", @@ -224,7 +220,7 @@ public class CheckApiActionTest { } @Test - public void testSuccess_registered_standard() { + void testSuccess_registered_standard() { persistActiveDomain("somedomain.example"); assertThat(getCheckResponse("somedomain.example")) .containsExactly( @@ -237,7 +233,7 @@ public class CheckApiActionTest { } @Test - public void testSuccess_reserved_standard() { + void testSuccess_reserved_standard() { assertThat(getCheckResponse("foo.example")) .containsExactly( "tier", "standard", @@ -249,7 +245,7 @@ public class CheckApiActionTest { } @Test - public void testSuccess_registered_premium() { + void testSuccess_registered_premium() { persistActiveDomain("rich.example"); assertThat(getCheckResponse("rich.example")) .containsExactly( @@ -262,7 +258,7 @@ public class CheckApiActionTest { } @Test - public void testSuccess_reserved_premium() { + void testSuccess_reserved_premium() { assertThat(getCheckResponse("platinum.example")) .containsExactly( "tier", "premium", @@ -274,7 +270,7 @@ public class CheckApiActionTest { } @Test - public void testSuccess_reservedForSpecificUse_premium() { + void testSuccess_reservedForSpecificUse_premium() { assertThat(getCheckResponse("gold.example")) .containsExactly( "tier", "premium", diff --git a/core/src/test/java/google/registry/flows/EppCommitLogsTest.java b/core/src/test/java/google/registry/flows/EppCommitLogsTest.java index 112c158bd..cec165e6c 100644 --- a/core/src/test/java/google/registry/flows/EppCommitLogsTest.java +++ b/core/src/test/java/google/registry/flows/EppCommitLogsTest.java @@ -36,28 +36,24 @@ import google.registry.testing.FakeClock; import google.registry.testing.FakeHttpSession; import google.registry.testing.InjectRule; import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Test that domain flows create the commit logs needed to reload at points in the past. */ -@RunWith(JUnit4.class) -public class EppCommitLogsTest { +class EppCommitLogsTest { - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); - @Rule - public final InjectRule inject = new InjectRule(); + @RegisterExtension final InjectRule inject = new InjectRule(); private final FakeClock clock = new FakeClock(DateTime.now(UTC)); private EppLoader eppLoader; - @Before - public void init() { + @BeforeEach + void beforeEach() { createTld("tld"); inject.setStaticField(Ofy.class, "clock", clock); } @@ -66,8 +62,7 @@ public class EppCommitLogsTest { SessionMetadata sessionMetadata = new HttpSessionMetadata(new FakeHttpSession()); sessionMetadata.setClientId("TheRegistrar"); DaggerEppTestComponent.builder() - .fakesAndMocksModule( - FakesAndMocksModule.create(clock, EppMetric.builderForRequest(clock))) + .fakesAndMocksModule(FakesAndMocksModule.create(clock, EppMetric.builderForRequest(clock))) .build() .startRequest() .flowComponentBuilder() @@ -87,8 +82,8 @@ public class EppCommitLogsTest { } @Test - public void testLoadAtPointInTime() throws Exception { - clock.setTo(DateTime.parse("1984-12-18T12:30Z")); // not midnight + void testLoadAtPointInTime() throws Exception { + clock.setTo(DateTime.parse("1984-12-18T12:30Z")); // not midnight persistActiveHost("ns1.example.net"); persistActiveHost("ns2.example.net"); @@ -114,7 +109,7 @@ public class EppCommitLogsTest { DomainBase domainAfterFirstUpdate = ofy().load().key(key).now(); assertThat(domainAfterCreate).isNotEqualTo(domainAfterFirstUpdate); - clock.advanceOneMilli(); // same day as first update + clock.advanceOneMilli(); // same day as first update DateTime timeAtSecondUpdate = clock.nowUtc(); eppLoader = new EppLoader(this, "domain_update_dsdata_rem.xml"); runFlow(); @@ -146,8 +141,7 @@ public class EppCommitLogsTest { // key to the first update should have been overwritten by the second, and its timestamp rolled // forward. So we have to fall back to the last revision before midnight. ofy().clearSessionCache(); - assertThat(loadAtPointInTime(latest, timeAtFirstUpdate).now()) - .isEqualTo(domainAfterCreate); + assertThat(loadAtPointInTime(latest, timeAtFirstUpdate).now()).isEqualTo(domainAfterCreate); ofy().clearSessionCache(); assertThat(loadAtPointInTime(latest, timeAtSecondUpdate).now()) diff --git a/core/src/test/java/google/registry/flows/EppControllerTest.java b/core/src/test/java/google/registry/flows/EppControllerTest.java index 72e3d2e51..2ac618020 100644 --- a/core/src/test/java/google/registry/flows/EppControllerTest.java +++ b/core/src/test/java/google/registry/flows/EppControllerTest.java @@ -50,26 +50,24 @@ import java.util.logging.LogRecord; import java.util.logging.Logger; import org.joda.time.DateTime; import org.json.simple.JSONValue; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; import org.mockito.ArgumentMatchers; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; /** Unit tests for {@link EppController}. */ -@RunWith(JUnit4.class) -public class EppControllerTest { +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) +class EppControllerTest { - @Rule - public AppEngineRule appEngineRule = - new AppEngineRule.Builder().withDatastoreAndCloudSql().build(); - - @Rule public final MockitoRule mocks = MockitoJUnit.rule(); + @RegisterExtension + AppEngineRule appEngineRule = new AppEngineRule.Builder().withDatastoreAndCloudSql().build(); @Mock SessionMetadata sessionMetadata; @Mock TransportCredentials transportCredentials; @@ -96,8 +94,8 @@ public class EppControllerTest { private EppController eppController; - @Before - public void setUp() throws Exception { + @BeforeEach + void beforeEach() throws Exception { loggerToIntercept.addHandler(logHandler); when(sessionMetadata.getClientId()).thenReturn("some-client"); @@ -117,13 +115,13 @@ public class EppControllerTest { eppController.serverTridProvider = new FakeServerTridProvider(); } - @After - public void tearDown() { + @AfterEach + void afterEach() { loggerToIntercept.removeHandler(logHandler); } @Test - public void testMarshallingUnknownError() throws Exception { + void testMarshallingUnknownError() throws Exception { marshal( EppController.getErrorResponse( Result.create(Code.COMMAND_FAILED), Trid.create(null, "server-trid")), @@ -131,7 +129,7 @@ public class EppControllerTest { } @Test - public void testHandleEppCommand_regularEppCommand_exportsEppMetrics() { + void testHandleEppCommand_regularEppCommand_exportsEppMetrics() { createTld("tld"); // Note that some of the EPP metric fields, like # of attempts and command name, are set in // FlowRunner, not EppController, and since FlowRunner is mocked out for these tests they won't @@ -155,7 +153,7 @@ public class EppControllerTest { } @Test - public void testHandleEppCommand_dryRunEppCommand_doesNotExportMetric() { + void testHandleEppCommand_dryRunEppCommand_doesNotExportMetric() { eppController.handleEppCommand( sessionMetadata, transportCredentials, @@ -167,7 +165,7 @@ public class EppControllerTest { } @Test - public void testHandleEppCommand_unmarshallableData_loggedAtInfo_withJsonData() throws Exception { + void testHandleEppCommand_unmarshallableData_loggedAtInfo_withJsonData() throws Exception { eppController.handleEppCommand( sessionMetadata, transportCredentials, @@ -176,7 +174,8 @@ public class EppControllerTest { false, "GET / HTTP/1.1\n\n".getBytes(UTF_8)); - assertAboutLogs().that(logHandler) + assertAboutLogs() + .that(logHandler) .hasLogAtLevelWithMessage(INFO, "EPP request XML unmarshalling failed"); LogRecord logRecord = findFirstLogRecordWithMessagePrefix(logHandler, "EPP request XML unmarshalling failed"); @@ -184,14 +183,14 @@ public class EppControllerTest { assertThat(messageParts.size()).isAtLeast(2); Map json = parseJsonMap(messageParts.get(1)); assertThat(json).containsEntry("clientId", "some-client"); - assertThat(json).containsEntry("resultCode", 2001L); // Must be Long to compare equal. + assertThat(json).containsEntry("resultCode", 2001L); // Must be Long to compare equal. assertThat(json).containsEntry("resultMessage", "Command syntax error"); assertThat(json) .containsEntry("xmlBytes", base64().encode("GET / HTTP/1.1\n\n".getBytes(UTF_8))); } @Test - public void testHandleEppCommand_throwsEppException_loggedAtInfo() throws Exception { + void testHandleEppCommand_throwsEppException_loggedAtInfo() throws Exception { when(flowRunner.run(eppController.eppMetricBuilder)) .thenThrow(new UnimplementedExtensionException()); eppController.handleEppCommand( @@ -201,7 +200,8 @@ public class EppControllerTest { false, true, domainCreateXml.getBytes(UTF_8)); - assertAboutLogs().that(logHandler) + assertAboutLogs() + .that(logHandler) .hasLogAtLevelWithMessage(INFO, "Flow returned failure response"); LogRecord logRecord = findFirstLogRecordWithMessagePrefix(logHandler, "Flow returned failure response"); @@ -209,8 +209,7 @@ public class EppControllerTest { } @Test - public void testHandleEppCommand_throwsEppExceptionInProviderException_loggedAtInfo() - throws Exception { + void testHandleEppCommand_throwsEppExceptionInProviderException_loggedAtInfo() throws Exception { when(flowRunner.run(eppController.eppMetricBuilder)) .thenThrow(new EppExceptionInProviderException(new UnimplementedExtensionException())); eppController.handleEppCommand( @@ -220,7 +219,8 @@ public class EppControllerTest { false, true, domainCreateXml.getBytes(UTF_8)); - assertAboutLogs().that(logHandler) + assertAboutLogs() + .that(logHandler) .hasLogAtLevelWithMessage(INFO, "Flow returned failure response"); LogRecord logRecord = findFirstLogRecordWithMessagePrefix(logHandler, "Flow returned failure response"); @@ -228,7 +228,7 @@ public class EppControllerTest { } @Test - public void testHandleEppCommand_throwsRuntimeException_loggedAtSevere() throws Exception { + void testHandleEppCommand_throwsRuntimeException_loggedAtSevere() throws Exception { when(flowRunner.run(eppController.eppMetricBuilder)).thenThrow(new IllegalStateException()); eppController.handleEppCommand( sessionMetadata, @@ -237,7 +237,8 @@ public class EppControllerTest { false, true, domainCreateXml.getBytes(UTF_8)); - assertAboutLogs().that(logHandler) + assertAboutLogs() + .that(logHandler) .hasLogAtLevelWithMessage(SEVERE, "Unexpected failure in flow execution"); LogRecord logRecord = findFirstLogRecordWithMessagePrefix(logHandler, "Unexpected failure in flow execution"); diff --git a/core/src/test/java/google/registry/flows/EppLifecycleContactTest.java b/core/src/test/java/google/registry/flows/EppLifecycleContactTest.java index 23cef9dff..84a3f8152 100644 --- a/core/src/test/java/google/registry/flows/EppLifecycleContactTest.java +++ b/core/src/test/java/google/registry/flows/EppLifecycleContactTest.java @@ -22,21 +22,18 @@ import static google.registry.testing.EppMetricSubject.assertThat; import com.google.common.collect.ImmutableMap; import google.registry.testing.AppEngineRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Tests for contact lifecycle. */ -@RunWith(JUnit4.class) -public class EppLifecycleContactTest extends EppTestCase { +class EppLifecycleContactTest extends EppTestCase { - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @Test - public void testContactLifecycle() throws Exception { + void testContactLifecycle() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); assertThatCommand("contact_create_sh8013.xml") .atTime("2000-06-01T00:00:00Z") @@ -72,7 +69,7 @@ public class EppLifecycleContactTest extends EppTestCase { } @Test - public void testContactTransferPollMessage() throws Exception { + void testContactTransferPollMessage() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); assertThatCommand("contact_create_sh8013.xml") .atTime("2000-06-01T00:00:00Z") diff --git a/core/src/test/java/google/registry/flows/EppLifecycleDomainTest.java b/core/src/test/java/google/registry/flows/EppLifecycleDomainTest.java index 24d4b2491..3a355309f 100644 --- a/core/src/test/java/google/registry/flows/EppLifecycleDomainTest.java +++ b/core/src/test/java/google/registry/flows/EppLifecycleDomainTest.java @@ -48,15 +48,12 @@ import google.registry.model.reporting.HistoryEntry.Type; import google.registry.testing.AppEngineRule; import org.joda.money.Money; import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Tests for domain lifecycle. */ -@RunWith(JUnit4.class) -public class EppLifecycleDomainTest extends EppTestCase { +class EppLifecycleDomainTest extends EppTestCase { private static final ImmutableMap DEFAULT_TRANSFER_RESPONSE_PARMS = ImmutableMap.of( @@ -64,17 +61,17 @@ public class EppLifecycleDomainTest extends EppTestCase { "ACDATE", "2002-06-04T00:00:00Z", "EXDATE", "2003-06-01T00:04:00Z"); - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); - @Before - public void initTld() { + @BeforeEach + void beforeEach() { createTlds("example", "tld"); } @Test - public void testDomainDeleteRestore() throws Exception { + void testDomainDeleteRestore() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); createContacts(DateTime.parse("2000-06-01T00:00:00Z")); @@ -134,7 +131,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainDeleteRestore_duringAutorenewGracePeriod() throws Exception { + void testDomainDeleteRestore_duringAutorenewGracePeriod() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); createContacts(DateTime.parse("2000-06-01T00:00:00Z")); @@ -208,7 +205,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainDeleteRestore_duringRenewalGracePeriod() throws Exception { + void testDomainDeleteRestore_duringRenewalGracePeriod() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); createContacts(DateTime.parse("2000-06-01T00:00:00Z")); @@ -290,8 +287,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainDelete_duringAddAndRenewalGracePeriod_deletesImmediately() - throws Exception { + void testDomainDelete_duringAddAndRenewalGracePeriod_deletesImmediately() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); createContacts(DateTime.parse("2000-06-01T00:00:00Z")); @@ -386,7 +382,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainDeletion_withinAddGracePeriod_deletesImmediately() throws Exception { + void testDomainDeletion_withinAddGracePeriod_deletesImmediately() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); createContacts(DateTime.parse("2000-06-01T00:00:00Z")); @@ -442,7 +438,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainDeletion_outsideAddGracePeriod_showsRedemptionPeriod() throws Exception { + void testDomainDeletion_outsideAddGracePeriod_showsRedemptionPeriod() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); createContacts(DateTime.parse("2000-06-01T00:00:00Z")); @@ -504,7 +500,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testEapDomainDeletion_withinAddGracePeriod_eapFeeIsNotRefunded() throws Exception { + void testEapDomainDeletion_withinAddGracePeriod_eapFeeIsNotRefunded() throws Exception { assertThatCommand("login_valid_fee_extension.xml").hasResponse("generic_success_response.xml"); createContacts(DateTime.parse("2000-06-01T00:00:00Z")); @@ -569,7 +565,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainDeletionWithSubordinateHost_fails() throws Exception { + void testDomainDeletionWithSubordinateHost_fails() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); createFakesite(); createSubordinateHost(); @@ -582,7 +578,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDeletionOfDomain_afterRenameOfSubordinateHost_succeeds() throws Exception { + void testDeletionOfDomain_afterRenameOfSubordinateHost_succeeds() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); assertThat(getRecordedEppMetric()) .hasClientId("NewRegistrar") @@ -637,7 +633,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDeletionOfDomain_afterUpdateThatCreatesSubordinateHost_fails() throws Exception { + void testDeletionOfDomain_afterUpdateThatCreatesSubordinateHost_fails() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); createFakesite(); @@ -680,7 +676,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainCreation_failsBeforeSunrise() throws Exception { + void testDomainCreation_failsBeforeSunrise() throws Exception { DateTime sunriseDate = DateTime.parse("2000-05-30T00:00:00Z"); createTld( "example", @@ -714,7 +710,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainCheckFee_succeeds() throws Exception { + void testDomainCheckFee_succeeds() throws Exception { DateTime gaDate = DateTime.parse("2000-05-30T00:00:00Z"); createTld( "example", @@ -740,7 +736,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainCreate_annualAutoRenewPollMessages_haveUniqueIds() throws Exception { + void testDomainCreate_annualAutoRenewPollMessages_haveUniqueIds() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); // Create the domain. createFakesite(); @@ -790,7 +786,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainTransferPollMessage_serverApproved() throws Exception { + void testDomainTransferPollMessage_serverApproved() throws Exception { // As the losing registrar, create the domain. assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); createFakesite(); @@ -839,7 +835,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testTransfer_autoRenewGraceActive_onlyAtAutomaticTransferTime_getsSubsumed() + void testTransfer_autoRenewGraceActive_onlyAtAutomaticTransferTime_getsSubsumed() throws Exception { // Register the domain as the first registrar. assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); @@ -877,7 +873,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testNameserversTransferWithDomain_successfully() throws Exception { + void testNameserversTransferWithDomain_successfully() throws Exception { // Log in as the first registrar and set up domains with hosts. assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); createFakesite(); @@ -914,7 +910,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testRenewalFails_whenTotalTermExceeds10Years() throws Exception { + void testRenewalFails_whenTotalTermExceeds10Years() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); // Creates domain with 2 year expiration. createFakesite(); @@ -928,7 +924,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainDeletionCancelsPendingTransfer() throws Exception { + void testDomainDeletionCancelsPendingTransfer() throws Exception { // Register the domain as the first registrar. assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); createFakesite(); @@ -966,7 +962,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainTransfer_subordinateHost_showsChangeInTransferQuery() throws Exception { + void testDomainTransfer_subordinateHost_showsChangeInTransferQuery() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); createFakesite(); createSubordinateHost(); @@ -1002,7 +998,7 @@ public class EppLifecycleDomainTest extends EppTestCase { * superordinate domain, not whatever the transfer time from the second domain is. */ @Test - public void testSuccess_lastTransferTime_superordinateDomainTransferFollowedByHostUpdate() + void testSuccess_lastTransferTime_superordinateDomainTransferFollowedByHostUpdate() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); // Create fakesite.example with subordinate host ns3.fakesite.example @@ -1056,7 +1052,7 @@ public class EppLifecycleDomainTest extends EppTestCase { * to be external, that the host retains the transfer time of the first superordinate domain. */ @Test - public void testSuccess_lastTransferTime_superordinateDomainTransferThenHostUpdateToExternal() + void testSuccess_lastTransferTime_superordinateDomainTransferThenHostUpdateToExternal() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); // Create fakesite.example with subordinate host ns3.fakesite.example @@ -1099,7 +1095,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testSuccess_multipartTldsWithSharedSuffixes() throws Exception { + void testSuccess_multipartTldsWithSharedSuffixes() throws Exception { createTlds("bar.foo.tld", "foo.tld"); assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); @@ -1143,7 +1139,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testSuccess_multipartTldsWithSharedPrefixes() throws Exception { + void testSuccess_multipartTldsWithSharedPrefixes() throws Exception { createTld("tld.foo"); assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); @@ -1177,12 +1173,12 @@ public class EppLifecycleDomainTest extends EppTestCase { /** * Test a full launch of start-date sunrise. * - * We show that we can't create during pre-delegation, can only create with an encoded mark during - * start-date sunrise - which we can then delete "as normal" (no need for a signed mark or + *

We show that we can't create during pre-delegation, can only create with an encoded mark + * during start-date sunrise - which we can then delete "as normal" (no need for a signed mark or * anything for delete), and then use "regular" create during general-availability. */ @Test - public void testDomainCreation_startDateSunriseFull() throws Exception { + void testDomainCreation_startDateSunriseFull() throws Exception { // The signed mark is valid between 2013 and 2017 DateTime sunriseDate = DateTime.parse("2014-09-08T09:09:09Z"); DateTime gaDate = sunriseDate.plusDays(30); @@ -1278,7 +1274,7 @@ public class EppLifecycleDomainTest extends EppTestCase { /** Test that missing type= argument on launch create works in start-date sunrise. */ @Test - public void testDomainCreation_startDateSunrise_noType() throws Exception { + void testDomainCreation_startDateSunrise_noType() throws Exception { // The signed mark is valid between 2013 and 2017 DateTime sunriseDate = DateTime.parse("2014-09-08T09:09:09Z"); DateTime gaDate = sunriseDate.plusDays(30); @@ -1327,7 +1323,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainTransfer_duringAutorenewGrace() throws Exception { + void testDomainTransfer_duringAutorenewGrace() throws Exception { // Creation date of fakesite: 2000-06-01T00:04:00.0Z // Expiration date: 2002-06-01T00:04:00.0Z assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); @@ -1413,7 +1409,7 @@ public class EppLifecycleDomainTest extends EppTestCase { } @Test - public void testDomainTransfer_queryForServerApproved() throws Exception { + void testDomainTransfer_queryForServerApproved() throws Exception { // Creation date of fakesite: 2000-06-01T00:04:00.0Z // Expiration date: 2002-06-01T00:04:00.0Z assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); diff --git a/core/src/test/java/google/registry/flows/EppLifecycleHostTest.java b/core/src/test/java/google/registry/flows/EppLifecycleHostTest.java index a75f1b80d..feddd52d2 100644 --- a/core/src/test/java/google/registry/flows/EppLifecycleHostTest.java +++ b/core/src/test/java/google/registry/flows/EppLifecycleHostTest.java @@ -28,21 +28,18 @@ import google.registry.model.domain.DomainBase; import google.registry.model.host.HostResource; import google.registry.testing.AppEngineRule; import org.joda.time.DateTime; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Tests for host lifecycle. */ -@RunWith(JUnit4.class) -public class EppLifecycleHostTest extends EppTestCase { +class EppLifecycleHostTest extends EppTestCase { - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @Test - public void testLifecycle() throws Exception { + void testLifecycle() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); assertThatCommand("hello.xml") .atTime("2000-06-02T00:00:00Z") @@ -90,7 +87,7 @@ public class EppLifecycleHostTest extends EppTestCase { } @Test - public void testRenamingHostToExistingHost_fails() throws Exception { + void testRenamingHostToExistingHost_fails() throws Exception { createTld("example"); assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); // Create the fakesite domain. @@ -140,7 +137,7 @@ public class EppLifecycleHostTest extends EppTestCase { } @Test - public void testSuccess_multipartTldsWithSharedSuffixes() throws Exception { + void testSuccess_multipartTldsWithSharedSuffixes() throws Exception { createTlds("bar.foo.tld", "foo.tld", "tld"); assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); diff --git a/core/src/test/java/google/registry/flows/EppLifecycleLoginTest.java b/core/src/test/java/google/registry/flows/EppLifecycleLoginTest.java index 1dad00ce8..2165777cf 100644 --- a/core/src/test/java/google/registry/flows/EppLifecycleLoginTest.java +++ b/core/src/test/java/google/registry/flows/EppLifecycleLoginTest.java @@ -19,21 +19,18 @@ import static google.registry.model.eppoutput.Result.Code.SUCCESS_AND_CLOSE; import static google.registry.testing.EppMetricSubject.assertThat; import google.registry.testing.AppEngineRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Tests for login lifecycle. */ -@RunWith(JUnit4.class) -public class EppLifecycleLoginTest extends EppTestCase { +class EppLifecycleLoginTest extends EppTestCase { - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @Test - public void testLoginAndLogout_recordsEppMetric() throws Exception { + void testLoginAndLogout_recordsEppMetric() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); assertThat(getRecordedEppMetric()) .hasClientId("NewRegistrar") diff --git a/core/src/test/java/google/registry/flows/EppLoggedOutTest.java b/core/src/test/java/google/registry/flows/EppLoggedOutTest.java index 813d4ebb3..66f65253b 100644 --- a/core/src/test/java/google/registry/flows/EppLoggedOutTest.java +++ b/core/src/test/java/google/registry/flows/EppLoggedOutTest.java @@ -20,20 +20,17 @@ import static org.joda.time.format.ISODateTimeFormat.dateTimeNoMillis; import com.google.common.collect.ImmutableMap; import google.registry.testing.AppEngineRule; import org.joda.time.DateTime; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Test flows without login. */ -@RunWith(JUnit4.class) -public class EppLoggedOutTest extends EppTestCase { +class EppLoggedOutTest extends EppTestCase { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @Test - public void testHello() throws Exception { + void testHello() throws Exception { DateTime now = DateTime.now(UTC); assertThatCommand("hello.xml", null) .atTime(now) @@ -41,7 +38,7 @@ public class EppLoggedOutTest extends EppTestCase { } @Test - public void testSyntaxError() throws Exception { + void testSyntaxError() throws Exception { assertThatCommand("syntax_error.xml") .hasResponse( "response_error_no_cltrid.xml", diff --git a/core/src/test/java/google/registry/flows/EppLoginTlsTest.java b/core/src/test/java/google/registry/flows/EppLoginTlsTest.java index fe8f01f72..9cc0806f7 100644 --- a/core/src/test/java/google/registry/flows/EppLoginTlsTest.java +++ b/core/src/test/java/google/registry/flows/EppLoginTlsTest.java @@ -23,26 +23,23 @@ import google.registry.testing.AppEngineRule; import google.registry.testing.CertificateSamples; import java.util.Optional; import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Test logging in with TLS credentials. */ -@RunWith(JUnit4.class) -public class EppLoginTlsTest extends EppTestCase { +class EppLoginTlsTest extends EppTestCase { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); void setClientCertificateHash(String clientCertificateHash) { setTransportCredentials( new TlsCredentials(true, clientCertificateHash, Optional.of("192.168.1.100:54321"))); } - @Before - public void initTest() { + @BeforeEach + void beforeEach() { persistResource( loadRegistrar("NewRegistrar") .asBuilder() @@ -57,14 +54,14 @@ public class EppLoginTlsTest extends EppTestCase { } @Test - public void testLoginLogout() throws Exception { + void testLoginLogout() throws Exception { setClientCertificateHash(CertificateSamples.SAMPLE_CERT_HASH); assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); assertThatLogoutSucceeds(); } @Test - public void testLogin_wrongPasswordFails() throws Exception { + void testLogin_wrongPasswordFails() throws Exception { setClientCertificateHash(CertificateSamples.SAMPLE_CERT_HASH); // For TLS login, we also check the epp xml password. assertThatLogin("NewRegistrar", "incorrect") @@ -74,7 +71,7 @@ public class EppLoginTlsTest extends EppTestCase { } @Test - public void testMultiLogin() throws Exception { + void testMultiLogin() throws Exception { setClientCertificateHash(CertificateSamples.SAMPLE_CERT_HASH); assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); assertThatLogoutSucceeds(); @@ -88,7 +85,7 @@ public class EppLoginTlsTest extends EppTestCase { } @Test - public void testNonAuthedLogin_fails() throws Exception { + void testNonAuthedLogin_fails() throws Exception { setClientCertificateHash(CertificateSamples.SAMPLE_CERT_HASH); assertThatLogin("TheRegistrar", "password2") .hasResponse( @@ -97,9 +94,8 @@ public class EppLoginTlsTest extends EppTestCase { "CODE", "2200", "MSG", "Registrar certificate does not match stored certificate")); } - @Test - public void testBadCertificate_failsBadCertificate2200() throws Exception { + void testBadCertificate_failsBadCertificate2200() throws Exception { setClientCertificateHash("laffo"); assertThatLogin("NewRegistrar", "foo-BAR2") .hasResponse( @@ -109,7 +105,7 @@ public class EppLoginTlsTest extends EppTestCase { } @Test - public void testGfeDidntProvideClientCertificate_failsMissingCertificate2200() throws Exception { + void testGfeDidntProvideClientCertificate_failsMissingCertificate2200() throws Exception { setClientCertificateHash(""); assertThatLogin("NewRegistrar", "foo-BAR2") .hasResponse( @@ -118,7 +114,7 @@ public class EppLoginTlsTest extends EppTestCase { } @Test - public void testGoodPrimaryCertificate() throws Exception { + void testGoodPrimaryCertificate() throws Exception { setClientCertificateHash(CertificateSamples.SAMPLE_CERT_HASH); DateTime now = DateTime.now(UTC); persistResource( @@ -131,7 +127,7 @@ public class EppLoginTlsTest extends EppTestCase { } @Test - public void testGoodFailoverCertificate() throws Exception { + void testGoodFailoverCertificate() throws Exception { setClientCertificateHash(CertificateSamples.SAMPLE_CERT2_HASH); DateTime now = DateTime.now(UTC); persistResource( @@ -144,7 +140,7 @@ public class EppLoginTlsTest extends EppTestCase { } @Test - public void testMissingPrimaryCertificateButHasFailover_usesFailover() throws Exception { + void testMissingPrimaryCertificateButHasFailover_usesFailover() throws Exception { setClientCertificateHash(CertificateSamples.SAMPLE_CERT2_HASH); DateTime now = DateTime.now(UTC); persistResource( @@ -157,7 +153,7 @@ public class EppLoginTlsTest extends EppTestCase { } @Test - public void testRegistrarHasNoCertificatesOnFile_fails() throws Exception { + void testRegistrarHasNoCertificatesOnFile_fails() throws Exception { setClientCertificateHash("laffo"); DateTime now = DateTime.now(UTC); persistResource( diff --git a/core/src/test/java/google/registry/flows/EppTestCase.java b/core/src/test/java/google/registry/flows/EppTestCase.java index 96813485c..8fa2189b3 100644 --- a/core/src/test/java/google/registry/flows/EppTestCase.java +++ b/core/src/test/java/google/registry/flows/EppTestCase.java @@ -52,16 +52,15 @@ import java.util.Optional; import javax.annotation.Nullable; import org.joda.money.Money; import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Rule; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.extension.RegisterExtension; public class EppTestCase { private static final MediaType APPLICATION_EPP_XML_UTF8 = MediaType.create("application", "epp+xml").withCharset(UTF_8); - @Rule - public final InjectRule inject = new InjectRule(); + @RegisterExtension public final InjectRule inject = new InjectRule(); protected final FakeClock clock = new FakeClock(); @@ -70,8 +69,8 @@ public class EppTestCase { private EppMetric.Builder eppMetricBuilder; private boolean isSuperuser; - @Before - public void initTestCase() { + @BeforeEach + public void beforeEachEppTestCase() { // For transactional flows inject.setStaticField(Ofy.class, "clock", clock); } @@ -84,7 +83,7 @@ public class EppTestCase { * such as {@link EppLoginUserTest}, {@link EppLoginAdminUserTest} and {@link EppLoginTlsTest}. * Therefore, only those tests should call this method. */ - protected void setTransportCredentials(TransportCredentials credentials) { + void setTransportCredentials(TransportCredentials credentials) { this.credentials = credentials; } @@ -133,7 +132,7 @@ public class EppTestCase { return new CommandAsserter(inputFilename, inputSubstitutions); } - protected CommandAsserter assertThatLogin(String clientId, String password) { + CommandAsserter assertThatLogin(String clientId, String password) { return assertThatCommand("login.xml", ImmutableMap.of("CLID", clientId, "PW", password)); } @@ -202,12 +201,12 @@ public class EppTestCase { return result; } - protected EppMetric getRecordedEppMetric() { + EppMetric getRecordedEppMetric() { return eppMetricBuilder.build(); } /** Create the two administrative contacts and two hosts. */ - protected void createContactsAndHosts() throws Exception { + void createContactsAndHosts() throws Exception { DateTime createTime = DateTime.parse("2000-06-01T00:00:00Z"); createContacts(createTime); assertThatCommand("host_create.xml", ImmutableMap.of("HOSTNAME", "ns1.example.external")) @@ -239,7 +238,7 @@ public class EppTestCase { } /** Creates the domain fakesite.example with two nameservers on it. */ - protected void createFakesite() throws Exception { + void createFakesite() throws Exception { createContactsAndHosts(); assertThatCommand("domain_create_fakesite.xml") .atTime("2000-06-01T00:04:00Z") @@ -255,7 +254,7 @@ public class EppTestCase { } /** Creates ns3.fakesite.example as a host, then adds it to fakesite. */ - protected void createSubordinateHost() throws Exception { + void createSubordinateHost() throws Exception { // Add the fakesite nameserver (requires that domain is already created). assertThatCommand("host_create_fakesite.xml") .atTime("2000-06-06T00:01:00Z") @@ -290,8 +289,7 @@ public class EppTestCase { } /** Makes a one-time billing event corresponding to the given domain's renewal. */ - protected static BillingEvent.OneTime makeOneTimeRenewBillingEvent( - DomainBase domain, DateTime renewTime) { + static BillingEvent.OneTime makeOneTimeRenewBillingEvent(DomainBase domain, DateTime renewTime) { return new BillingEvent.OneTime.Builder() .setReason(Reason.RENEW) .setTargetId(domain.getDomainName()) @@ -305,14 +303,14 @@ public class EppTestCase { } /** Makes a recurring billing event corresponding to the given domain's creation. */ - protected static BillingEvent.Recurring makeRecurringCreateBillingEvent( + static BillingEvent.Recurring makeRecurringCreateBillingEvent( DomainBase domain, DateTime eventTime, DateTime endTime) { return makeRecurringBillingEvent( domain, getOnlyHistoryEntryOfType(domain, Type.DOMAIN_CREATE), eventTime, endTime); } /** Makes a recurring billing event corresponding to the given domain's renewal. */ - protected static BillingEvent.Recurring makeRecurringRenewBillingEvent( + static BillingEvent.Recurring makeRecurringRenewBillingEvent( DomainBase domain, DateTime eventTime, DateTime endTime) { return makeRecurringBillingEvent( domain, getOnlyHistoryEntryOfType(domain, Type.DOMAIN_RENEW), eventTime, endTime); @@ -333,7 +331,7 @@ public class EppTestCase { } /** Makes a cancellation billing event cancelling out the given domain create billing event. */ - protected static BillingEvent.Cancellation makeCancellationBillingEventForCreate( + static BillingEvent.Cancellation makeCancellationBillingEventForCreate( DomainBase domain, OneTime billingEventToCancel, DateTime createTime, DateTime deleteTime) { return new BillingEvent.Cancellation.Builder() .setTargetId(domain.getDomainName()) @@ -347,7 +345,7 @@ public class EppTestCase { } /** Makes a cancellation billing event cancelling out the given domain renew billing event. */ - protected static BillingEvent.Cancellation makeCancellationBillingEventForRenew( + static BillingEvent.Cancellation makeCancellationBillingEventForRenew( DomainBase domain, OneTime billingEventToCancel, DateTime renewTime, DateTime deleteTime) { return new BillingEvent.Cancellation.Builder() .setTargetId(domain.getDomainName()) @@ -369,7 +367,7 @@ public class EppTestCase { * This is necessary because the ID will be different even though all the rest of the fields are * the same. */ - protected static Key findKeyToActualOneTimeBillingEvent(OneTime expectedBillingEvent) { + private static Key findKeyToActualOneTimeBillingEvent(OneTime expectedBillingEvent) { Optional actualCreateBillingEvent = ofy() .load() diff --git a/core/src/test/java/google/registry/flows/EppTlsActionTest.java b/core/src/test/java/google/registry/flows/EppTlsActionTest.java index c9c469bca..af8e80359 100644 --- a/core/src/test/java/google/registry/flows/EppTlsActionTest.java +++ b/core/src/test/java/google/registry/flows/EppTlsActionTest.java @@ -23,19 +23,16 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import google.registry.testing.FakeHttpSession; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; /** Tests for {@link EppTlsAction}. */ -@RunWith(JUnit4.class) -public class EppTlsActionTest { +class EppTlsActionTest { private static final byte[] INPUT_XML_BYTES = "".getBytes(UTF_8); @Test - public void testPassesArgumentsThrough() { + void testPassesArgumentsThrough() { EppTlsAction action = new EppTlsAction(); action.inputXmlBytes = INPUT_XML_BYTES; action.tlsCredentials = mock(TlsCredentials.class); diff --git a/core/src/test/java/google/registry/flows/EppToolActionTest.java b/core/src/test/java/google/registry/flows/EppToolActionTest.java index f697b206e..9580a4333 100644 --- a/core/src/test/java/google/registry/flows/EppToolActionTest.java +++ b/core/src/test/java/google/registry/flows/EppToolActionTest.java @@ -21,14 +21,11 @@ import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; /** Tests for {@link EppToolAction}. */ -@RunWith(JUnit4.class) -public class EppToolActionTest { +class EppToolActionTest { private void doTest(boolean isDryRun, boolean isSuperuser) { EppToolAction action = new EppToolAction(); @@ -50,22 +47,22 @@ public class EppToolActionTest { } @Test - public void testDryRunAndSuperuser() { + void testDryRunAndSuperuser() { doTest(true, true); } @Test - public void testDryRun() { + void testDryRun() { doTest(true, false); } @Test - public void testSuperuser() { + void testSuperuser() { doTest(false, true); } @Test - public void testNeitherDryRunNorSuperuser() { + void testNeitherDryRunNorSuperuser() { doTest(false, false); } } diff --git a/core/src/test/java/google/registry/flows/EppXmlSanitizerTest.java b/core/src/test/java/google/registry/flows/EppXmlSanitizerTest.java index 30169b318..f360e2ecb 100644 --- a/core/src/test/java/google/registry/flows/EppXmlSanitizerTest.java +++ b/core/src/test/java/google/registry/flows/EppXmlSanitizerTest.java @@ -24,25 +24,22 @@ import static java.nio.charset.StandardCharsets.UTF_8; import com.google.common.collect.ImmutableMap; import google.registry.testing.EppLoader; import java.util.Base64; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link EppXmlSanitizer}. */ -@RunWith(JUnit4.class) -public class EppXmlSanitizerTest { +class EppXmlSanitizerTest { private static final String UTF8_HEADER = ""; @Test - public void testSanitize_noSensitiveData_noop() throws Exception { + void testSanitize_noSensitiveData_noop() throws Exception { byte[] inputXmlBytes = loadBytes(getClass(), "host_create.xml").read(); String expectedXml = UTF8_HEADER + new String(inputXmlBytes, UTF_8); assertXmlEqualsIgnoreHeader(expectedXml, sanitizeEppXml(inputXmlBytes)); } @Test - public void testSanitize_loginPasswords_sanitized() throws Exception { + void testSanitize_loginPasswords_sanitized() throws Exception { String inputXml = new EppLoader( this, @@ -60,7 +57,7 @@ public class EppXmlSanitizerTest { } @Test - public void testSanitize_loginPasswordTagWrongCase_sanitized() throws Exception { + void testSanitize_loginPasswordTagWrongCase_sanitized() throws Exception { String inputXml = new EppLoader( this, "login_wrong_case.xml", ImmutableMap.of("PW", "oldpass", "NEWPW", "newPw")) @@ -76,7 +73,7 @@ public class EppXmlSanitizerTest { } @Test - public void testSanitize_contactAuthInfo_sanitized() throws Exception { + void testSanitize_contactAuthInfo_sanitized() throws Exception { byte[] inputXmlBytes = loadBytes(getClass(), "contact_info.xml").read(); String expectedXml = UTF8_HEADER @@ -85,7 +82,7 @@ public class EppXmlSanitizerTest { } @Test - public void testSanitize_contactCreateResponseAuthInfo_sanitized() throws Exception { + void testSanitize_contactCreateResponseAuthInfo_sanitized() throws Exception { byte[] inputXmlBytes = loadBytes(getClass(), "contact_info_from_create_response.xml").read(); String expectedXml = UTF8_HEADER @@ -96,32 +93,32 @@ public class EppXmlSanitizerTest { } @Test - public void testSanitize_emptyElement_transformedToLongForm() throws Exception { + void testSanitize_emptyElement_transformedToLongForm() throws Exception { byte[] inputXmlBytes = "".getBytes(UTF_8); assertXmlEqualsIgnoreHeader("", sanitizeEppXml(inputXmlBytes)); } @Test - public void testSanitize_invalidXML_throws() { + void testSanitize_invalidXML_throws() { byte[] inputXmlBytes = "".getBytes(UTF_8); assertThat(sanitizeEppXml(inputXmlBytes)) .isEqualTo(Base64.getMimeEncoder().encodeToString(inputXmlBytes)); } @Test - public void testSanitize_unicode_hasCorrectCharCount() throws Exception { + void testSanitize_unicode_hasCorrectCharCount() throws Exception { byte[] inputXmlBytes = "\u007F\u4E43x".getBytes(UTF_8); assertXmlEqualsIgnoreHeader("C**", sanitizeEppXml(inputXmlBytes)); } @Test - public void testSanitize_emptyString_encodedToBase64() { + void testSanitize_emptyString_encodedToBase64() { byte[] inputXmlBytes = "".getBytes(UTF_8); assertThat(sanitizeEppXml(inputXmlBytes)).isEqualTo(""); } @Test - public void testSanitize_utf16_encodingPreserved() { + void testSanitize_utf16_encodingPreserved() { // Test data should specify an endian-specific UTF-16 scheme for easy assertion. If 'UTF-16' is // used, the XMLEventReader in sanitizer may resolve it to an endian-specific one. String inputXml = "

\u03bc

\n"; diff --git a/core/src/test/java/google/registry/flows/EppXxeAttackTest.java b/core/src/test/java/google/registry/flows/EppXxeAttackTest.java index d28d69dcd..cf790c7ea 100644 --- a/core/src/test/java/google/registry/flows/EppXxeAttackTest.java +++ b/core/src/test/java/google/registry/flows/EppXxeAttackTest.java @@ -16,20 +16,17 @@ package google.registry.flows; import com.google.common.collect.ImmutableMap; import google.registry.testing.AppEngineRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Tests for XXE attacks. */ -@RunWith(JUnit4.class) -public class EppXxeAttackTest extends EppTestCase { +class EppXxeAttackTest extends EppTestCase { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @Test - public void testRemoteXmlExternalEntity() throws Exception { + void testRemoteXmlExternalEntity() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); assertThatCommand("contact_create_remote_xxe.xml") .hasResponse( @@ -42,7 +39,7 @@ public class EppXxeAttackTest extends EppTestCase { } @Test - public void testLocalXmlExtrernalEntity() throws Exception { + void testLocalXmlExtrernalEntity() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); assertThatCommand("contact_create_local_xxe.xml") .hasResponse( @@ -55,7 +52,7 @@ public class EppXxeAttackTest extends EppTestCase { } @Test - public void testBillionLaughsAttack() throws Exception { + void testBillionLaughsAttack() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); assertThatCommand("contact_create_billion_laughs.xml") .hasResponse( diff --git a/core/src/test/java/google/registry/flows/ExtensionManagerTest.java b/core/src/test/java/google/registry/flows/ExtensionManagerTest.java index dcd4a175b..fc6ed51a2 100644 --- a/core/src/test/java/google/registry/flows/ExtensionManagerTest.java +++ b/core/src/test/java/google/registry/flows/ExtensionManagerTest.java @@ -38,20 +38,17 @@ import google.registry.model.eppinput.EppInput.CommandExtension; import google.registry.testing.AppEngineRule; import google.registry.util.TypeUtils; import java.util.logging.LogRecord; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link ExtensionManager}. */ -@RunWith(JUnit4.class) -public class ExtensionManagerTest { +class ExtensionManagerTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @Test - public void testDuplicateExtensionsForbidden() { + void testDuplicateExtensionsForbidden() { ExtensionManager manager = new TestInstanceBuilder() .setEppRequestSource(EppRequestSource.TOOL) @@ -66,7 +63,7 @@ public class ExtensionManagerTest { } @Test - public void testUndeclaredExtensionsLogged() throws Exception { + void testUndeclaredExtensionsLogged() throws Exception { TestLogHandler handler = new TestLogHandler(); LoggerConfig.getConfig(ExtensionManager.class).addHandler(handler); ExtensionManager manager = @@ -88,7 +85,7 @@ public class ExtensionManagerTest { } @Test - public void testBlacklistedExtensions_forbiddenWhenUndeclared() { + void testBlacklistedExtensions_forbiddenWhenUndeclared() { ExtensionManager manager = new TestInstanceBuilder() .setEppRequestSource(EppRequestSource.TOOL) @@ -102,7 +99,7 @@ public class ExtensionManagerTest { } @Test - public void testBlacklistedExtensions_allowedWhenDeclared() throws Exception { + void testBlacklistedExtensions_allowedWhenDeclared() throws Exception { ExtensionManager manager = new TestInstanceBuilder() .setEppRequestSource(EppRequestSource.TOOL) @@ -114,7 +111,7 @@ public class ExtensionManagerTest { } @Test - public void testMetadataExtension_allowedForToolSource() throws Exception { + void testMetadataExtension_allowedForToolSource() throws Exception { ExtensionManager manager = new TestInstanceBuilder() .setEppRequestSource(EppRequestSource.TOOL) @@ -126,7 +123,7 @@ public class ExtensionManagerTest { } @Test - public void testMetadataExtension_forbiddenWhenNotToolSource() { + void testMetadataExtension_forbiddenWhenNotToolSource() { ExtensionManager manager = new TestInstanceBuilder() .setEppRequestSource(EppRequestSource.CONSOLE) @@ -139,7 +136,7 @@ public class ExtensionManagerTest { } @Test - public void testSuperuserExtension_allowedForToolSource() throws Exception { + void testSuperuserExtension_allowedForToolSource() throws Exception { ExtensionManager manager = new TestInstanceBuilder() .setEppRequestSource(EppRequestSource.TOOL) @@ -152,7 +149,7 @@ public class ExtensionManagerTest { } @Test - public void testSuperuserExtension_forbiddenWhenNotSuperuser() { + void testSuperuserExtension_forbiddenWhenNotSuperuser() { ExtensionManager manager = new TestInstanceBuilder() .setEppRequestSource(EppRequestSource.TOOL) @@ -167,7 +164,7 @@ public class ExtensionManagerTest { } @Test - public void testSuperuserExtension_forbiddenWhenNotToolSource() { + void testSuperuserExtension_forbiddenWhenNotToolSource() { ExtensionManager manager = new TestInstanceBuilder() .setEppRequestSource(EppRequestSource.CONSOLE) @@ -182,7 +179,7 @@ public class ExtensionManagerTest { } @Test - public void testUnimplementedExtensionsForbidden() { + void testUnimplementedExtensionsForbidden() { ExtensionManager manager = new TestInstanceBuilder() .setEppRequestSource(EppRequestSource.TOOL) diff --git a/core/src/test/java/google/registry/flows/FlowReporterTest.java b/core/src/test/java/google/registry/flows/FlowReporterTest.java index 43b7fb90f..a1d866b68 100644 --- a/core/src/test/java/google/registry/flows/FlowReporterTest.java +++ b/core/src/test/java/google/registry/flows/FlowReporterTest.java @@ -32,14 +32,11 @@ import google.registry.model.reporting.IcannReportingTypes.ActivityReportField; import java.util.Map; import java.util.Optional; import org.json.simple.JSONValue; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** Unit tests for {@link FlowReporter}. */ -@RunWith(JUnit4.class) -public class FlowReporterTest { +class FlowReporterTest { static class TestCommandFlow implements Flow { @Override @@ -59,8 +56,8 @@ public class FlowReporterTest { private final FlowReporter flowReporter = new FlowReporter(); private final TestLogHandler handler = new TestLogHandler(); - @Before - public void before() { + @BeforeEach + void beforeEach() { LoggerConfig.getConfig(FlowReporter.class).addHandler(handler); flowReporter.trid = Trid.create("client-123", "server-456"); flowReporter.clientId = "TheRegistrar"; @@ -74,7 +71,7 @@ public class FlowReporterTest { } @Test - public void testRecordToLogs_metadata_basic() throws Exception { + void testRecordToLogs_metadata_basic() throws Exception { when(flowReporter.eppInput.isDomainType()).thenReturn(true); when(flowReporter.eppInput.getResourceType()).thenReturn(Optional.of("domain")); flowReporter.recordToLogs(); @@ -93,7 +90,7 @@ public class FlowReporterTest { } @Test - public void testRecordToLogs_metadata_withReportingSpec() throws Exception { + void testRecordToLogs_metadata_withReportingSpec() throws Exception { flowReporter.flowClass = TestReportingSpecCommandFlow.class; flowReporter.recordToLogs(); Map json = @@ -103,7 +100,7 @@ public class FlowReporterTest { } @Test - public void testRecordToLogs_metadata_noClientId() throws Exception { + void testRecordToLogs_metadata_noClientId() throws Exception { flowReporter.clientId = ""; flowReporter.recordToLogs(); Map json = @@ -112,7 +109,7 @@ public class FlowReporterTest { } @Test - public void testRecordToLogs_metadata_notResourceFlow_noResourceTypeOrTld() throws Exception { + void testRecordToLogs_metadata_notResourceFlow_noResourceTypeOrTld() throws Exception { when(flowReporter.eppInput.isDomainType()).thenReturn(false); when(flowReporter.eppInput.getResourceType()).thenReturn(Optional.empty()); flowReporter.recordToLogs(); @@ -123,9 +120,8 @@ public class FlowReporterTest { assertThat(json).containsEntry("tlds", ImmutableList.of()); } - @Test - public void testRecordToLogs_metadata_notDomainFlow_noTld() throws Exception { + void testRecordToLogs_metadata_notDomainFlow_noTld() throws Exception { when(flowReporter.eppInput.isDomainType()).thenReturn(false); when(flowReporter.eppInput.getResourceType()).thenReturn(Optional.of("contact")); flowReporter.recordToLogs(); @@ -137,7 +133,7 @@ public class FlowReporterTest { } @Test - public void testRecordToLogs_metadata_multipartDomainName_multipartTld() throws Exception { + void testRecordToLogs_metadata_multipartDomainName_multipartTld() throws Exception { when(flowReporter.eppInput.isDomainType()).thenReturn(true); when(flowReporter.eppInput.getResourceType()).thenReturn(Optional.of("domain")); when(flowReporter.eppInput.getSingleTargetId()).thenReturn(Optional.of("target.co.uk")); @@ -152,7 +148,7 @@ public class FlowReporterTest { } @Test - public void testRecordToLogs_metadata_multipleTargetIds_uniqueTldSet() throws Exception { + void testRecordToLogs_metadata_multipleTargetIds_uniqueTldSet() throws Exception { when(flowReporter.eppInput.isDomainType()).thenReturn(true); when(flowReporter.eppInput.getSingleTargetId()).thenReturn(Optional.empty()); when(flowReporter.eppInput.getTargetIds()) @@ -168,7 +164,7 @@ public class FlowReporterTest { } @Test - public void testRecordToLogs_metadata_uppercaseDomainName_lowercaseTld() throws Exception { + void testRecordToLogs_metadata_uppercaseDomainName_lowercaseTld() throws Exception { when(flowReporter.eppInput.isDomainType()).thenReturn(true); when(flowReporter.eppInput.getSingleTargetId()).thenReturn(Optional.of("TARGET.FOO")); when(flowReporter.eppInput.getTargetIds()).thenReturn(ImmutableList.of("TARGET.FOO")); @@ -182,7 +178,7 @@ public class FlowReporterTest { } @Test - public void testRecordToLogs_metadata_invalidDomainName_stillGuessesTld() throws Exception { + void testRecordToLogs_metadata_invalidDomainName_stillGuessesTld() throws Exception { when(flowReporter.eppInput.isDomainType()).thenReturn(true); when(flowReporter.eppInput.getSingleTargetId()).thenReturn(Optional.of("")); when(flowReporter.eppInput.getTargetIds()).thenReturn(ImmutableList.of("")); @@ -196,7 +192,7 @@ public class FlowReporterTest { } @Test - public void testRecordToLogs_metadata_domainWithoutPeriod_noTld() throws Exception { + void testRecordToLogs_metadata_domainWithoutPeriod_noTld() throws Exception { when(flowReporter.eppInput.isDomainType()).thenReturn(true); when(flowReporter.eppInput.getSingleTargetId()).thenReturn(Optional.of("target,foo")); when(flowReporter.eppInput.getTargetIds()).thenReturn(ImmutableList.of("target,foo")); diff --git a/core/src/test/java/google/registry/flows/FlowRunnerTest.java b/core/src/test/java/google/registry/flows/FlowRunnerTest.java index 52bfd6871..1c4bc5ba8 100644 --- a/core/src/test/java/google/registry/flows/FlowRunnerTest.java +++ b/core/src/test/java/google/registry/flows/FlowRunnerTest.java @@ -38,19 +38,15 @@ import google.registry.testing.FakeClock; import google.registry.testing.FakeHttpSession; import java.util.List; import java.util.Optional; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.mockito.Mockito; /** Unit tests for {@link FlowRunner}. */ -@RunWith(JUnit4.class) -public class FlowRunnerTest { +class FlowRunnerTest { - @Rule - public final AppEngineRule appEngineRule = new AppEngineRule.Builder().build(); + @RegisterExtension final AppEngineRule appEngineRule = new AppEngineRule.Builder().build(); private final FlowRunner flowRunner = new FlowRunner(); private final EppMetric.Builder eppMetricBuilder = EppMetric.builderForRequest(new FakeClock()); @@ -64,8 +60,8 @@ public class FlowRunnerTest { } } - @Before - public void before() { + @BeforeEach + void beforeEach() { LoggerConfig.getConfig(FlowRunner.class).addHandler(handler); flowRunner.clientId = "TheRegistrar"; flowRunner.credentials = new PasswordOnlyTransportCredentials(); @@ -83,33 +79,33 @@ public class FlowRunnerTest { } @Test - public void testRun_nonTransactionalCommand_setsCommandNameOnMetric() throws Exception { + void testRun_nonTransactionalCommand_setsCommandNameOnMetric() throws Exception { flowRunner.isTransactional = true; flowRunner.run(eppMetricBuilder); assertThat(eppMetricBuilder.build().getCommandName()).hasValue("TestCommand"); } @Test - public void testRun_transactionalCommand_setsCommandNameOnMetric() throws Exception { + void testRun_transactionalCommand_setsCommandNameOnMetric() throws Exception { flowRunner.run(eppMetricBuilder); assertThat(eppMetricBuilder.build().getCommandName()).hasValue("TestCommand"); } @Test - public void testRun_callsFlowReporterOnce() throws Exception { + void testRun_callsFlowReporterOnce() throws Exception { flowRunner.run(eppMetricBuilder); verify(flowRunner.flowReporter).recordToLogs(); } @Test - public void testRun_dryRun_doesNotCallFlowReporter() throws Exception { + void testRun_dryRun_doesNotCallFlowReporter() throws Exception { flowRunner.isDryRun = true; flowRunner.run(eppMetricBuilder); verify(flowRunner.flowReporter, never()).recordToLogs(); } @Test - public void testRun_loggingStatement_basic() throws Exception { + void testRun_loggingStatement_basic() throws Exception { flowRunner.run(eppMetricBuilder); assertThat(Splitter.on("\n\t").split(findFirstLogMessageByPrefix(handler, "EPP Command\n\t"))) .containsExactly( @@ -128,7 +124,7 @@ public class FlowRunnerTest { } @Test - public void testRun_loggingStatement_httpSessionMetadata() throws Exception { + void testRun_loggingStatement_httpSessionMetadata() throws Exception { flowRunner.sessionMetadata = new HttpSessionMetadata(new FakeHttpSession()); flowRunner.sessionMetadata.setClientId("TheRegistrar"); flowRunner.run(eppMetricBuilder); @@ -139,7 +135,7 @@ public class FlowRunnerTest { } @Test - public void testRun_loggingStatement_tlsCredentials() throws Exception { + void testRun_loggingStatement_tlsCredentials() throws Exception { flowRunner.credentials = new TlsCredentials(true, "abc123def", Optional.of("127.0.0.1")); flowRunner.run(eppMetricBuilder); assertThat(Splitter.on("\n\t").split(findFirstLogMessageByPrefix(handler, "EPP Command\n\t"))) @@ -147,7 +143,7 @@ public class FlowRunnerTest { } @Test - public void testRun_loggingStatement_dryRun() throws Exception { + void testRun_loggingStatement_dryRun() throws Exception { flowRunner.isDryRun = true; flowRunner.run(eppMetricBuilder); assertThat(Splitter.on("\n\t").split(findFirstLogMessageByPrefix(handler, "EPP Command\n\t"))) @@ -155,7 +151,7 @@ public class FlowRunnerTest { } @Test - public void testRun_loggingStatement_superuser() throws Exception { + void testRun_loggingStatement_superuser() throws Exception { flowRunner.isSuperuser = true; flowRunner.run(eppMetricBuilder); assertThat(Splitter.on("\n\t").split(findFirstLogMessageByPrefix(handler, "EPP Command\n\t"))) @@ -163,7 +159,7 @@ public class FlowRunnerTest { } @Test - public void testRun_loggingStatement_complexEppInput() throws Exception { + void testRun_loggingStatement_complexEppInput() throws Exception { String domainCreateXml = loadFile(getClass(), "domain_create_prettyprinted.xml"); String sanitizedDomainCreateXml = domainCreateXml.replace("2fooBAR", "*******"); flowRunner.inputXmlBytes = domainCreateXml.getBytes(UTF_8); diff --git a/core/src/test/java/google/registry/flows/FlowTestCase.java b/core/src/test/java/google/registry/flows/FlowTestCase.java index 4e6776e9c..8d0932448 100644 --- a/core/src/test/java/google/registry/flows/FlowTestCase.java +++ b/core/src/test/java/google/registry/flows/FlowTestCase.java @@ -73,16 +73,22 @@ import org.junit.jupiter.api.extension.RegisterExtension; public abstract class FlowTestCase { /** Whether to actually write to Datastore or just simulate. */ - public enum CommitMode { LIVE, DRY_RUN } + public enum CommitMode { + LIVE, + DRY_RUN + } /** Whether to run in normal or superuser mode. */ - public enum UserPrivileges { NORMAL, SUPERUSER } + public enum UserPrivileges { + NORMAL, + SUPERUSER + } @RegisterExtension - public final AppEngineRule appEngine = + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); - @RegisterExtension public final InjectRule inject = new InjectRule(); + @RegisterExtension final InjectRule inject = new InjectRule(); protected EppLoader eppLoader; protected SessionMetadata sessionMetadata; @@ -94,7 +100,7 @@ public abstract class FlowTestCase { private EppMetric.Builder eppMetricBuilder; @BeforeEach - public void init() { + public void beforeEachFlowTestCase() { sessionMetadata = new HttpSessionMetadata(new FakeHttpSession()); sessionMetadata.setClientId("TheRegistrar"); sessionMetadata.setServiceExtensionUris(ProtocolDefinition.getVisibleServiceExtensionUris()); diff --git a/core/src/test/java/google/registry/flows/ResourceCheckFlowTestCase.java b/core/src/test/java/google/registry/flows/ResourceCheckFlowTestCase.java index a40341b7a..1e6d8ba39 100644 --- a/core/src/test/java/google/registry/flows/ResourceCheckFlowTestCase.java +++ b/core/src/test/java/google/registry/flows/ResourceCheckFlowTestCase.java @@ -26,7 +26,7 @@ import google.registry.model.eppoutput.CheckData; * @param the flow type * @param the resource type */ -public class ResourceCheckFlowTestCase +public abstract class ResourceCheckFlowTestCase extends ResourceFlowTestCase { protected void doCheckTest(CheckData.Check... expected) throws Exception { diff --git a/core/src/test/java/google/registry/flows/TlsCredentialsTest.java b/core/src/test/java/google/registry/flows/TlsCredentialsTest.java index 93abe41ca..1b52868d7 100644 --- a/core/src/test/java/google/registry/flows/TlsCredentialsTest.java +++ b/core/src/test/java/google/registry/flows/TlsCredentialsTest.java @@ -28,27 +28,24 @@ import google.registry.testing.AppEngineRule; import java.util.Optional; import javax.servlet.http.HttpServletRequest; import org.joda.time.DateTime; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link TlsCredentials}. */ -@RunWith(JUnit4.class) -public final class TlsCredentialsTest { +final class TlsCredentialsTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @Test - public void testProvideClientCertificateHash() { + void testProvideClientCertificateHash() { HttpServletRequest req = mock(HttpServletRequest.class); when(req.getHeader("X-SSL-Certificate")).thenReturn("data"); assertThat(TlsCredentials.EppTlsModule.provideClientCertificateHash(req)).isEqualTo("data"); } @Test - public void testProvideClientCertificateHash_missing() { + void testProvideClientCertificateHash_missing() { HttpServletRequest req = mock(HttpServletRequest.class); BadRequestException thrown = assertThrows( @@ -58,7 +55,7 @@ public final class TlsCredentialsTest { } @Test - public void test_validateCertificate_canBeConfiguredToBypassCertHashes() throws Exception { + void test_validateCertificate_canBeConfiguredToBypassCertHashes() throws Exception { TlsCredentials tls = new TlsCredentials(false, "certHash", Optional.of("192.168.1.1")); persistResource( loadRegistrar("TheRegistrar") diff --git a/core/src/test/java/google/registry/flows/contact/ContactTransferFlowTestCase.java b/core/src/test/java/google/registry/flows/contact/ContactTransferFlowTestCase.java index cd4f7446b..73c7466e6 100644 --- a/core/src/test/java/google/registry/flows/contact/ContactTransferFlowTestCase.java +++ b/core/src/test/java/google/registry/flows/contact/ContactTransferFlowTestCase.java @@ -36,8 +36,8 @@ import org.junit.jupiter.api.BeforeEach; * @param the flow type * @param the resource type */ -public class ContactTransferFlowTestCase - extends ResourceFlowTestCase{ +abstract class ContactTransferFlowTestCase + extends ResourceFlowTestCase { // Transfer is requested on the 6th and expires on the 11th. // The "now" of this flow is on the 9th, 3 days in. @@ -55,7 +55,7 @@ public class ContactTransferFlowTestCase } @BeforeEach - void initContactTest() { + void beforeEachContactTransferFlowTestCase() { // Registrar ClientZ is used in tests that need another registrar that definitely doesn't own // the resources in question. persistResource( diff --git a/core/src/test/java/google/registry/flows/domain/DomainTransferFlowTestCase.java b/core/src/test/java/google/registry/flows/domain/DomainTransferFlowTestCase.java index 0994cc3f0..28f7e0903 100644 --- a/core/src/test/java/google/registry/flows/domain/DomainTransferFlowTestCase.java +++ b/core/src/test/java/google/registry/flows/domain/DomainTransferFlowTestCase.java @@ -54,8 +54,8 @@ import org.junit.jupiter.api.BeforeEach; * @param the flow type * @param the resource type */ -public class DomainTransferFlowTestCase - extends ResourceFlowTestCase{ +abstract class DomainTransferFlowTestCase + extends ResourceFlowTestCase { // Transfer is requested on the 6th and expires on the 11th. // The "now" of this flow is on the 9th, 3 days in. @@ -81,7 +81,7 @@ public class DomainTransferFlowTestCase } @BeforeEach - void makeClientZ() { + void beforeEachDomainTransferFlowTestCase() { // Registrar ClientZ is used in tests that need another registrar that definitely doesn't own // the resources in question. persistResource( diff --git a/core/src/test/java/google/registry/flows/domain/token/AllocationTokenFlowUtilsTest.java b/core/src/test/java/google/registry/flows/domain/token/AllocationTokenFlowUtilsTest.java index f5543ef26..8eb73afd3 100644 --- a/core/src/test/java/google/registry/flows/domain/token/AllocationTokenFlowUtilsTest.java +++ b/core/src/test/java/google/registry/flows/domain/token/AllocationTokenFlowUtilsTest.java @@ -49,29 +49,26 @@ import google.registry.model.registry.Registry; import google.registry.model.reporting.HistoryEntry; import google.registry.testing.AppEngineRule; import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link AllocationTokenFlowUtils}. */ -@RunWith(JUnit4.class) -public class AllocationTokenFlowUtilsTest { +class AllocationTokenFlowUtilsTest { private final AllocationTokenFlowUtils flowUtils = new AllocationTokenFlowUtils(new AllocationTokenCustomLogic()); - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); - @Before - public void initTest() { + @BeforeEach + void beforeEach() { createTld("tld"); } @Test - public void test_validateToken_successfullyVerifiesValidToken() throws Exception { + void test_validateToken_successfullyVerifiesValidToken() throws Exception { AllocationToken token = persistResource( new AllocationToken.Builder().setToken("tokeN").setTokenType(SINGLE_USE).build()); @@ -86,12 +83,12 @@ public class AllocationTokenFlowUtilsTest { } @Test - public void test_validateToken_failsOnNonexistentToken() { + void test_validateToken_failsOnNonexistentToken() { assertValidateThrowsEppException(InvalidAllocationTokenException.class); } @Test - public void test_validateToken_failsOnNullToken() { + void test_validateToken_failsOnNullToken() { assertAboutEppExceptions() .that( assertThrows( @@ -107,7 +104,7 @@ public class AllocationTokenFlowUtilsTest { } @Test - public void test_validateToken_callsCustomLogic() { + void test_validateToken_callsCustomLogic() { AllocationTokenFlowUtils failingFlowUtils = new AllocationTokenFlowUtils(new FailingAllocationTokenCustomLogic()); persistResource( @@ -126,7 +123,7 @@ public class AllocationTokenFlowUtilsTest { } @Test - public void test_validateToken_invalidForClientId() { + void test_validateToken_invalidForClientId() { persistResource( createOneMonthPromoTokenBuilder(DateTime.now(UTC).minusDays(1)) .setAllowedClientIds(ImmutableSet.of("NewRegistrar")) @@ -135,7 +132,7 @@ public class AllocationTokenFlowUtilsTest { } @Test - public void test_validateToken_invalidForTld() { + void test_validateToken_invalidForTld() { persistResource( createOneMonthPromoTokenBuilder(DateTime.now(UTC).minusDays(1)) .setAllowedTlds(ImmutableSet.of("nottld")) @@ -144,19 +141,19 @@ public class AllocationTokenFlowUtilsTest { } @Test - public void test_validateToken_beforePromoStart() { + void test_validateToken_beforePromoStart() { persistResource(createOneMonthPromoTokenBuilder(DateTime.now(UTC).plusDays(1)).build()); assertValidateThrowsEppException(AllocationTokenNotInPromotionException.class); } @Test - public void test_validateToken_afterPromoEnd() { + void test_validateToken_afterPromoEnd() { persistResource(createOneMonthPromoTokenBuilder(DateTime.now(UTC).minusMonths(2)).build()); assertValidateThrowsEppException(AllocationTokenNotInPromotionException.class); } @Test - public void test_validateToken_promoCancelled() { + void test_validateToken_promoCancelled() { // the promo would be valid but it was cancelled 12 hours ago persistResource( createOneMonthPromoTokenBuilder(DateTime.now(UTC).minusDays(1)) @@ -171,7 +168,7 @@ public class AllocationTokenFlowUtilsTest { } @Test - public void test_checkDomainsWithToken_successfullyVerifiesValidToken() { + void test_checkDomainsWithToken_successfullyVerifiesValidToken() { persistResource( new AllocationToken.Builder().setToken("tokeN").setTokenType(SINGLE_USE).build()); assertThat( @@ -190,7 +187,7 @@ public class AllocationTokenFlowUtilsTest { } @Test - public void test_checkDomainsWithToken_showsFailureMessageForRedeemedToken() { + void test_checkDomainsWithToken_showsFailureMessageForRedeemedToken() { persistResource( new AllocationToken.Builder() .setToken("tokeN") @@ -216,7 +213,7 @@ public class AllocationTokenFlowUtilsTest { } @Test - public void test_checkDomainsWithToken_callsCustomLogic() { + void test_checkDomainsWithToken_callsCustomLogic() { persistResource( new AllocationToken.Builder().setToken("tokeN").setTokenType(SINGLE_USE).build()); AllocationTokenFlowUtils failingFlowUtils = @@ -235,7 +232,7 @@ public class AllocationTokenFlowUtilsTest { } @Test - public void test_checkDomainsWithToken_resultsFromCustomLogicAreIntegrated() { + void test_checkDomainsWithToken_resultsFromCustomLogicAreIntegrated() { persistResource( new AllocationToken.Builder().setToken("tokeN").setTokenType(SINGLE_USE).build()); AllocationTokenFlowUtils customResultFlowUtils = diff --git a/core/src/test/java/google/registry/flows/host/HostFlowUtilsTest.java b/core/src/test/java/google/registry/flows/host/HostFlowUtilsTest.java index 681c702f0..8ff2c39c8 100644 --- a/core/src/test/java/google/registry/flows/host/HostFlowUtilsTest.java +++ b/core/src/test/java/google/registry/flows/host/HostFlowUtilsTest.java @@ -26,70 +26,66 @@ import google.registry.flows.host.HostFlowUtils.HostNameTooLongException; import google.registry.flows.host.HostFlowUtils.HostNameTooShallowException; import google.registry.flows.host.HostFlowUtils.InvalidHostNameException; import google.registry.testing.AppEngineRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link HostFlowUtils}. */ -@RunWith(JUnit4.class) -public class HostFlowUtilsTest { +class HostFlowUtilsTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @Test - public void test_validExternalHostName_validates() throws Exception { + void test_validExternalHostName_validates() throws Exception { assertThat(validateHostName("host.example.com").toString()).isEqualTo("host.example.com"); } @Test - public void test_validExternalHostNameOnRegistrySuffixList_validates() throws Exception { + void test_validExternalHostNameOnRegistrySuffixList_validates() throws Exception { assertThat(validateHostName("host.blogspot.com").toString()).isEqualTo("host.blogspot.com"); } @Test - public void test_validExternalHostNameOnRegistrySuffixList_multipartTLD_validates() - throws Exception { + void test_validExternalHostNameOnRegistrySuffixList_multipartTLD_validates() throws Exception { assertThat(validateHostName("ns1.host.co.uk").toString()).isEqualTo("ns1.host.co.uk"); } @Test - public void test_validExternalHostNameOnRegistrySuffixList_multipartTLD_tooShallow() { + void test_validExternalHostNameOnRegistrySuffixList_multipartTLD_tooShallow() { assertThrows( HostNameTooShallowException.class, () -> validateHostName("host.co.uk").toString()); } @Test - public void test_validateHostName_hostNameTooLong() { + void test_validateHostName_hostNameTooLong() { assertThrows( HostNameTooLongException.class, () -> validateHostName(Strings.repeat("na", 200) + ".wat.man")); } @Test - public void test_validateHostName_hostNameNotLowerCase() { + void test_validateHostName_hostNameNotLowerCase() { assertThrows(HostNameNotLowerCaseException.class, () -> validateHostName("NA.CAPS.TLD")); } @Test - public void test_validateHostName_hostNameNotPunyCoded() { + void test_validateHostName_hostNameNotPunyCoded() { assertThrows( HostNameNotPunyCodedException.class, () -> validateHostName("motörhead.death.metal")); } @Test - public void test_validateHostName_hostNameNotNormalized() { + void test_validateHostName_hostNameNotNormalized() { assertThrows(HostNameNotNormalizedException.class, () -> validateHostName("root.node.yeah.")); } @Test - public void test_validateHostName_hostNameHasLeadingHyphen() { + void test_validateHostName_hostNameHasLeadingHyphen() { assertThrows(InvalidHostNameException.class, () -> validateHostName("-giga.mega.tld")); } @Test - public void test_validateHostName_hostNameTooShallow() { + void test_validateHostName_hostNameTooShallow() { assertThrows(HostNameTooShallowException.class, () -> validateHostName("domain.tld")); } } diff --git a/core/src/test/java/google/registry/flows/session/LoginFlowTestCase.java b/core/src/test/java/google/registry/flows/session/LoginFlowTestCase.java index f95cefec1..29d01ee19 100644 --- a/core/src/test/java/google/registry/flows/session/LoginFlowTestCase.java +++ b/core/src/test/java/google/registry/flows/session/LoginFlowTestCase.java @@ -44,7 +44,7 @@ public abstract class LoginFlowTestCase extends FlowTestCase { private Registrar.Builder registrarBuilder; @BeforeEach - void initRegistrar() { + void beforeEachLoginFlowTestCase() { sessionMetadata.setClientId(null); // Don't implicitly log in (all other flows need to). registrar = loadRegistrar("NewRegistrar"); registrarBuilder = registrar.asBuilder(); diff --git a/core/src/test/java/google/registry/tools/EppLifecycleToolsTest.java b/core/src/test/java/google/registry/tools/EppLifecycleToolsTest.java index 3ef883c1e..4a247667e 100644 --- a/core/src/test/java/google/registry/tools/EppLifecycleToolsTest.java +++ b/core/src/test/java/google/registry/tools/EppLifecycleToolsTest.java @@ -32,27 +32,24 @@ import google.registry.util.Clock; import java.util.List; import org.joda.money.Money; import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Tests for tools that affect EPP lifecycle. */ -@RunWith(JUnit4.class) -public class EppLifecycleToolsTest extends EppTestCase { +class EppLifecycleToolsTest extends EppTestCase { - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); - @Before - public void initTld() { + @BeforeEach + void beforeEach() { createTlds("example", "tld"); } @Test - public void test_renewDomainThenUnrenew() throws Exception { + void test_renewDomainThenUnrenew() throws Exception { assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); createContacts(DateTime.parse("2000-06-01T00:00:00Z"));