diff --git a/config/presubmits.py b/config/presubmits.py index fbab0c2134a..3d827aabadc 100644 --- a/config/presubmits.py +++ b/config/presubmits.py @@ -93,20 +93,20 @@ def fails(self, file): PresubmitCheck( r".*\bSystem\.(out|err)\.print", "java", { "StackdriverDashboardBuilder.java", "/tools/", "/example/", - "RegistryTestServerMain.java", "TestServerRule.java", + "RegistryTestServerMain.java", "TestServerExtension.java", "FlowDocumentationTool.java" }): "System.(out|err).println is only allowed in tools/ packages. Please " "use a logger instead.", - # ObjectifyService.register is restricted to main/ or AppEngineRule. + # ObjectifyService.register is restricted to main/ or AppEngineExtension. PresubmitCheck( r".*\bObjectifyService\.register", "java", { "/build/", "/generated/", "node_modules/", "src/main/", - "AppEngineRule.java" + "AppEngineExtension.java" }): - "ObjectifyService.register is not allowed in tests. Please use " - "AppengineRule.register instead.", + "ObjectifyService.register(...) is not allowed in tests. Please use " + "AppEngineExtension.register(...) instead.", # PostgreSQLContainer instantiation must specify docker tag PresubmitCheck( diff --git a/core/build.gradle b/core/build.gradle index a089a2038f5..5b70bb773b5 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -315,6 +315,7 @@ dependencies { testCompile deps['org.junit.jupiter:junit-jupiter-engine'] testCompile deps['org.junit.jupiter:junit-jupiter-migrationsupport'] testCompile deps['org.junit.jupiter:junit-jupiter-params'] + testCompile deps['org.junit-pioneer:junit-pioneer'] testCompile deps['org.junit.platform:junit-platform-runner'] testCompile deps['org.junit.platform:junit-platform-suite-api'] testCompile deps['org.junit.vintage:junit-vintage-engine'] diff --git a/core/gradle/dependency-locks/testCompile.lockfile b/core/gradle/dependency-locks/testCompile.lockfile index 6d076354434..b641939626e 100644 --- a/core/gradle/dependency-locks/testCompile.lockfile +++ b/core/gradle/dependency-locks/testCompile.lockfile @@ -243,6 +243,7 @@ org.jboss:jandex:2.1.3.Final org.jetbrains:annotations:19.0.0 org.joda:joda-money:1.0.1 org.json:json:20160810 +org.junit-pioneer:junit-pioneer:0.7.0 org.junit.jupiter:junit-jupiter-api:5.6.2 org.junit.jupiter:junit-jupiter-engine:5.6.2 org.junit.jupiter:junit-jupiter-migrationsupport:5.6.2 diff --git a/core/gradle/dependency-locks/testCompileClasspath.lockfile b/core/gradle/dependency-locks/testCompileClasspath.lockfile index 73605a65b5f..ca24218ab75 100644 --- a/core/gradle/dependency-locks/testCompileClasspath.lockfile +++ b/core/gradle/dependency-locks/testCompileClasspath.lockfile @@ -241,6 +241,7 @@ org.jboss:jandex:2.1.3.Final org.jetbrains:annotations:19.0.0 org.joda:joda-money:1.0.1 org.json:json:20160810 +org.junit-pioneer:junit-pioneer:0.7.0 org.junit.jupiter:junit-jupiter-api:5.6.2 org.junit.jupiter:junit-jupiter-engine:5.6.2 org.junit.jupiter:junit-jupiter-migrationsupport:5.6.2 diff --git a/core/gradle/dependency-locks/testRuntime.lockfile b/core/gradle/dependency-locks/testRuntime.lockfile index 9fb8b3f1818..10a523e5305 100644 --- a/core/gradle/dependency-locks/testRuntime.lockfile +++ b/core/gradle/dependency-locks/testRuntime.lockfile @@ -246,6 +246,7 @@ org.jboss:jandex:2.1.3.Final org.jetbrains:annotations:19.0.0 org.joda:joda-money:1.0.1 org.json:json:20160810 +org.junit-pioneer:junit-pioneer:0.7.0 org.junit.jupiter:junit-jupiter-api:5.6.2 org.junit.jupiter:junit-jupiter-engine:5.6.2 org.junit.jupiter:junit-jupiter-migrationsupport:5.6.2 diff --git a/core/gradle/dependency-locks/testRuntimeClasspath.lockfile b/core/gradle/dependency-locks/testRuntimeClasspath.lockfile index 5168aae42ad..6fd63311de9 100644 --- a/core/gradle/dependency-locks/testRuntimeClasspath.lockfile +++ b/core/gradle/dependency-locks/testRuntimeClasspath.lockfile @@ -246,6 +246,7 @@ org.jboss:jandex:2.1.3.Final org.jetbrains:annotations:19.0.0 org.joda:joda-money:1.0.1 org.json:json:20160810 +org.junit-pioneer:junit-pioneer:0.7.0 org.junit.jupiter:junit-jupiter-api:5.6.2 org.junit.jupiter:junit-jupiter-engine:5.6.2 org.junit.jupiter:junit-jupiter-migrationsupport:5.6.2 diff --git a/core/src/nonprod/java/google/registry/tools/GenerateSqlSchemaCommand.java b/core/src/nonprod/java/google/registry/tools/GenerateSqlSchemaCommand.java index e65ca2cc24d..14c4403725d 100644 --- a/core/src/nonprod/java/google/registry/tools/GenerateSqlSchemaCommand.java +++ b/core/src/nonprod/java/google/registry/tools/GenerateSqlSchemaCommand.java @@ -36,6 +36,7 @@ */ @Parameters(separators = " =", commandDescription = "Generate PostgreSQL schema.") public class GenerateSqlSchemaCommand implements Command { + private static final String DB_NAME = "postgres"; private static final String DB_USERNAME = "postgres"; private static final String DB_PASSWORD = "domain-registry"; diff --git a/core/src/test/java/google/registry/backup/CommitLogCheckpointActionTest.java b/core/src/test/java/google/registry/backup/CommitLogCheckpointActionTest.java index 82378b3ff80..1920fc9d648 100644 --- a/core/src/test/java/google/registry/backup/CommitLogCheckpointActionTest.java +++ b/core/src/test/java/google/registry/backup/CommitLogCheckpointActionTest.java @@ -27,7 +27,7 @@ import com.google.common.collect.ImmutableMap; import google.registry.model.ofy.CommitLogCheckpoint; import google.registry.model.ofy.CommitLogCheckpointRoot; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.TaskQueueHelper.TaskMatcher; import google.registry.util.Retrier; @@ -43,8 +43,8 @@ public class CommitLogCheckpointActionTest { private static final String QUEUE_NAME = "export-commits"; @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); private CommitLogCheckpointStrategy strategy = mock(CommitLogCheckpointStrategy.class); diff --git a/core/src/test/java/google/registry/backup/CommitLogCheckpointStrategyTest.java b/core/src/test/java/google/registry/backup/CommitLogCheckpointStrategyTest.java index 64cc5dbb40e..ee812db54ca 100644 --- a/core/src/test/java/google/registry/backup/CommitLogCheckpointStrategyTest.java +++ b/core/src/test/java/google/registry/backup/CommitLogCheckpointStrategyTest.java @@ -31,7 +31,7 @@ import google.registry.model.registry.Registry; import google.registry.persistence.transaction.TransactionManager; import google.registry.schema.cursor.CursorDao; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import org.joda.time.DateTime; @@ -44,7 +44,8 @@ public class CommitLogCheckpointStrategyTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/backup/ExportCommitLogDiffActionTest.java b/core/src/test/java/google/registry/backup/ExportCommitLogDiffActionTest.java index 1fc3084685a..9b343135a0e 100644 --- a/core/src/test/java/google/registry/backup/ExportCommitLogDiffActionTest.java +++ b/core/src/test/java/google/registry/backup/ExportCommitLogDiffActionTest.java @@ -34,7 +34,7 @@ import google.registry.model.ofy.CommitLogCheckpoint; import google.registry.model.ofy.CommitLogManifest; import google.registry.model.ofy.CommitLogMutation; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.GcsTestingUtils; import google.registry.testing.TestObject; import java.util.List; @@ -47,8 +47,8 @@ public class ExportCommitLogDiffActionTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withOfyTestEntities(TestObject.class) .build(); diff --git a/core/src/test/java/google/registry/backup/GcsDiffFileListerTest.java b/core/src/test/java/google/registry/backup/GcsDiffFileListerTest.java index ccb4410350d..adb27af4bf3 100644 --- a/core/src/test/java/google/registry/backup/GcsDiffFileListerTest.java +++ b/core/src/test/java/google/registry/backup/GcsDiffFileListerTest.java @@ -34,7 +34,7 @@ import com.google.common.collect.Iterators; import com.google.common.flogger.LoggerConfig; import com.google.common.testing.TestLogHandler; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.io.IOException; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; @@ -59,7 +59,8 @@ public class GcsDiffFileListerTest { private final TestLogHandler logHandler = new TestLogHandler(); @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @BeforeEach void beforeEach() throws Exception { diff --git a/core/src/test/java/google/registry/backup/RestoreCommitLogsActionTest.java b/core/src/test/java/google/registry/backup/RestoreCommitLogsActionTest.java index 87df435b04b..fc3a2551756 100644 --- a/core/src/test/java/google/registry/backup/RestoreCommitLogsActionTest.java +++ b/core/src/test/java/google/registry/backup/RestoreCommitLogsActionTest.java @@ -42,7 +42,7 @@ import google.registry.model.ofy.CommitLogCheckpointRoot; import google.registry.model.ofy.CommitLogManifest; import google.registry.model.ofy.CommitLogMutation; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeSleeper; import google.registry.testing.TestObject; @@ -68,8 +68,8 @@ public class RestoreCommitLogsActionTest { private final GcsService gcsService = createGcsService(); @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withOfyTestEntities(TestObject.class) .build(); diff --git a/core/src/test/java/google/registry/batch/AsyncTaskEnqueuerTest.java b/core/src/test/java/google/registry/batch/AsyncTaskEnqueuerTest.java index a03c1c0a22a..d7bd102de06 100644 --- a/core/src/test/java/google/registry/batch/AsyncTaskEnqueuerTest.java +++ b/core/src/test/java/google/registry/batch/AsyncTaskEnqueuerTest.java @@ -39,7 +39,7 @@ import com.googlecode.objectify.Key; import google.registry.model.contact.ContactResource; import google.registry.schema.domain.RegistryLock; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeSleeper; import google.registry.testing.InjectRule; @@ -64,8 +64,8 @@ public class AsyncTaskEnqueuerTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/batch/RelockDomainActionTest.java b/core/src/test/java/google/registry/batch/RelockDomainActionTest.java index dd8f7470b82..8f058d87fbe 100644 --- a/core/src/test/java/google/registry/batch/RelockDomainActionTest.java +++ b/core/src/test/java/google/registry/batch/RelockDomainActionTest.java @@ -34,7 +34,7 @@ import google.registry.model.domain.DomainBase; import google.registry.model.host.HostResource; import google.registry.schema.domain.RegistryLock; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.DeterministicStringGenerator; import google.registry.testing.FakeClock; import google.registry.testing.FakeResponse; @@ -65,8 +65,8 @@ public class RelockDomainActionTest { mock(AppEngineServiceUtils.class), clock, Duration.ZERO)); @RegisterExtension - public final AppEngineRule appEngineRule = - AppEngineRule.builder() + public final AppEngineExtension appEngineRule = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withUserService(UserInfo.create(POC_ID, "12345")) .build(); diff --git a/core/src/test/java/google/registry/batch/ResaveEntityActionTest.java b/core/src/test/java/google/registry/batch/ResaveEntityActionTest.java index 717b019c65d..f26bc227878 100644 --- a/core/src/test/java/google/registry/batch/ResaveEntityActionTest.java +++ b/core/src/test/java/google/registry/batch/ResaveEntityActionTest.java @@ -42,7 +42,7 @@ import google.registry.model.eppcommon.StatusValue; import google.registry.model.ofy.Ofy; import google.registry.request.Response; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import google.registry.testing.TaskQueueHelper.TaskMatcher; @@ -63,8 +63,8 @@ public class ResaveEntityActionTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/beam/initsql/BackupTestStore.java b/core/src/test/java/google/registry/beam/initsql/BackupTestStore.java index be19740bf6b..2bee49cfeaf 100644 --- a/core/src/test/java/google/registry/beam/initsql/BackupTestStore.java +++ b/core/src/test/java/google/registry/beam/initsql/BackupTestStore.java @@ -26,7 +26,7 @@ import google.registry.backup.CommitLogExports; import google.registry.backup.VersionedEntity; import google.registry.model.ofy.CommitLogCheckpoint; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.tools.LevelDbFileBuilder; import java.io.File; @@ -53,7 +53,7 @@ class BackupTestStore implements AutoCloseable { DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss_SSS"); private final FakeClock fakeClock; - private AppEngineRule appEngine; + private AppEngineExtension appEngine; /** For fetching the persisted Datastore Entity directly. */ private DatastoreService datastoreService; @@ -62,7 +62,7 @@ class BackupTestStore implements AutoCloseable { BackupTestStore(FakeClock fakeClock) throws Exception { this.fakeClock = fakeClock; this.appEngine = - new AppEngineRule.Builder() + new AppEngineExtension.Builder() .withDatastore() .withoutCannedData() .withClock(fakeClock) diff --git a/core/src/test/java/google/registry/beam/initsql/DomainBaseUtilTest.java b/core/src/test/java/google/registry/beam/initsql/DomainBaseUtilTest.java index d4217f7e48d..a5b99f005f5 100644 --- a/core/src/test/java/google/registry/beam/initsql/DomainBaseUtilTest.java +++ b/core/src/test/java/google/registry/beam/initsql/DomainBaseUtilTest.java @@ -46,7 +46,7 @@ import google.registry.model.transfer.DomainTransferData; import google.registry.model.transfer.TransferStatus; import google.registry.persistence.VKey; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.DatastoreHelper; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; @@ -67,8 +67,8 @@ public class DomainBaseUtilTest { private Key domainKey; @RegisterExtension - AppEngineRule appEngineRule = - AppEngineRule.builder().withDatastore().withClock(fakeClock).build(); + AppEngineExtension appEngineRule = + AppEngineExtension.builder().withDatastore().withClock(fakeClock).build(); @RegisterExtension InjectRule injectRule = new InjectRule(); diff --git a/core/src/test/java/google/registry/beam/initsql/InitSqlPipelineTest.java b/core/src/test/java/google/registry/beam/initsql/InitSqlPipelineTest.java index f883f291da0..809f633d6a6 100644 --- a/core/src/test/java/google/registry/beam/initsql/InitSqlPipelineTest.java +++ b/core/src/test/java/google/registry/beam/initsql/InitSqlPipelineTest.java @@ -49,8 +49,8 @@ import google.registry.model.transfer.TransferStatus; import google.registry.persistence.VKey; import google.registry.persistence.transaction.JpaTestRules; -import google.registry.persistence.transaction.JpaTestRules.JpaIntegrationTestRule; -import google.registry.testing.AppEngineRule; +import google.registry.persistence.transaction.JpaTestRules.JpaIntegrationTestExtension; +import google.registry.testing.AppEngineExtension; import google.registry.testing.DatastoreEntityExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; @@ -95,7 +95,7 @@ class InitSqlPipelineTest { TestPipelineExtension.create().enableAbandonedNodeEnforcement(true); @RegisterExtension - final transient JpaIntegrationTestRule database = + final transient JpaIntegrationTestExtension database = new JpaTestRules.Builder().withClock(fakeClock).buildIntegrationTestRule(); // Must not be transient! @@ -124,8 +124,8 @@ public void beforeEach() throws Exception { exportRootDir = Files.createDirectory(tmpDir.resolve("exports")).toFile(); persistResource(newRegistry("com", "COM")); - registrar1 = persistResource(AppEngineRule.makeRegistrar1()); - registrar2 = persistResource(AppEngineRule.makeRegistrar2()); + registrar1 = persistResource(AppEngineExtension.makeRegistrar1()); + registrar2 = persistResource(AppEngineExtension.makeRegistrar2()); Key domainKey = Key.create(null, DomainBase.class, "4-COM"); hostResource = persistResource( diff --git a/core/src/test/java/google/registry/beam/initsql/WriteToSqlTest.java b/core/src/test/java/google/registry/beam/initsql/WriteToSqlTest.java index 038d340f26d..d83ef962798 100644 --- a/core/src/test/java/google/registry/beam/initsql/WriteToSqlTest.java +++ b/core/src/test/java/google/registry/beam/initsql/WriteToSqlTest.java @@ -27,8 +27,8 @@ import google.registry.model.ofy.Ofy; import google.registry.model.registrar.Registrar; import google.registry.persistence.transaction.JpaTestRules; -import google.registry.persistence.transaction.JpaTestRules.JpaIntegrationTestRule; -import google.registry.testing.AppEngineRule; +import google.registry.persistence.transaction.JpaTestRules.JpaIntegrationTestExtension; +import google.registry.testing.AppEngineExtension; import google.registry.testing.DatastoreEntityExtension; import google.registry.testing.DatastoreHelper; import google.registry.testing.FakeClock; @@ -58,7 +58,7 @@ class WriteToSqlTest implements Serializable { @RegisterExtension final transient InjectRule injectRule = new InjectRule(); @RegisterExtension - final transient JpaIntegrationTestRule database = + final transient JpaIntegrationTestExtension database = new JpaTestRules.Builder().withClock(fakeClock).buildIntegrationTestRule(); @SuppressWarnings("WeakerAccess") @@ -72,7 +72,7 @@ class WriteToSqlTest implements Serializable { // Must not be transient! @RegisterExtension @Order(Order.DEFAULT + 1) - public final BeamJpaExtension beamJpaExtension = + final BeamJpaExtension beamJpaExtension = new BeamJpaExtension(() -> tmpDir.resolve("credential.dat"), database.getDatabase()); private ImmutableList contacts; @@ -83,7 +83,7 @@ void beforeEach() throws Exception { injectRule.setStaticField(Ofy.class, "clock", fakeClock); // Required for contacts created below. - Registrar ofyRegistrar = AppEngineRule.makeRegistrar2(); + Registrar ofyRegistrar = AppEngineExtension.makeRegistrar2(); store.insertOrUpdate(ofyRegistrar); jpaTm().transact(() -> jpaTm().saveNewOrUpdate(store.loadAsOfyEntity(ofyRegistrar))); diff --git a/core/src/test/java/google/registry/cron/CommitLogFanoutActionTest.java b/core/src/test/java/google/registry/cron/CommitLogFanoutActionTest.java index d88d18256d6..53e36707e6c 100644 --- a/core/src/test/java/google/registry/cron/CommitLogFanoutActionTest.java +++ b/core/src/test/java/google/registry/cron/CommitLogFanoutActionTest.java @@ -19,7 +19,7 @@ import com.google.common.base.Joiner; import google.registry.model.ofy.CommitLogBucket; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.TaskQueueHelper.TaskMatcher; import google.registry.util.Retrier; import google.registry.util.TaskQueueUtils; @@ -36,8 +36,8 @@ class CommitLogFanoutActionTest { private static final String QUEUE = "the-queue"; @RegisterExtension - final AppEngineRule appEngineRule = - AppEngineRule.builder() + final AppEngineExtension appEngineRule = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withTaskQueue( Joiner.on('\n') diff --git a/core/src/test/java/google/registry/cron/TldFanoutActionTest.java b/core/src/test/java/google/registry/cron/TldFanoutActionTest.java index 264f803e11c..78d5d010e3b 100644 --- a/core/src/test/java/google/registry/cron/TldFanoutActionTest.java +++ b/core/src/test/java/google/registry/cron/TldFanoutActionTest.java @@ -31,7 +31,7 @@ import com.google.common.collect.ImmutableSet; import google.registry.model.registry.Registry; import google.registry.model.registry.Registry.TldType; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeResponse; import google.registry.testing.TaskQueueHelper.TaskMatcher; import google.registry.util.Retrier; @@ -51,8 +51,8 @@ class TldFanoutActionTest { private final FakeResponse response = new FakeResponse(); @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder() + final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withTaskQueue( Joiner.on('\n') diff --git a/core/src/test/java/google/registry/dns/DnsInjectionTest.java b/core/src/test/java/google/registry/dns/DnsInjectionTest.java index bafa1e2ca2b..2e3beb7ca8b 100644 --- a/core/src/test/java/google/registry/dns/DnsInjectionTest.java +++ b/core/src/test/java/google/registry/dns/DnsInjectionTest.java @@ -27,7 +27,7 @@ import google.registry.model.ofy.Ofy; import google.registry.request.HttpException.NotFoundException; import google.registry.request.RequestModule; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import java.io.PrintWriter; @@ -43,8 +43,8 @@ public final class DnsInjectionTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/dns/DnsQueueTest.java b/core/src/test/java/google/registry/dns/DnsQueueTest.java index 8bd15b2aeed..3e6e751b754 100644 --- a/core/src/test/java/google/registry/dns/DnsQueueTest.java +++ b/core/src/test/java/google/registry/dns/DnsQueueTest.java @@ -20,7 +20,7 @@ import static google.registry.testing.TaskQueueHelper.assertTasksEnqueued; import static org.junit.Assert.assertThrows; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.TaskQueueHelper.TaskMatcher; import org.joda.time.DateTime; @@ -32,8 +32,8 @@ public class DnsQueueTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); private DnsQueue dnsQueue; private final FakeClock clock = new FakeClock(DateTime.parse("2010-01-01T10:00:00Z")); diff --git a/core/src/test/java/google/registry/dns/PublishDnsUpdatesActionTest.java b/core/src/test/java/google/registry/dns/PublishDnsUpdatesActionTest.java index b0d9d3a5170..e265fdabfef 100644 --- a/core/src/test/java/google/registry/dns/PublishDnsUpdatesActionTest.java +++ b/core/src/test/java/google/registry/dns/PublishDnsUpdatesActionTest.java @@ -38,7 +38,7 @@ import google.registry.model.registry.Registry; import google.registry.request.HttpException.ServiceUnavailableException; import google.registry.request.lock.LockHandler; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeLockHandler; import google.registry.testing.InjectRule; @@ -52,8 +52,8 @@ public class PublishDnsUpdatesActionTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); private final FakeClock clock = new FakeClock(DateTime.parse("1971-01-01TZ")); diff --git a/core/src/test/java/google/registry/dns/ReadDnsQueueActionTest.java b/core/src/test/java/google/registry/dns/ReadDnsQueueActionTest.java index 8f7f570603b..1dc6259671e 100644 --- a/core/src/test/java/google/registry/dns/ReadDnsQueueActionTest.java +++ b/core/src/test/java/google/registry/dns/ReadDnsQueueActionTest.java @@ -45,7 +45,7 @@ import google.registry.dns.DnsConstants.TargetType; import google.registry.model.registry.Registry; import google.registry.model.registry.Registry.TldType; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.TaskQueueHelper.TaskMatcher; import google.registry.util.Retrier; @@ -70,8 +70,8 @@ public class ReadDnsQueueActionTest { private FakeClock clock = new FakeClock(DateTime.parse("3000-01-01TZ")); @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withTaskQueue( Joiner.on('\n') diff --git a/core/src/test/java/google/registry/dns/RefreshDnsActionTest.java b/core/src/test/java/google/registry/dns/RefreshDnsActionTest.java index 9bcbba215c6..d1b3de277c5 100644 --- a/core/src/test/java/google/registry/dns/RefreshDnsActionTest.java +++ b/core/src/test/java/google/registry/dns/RefreshDnsActionTest.java @@ -28,7 +28,7 @@ import google.registry.model.domain.DomainBase; import google.registry.request.HttpException.BadRequestException; import google.registry.request.HttpException.NotFoundException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -38,8 +38,8 @@ public class RefreshDnsActionTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); private final DnsQueue dnsQueue = mock(DnsQueue.class); private final FakeClock clock = new FakeClock(); diff --git a/core/src/test/java/google/registry/dns/writer/clouddns/CloudDnsWriterTest.java b/core/src/test/java/google/registry/dns/writer/clouddns/CloudDnsWriterTest.java index 67baee799fb..656bf71f3bf 100644 --- a/core/src/test/java/google/registry/dns/writer/clouddns/CloudDnsWriterTest.java +++ b/core/src/test/java/google/registry/dns/writer/clouddns/CloudDnsWriterTest.java @@ -44,7 +44,7 @@ import google.registry.model.eppcommon.StatusValue; import google.registry.model.host.HostResource; import google.registry.persistence.VKey; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.util.Retrier; import google.registry.util.SystemClock; import google.registry.util.SystemSleeper; @@ -70,7 +70,8 @@ public class CloudDnsWriterTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private static final Inet4Address IPv4 = (Inet4Address) InetAddresses.forString("127.0.0.1"); private static final Inet6Address IPv6 = (Inet6Address) InetAddresses.forString("::1"); diff --git a/core/src/test/java/google/registry/dns/writer/dnsupdate/DnsUpdateWriterTest.java b/core/src/test/java/google/registry/dns/writer/dnsupdate/DnsUpdateWriterTest.java index 1c96328bce5..9b7358572e7 100644 --- a/core/src/test/java/google/registry/dns/writer/dnsupdate/DnsUpdateWriterTest.java +++ b/core/src/test/java/google/registry/dns/writer/dnsupdate/DnsUpdateWriterTest.java @@ -41,7 +41,7 @@ import google.registry.model.eppcommon.StatusValue; import google.registry.model.host.HostResource; import google.registry.model.ofy.Ofy; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import java.util.ArrayList; @@ -74,8 +74,8 @@ public class DnsUpdateWriterTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/export/BackupDatastoreActionTest.java b/core/src/test/java/google/registry/export/BackupDatastoreActionTest.java index 344c739c390..da836ef06f9 100644 --- a/core/src/test/java/google/registry/export/BackupDatastoreActionTest.java +++ b/core/src/test/java/google/registry/export/BackupDatastoreActionTest.java @@ -24,7 +24,7 @@ import google.registry.export.datastore.DatastoreAdmin; import google.registry.export.datastore.DatastoreAdmin.Export; import google.registry.export.datastore.Operation; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeResponse; import google.registry.testing.TaskQueueHelper.TaskMatcher; import org.junit.jupiter.api.BeforeEach; @@ -39,7 +39,7 @@ public class BackupDatastoreActionTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withTaskQueue().build(); + public final AppEngineExtension appEngine = AppEngineExtension.builder().withTaskQueue().build(); @Mock private DatastoreAdmin datastoreAdmin; @Mock private Export exportRequest; diff --git a/core/src/test/java/google/registry/export/BigqueryPollJobActionTest.java b/core/src/test/java/google/registry/export/BigqueryPollJobActionTest.java index 6db9258757b..8029eea375f 100644 --- a/core/src/test/java/google/registry/export/BigqueryPollJobActionTest.java +++ b/core/src/test/java/google/registry/export/BigqueryPollJobActionTest.java @@ -39,7 +39,7 @@ import google.registry.export.BigqueryPollJobAction.BigqueryPollJobEnqueuer; import google.registry.request.HttpException.BadRequestException; import google.registry.request.HttpException.NotModifiedException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeSleeper; import google.registry.testing.TaskQueueHelper; @@ -60,8 +60,8 @@ public class BigqueryPollJobActionTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); private static final String PROJECT_ID = "project_id"; private static final String JOB_ID = "job_id"; diff --git a/core/src/test/java/google/registry/export/CheckBackupActionTest.java b/core/src/test/java/google/registry/export/CheckBackupActionTest.java index 4cd3853f306..670b85adb69 100644 --- a/core/src/test/java/google/registry/export/CheckBackupActionTest.java +++ b/core/src/test/java/google/registry/export/CheckBackupActionTest.java @@ -35,7 +35,7 @@ import google.registry.request.HttpException.BadRequestException; import google.registry.request.HttpException.NoContentException; import google.registry.request.HttpException.NotModifiedException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeResponse; import google.registry.testing.TaskQueueHelper.TaskMatcher; @@ -61,7 +61,7 @@ public class CheckBackupActionTest { private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withTaskQueue().build(); + public final AppEngineExtension appEngine = AppEngineExtension.builder().withTaskQueue().build(); @Mock private DatastoreAdmin datastoreAdmin; @Mock private Get getNotFoundBackupProgressRequest; diff --git a/core/src/test/java/google/registry/export/ExportPremiumTermsActionTest.java b/core/src/test/java/google/registry/export/ExportPremiumTermsActionTest.java index aa5728797ec..44f5bd91eed 100644 --- a/core/src/test/java/google/registry/export/ExportPremiumTermsActionTest.java +++ b/core/src/test/java/google/registry/export/ExportPremiumTermsActionTest.java @@ -41,7 +41,7 @@ import google.registry.model.registry.label.PremiumList; import google.registry.request.Response; import google.registry.storage.drive.DriveConnection; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.io.IOException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -58,7 +58,8 @@ public class ExportPremiumTermsActionTest { DISCLAIMER_WITH_NEWLINE + "0,USD 549.00\n" + "2048,USD 549.00\n"; @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private final DriveConnection driveConnection = mock(DriveConnection.class); private final Response response = mock(Response.class); diff --git a/core/src/test/java/google/registry/export/ExportReservedTermsActionTest.java b/core/src/test/java/google/registry/export/ExportReservedTermsActionTest.java index 6f13bbc6615..f1ae8f1a182 100644 --- a/core/src/test/java/google/registry/export/ExportReservedTermsActionTest.java +++ b/core/src/test/java/google/registry/export/ExportReservedTermsActionTest.java @@ -36,7 +36,7 @@ import google.registry.model.registry.label.ReservedList; import google.registry.request.Response; import google.registry.storage.drive.DriveConnection; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.io.IOException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -46,7 +46,8 @@ public class ExportReservedTermsActionTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private final DriveConnection driveConnection = mock(DriveConnection.class); private final Response response = mock(Response.class); diff --git a/core/src/test/java/google/registry/export/ExportUtilsTest.java b/core/src/test/java/google/registry/export/ExportUtilsTest.java index 347906ec9c4..79e69bb8eeb 100644 --- a/core/src/test/java/google/registry/export/ExportUtilsTest.java +++ b/core/src/test/java/google/registry/export/ExportUtilsTest.java @@ -21,7 +21,7 @@ import google.registry.model.registry.Registry; import google.registry.model.registry.label.ReservedList; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -29,7 +29,8 @@ class ExportUtilsTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void test_exportReservedTerms() { diff --git a/core/src/test/java/google/registry/export/SyncGroupMembersActionTest.java b/core/src/test/java/google/registry/export/SyncGroupMembersActionTest.java index cdc8db96ee7..fc7428d0b34 100644 --- a/core/src/test/java/google/registry/export/SyncGroupMembersActionTest.java +++ b/core/src/test/java/google/registry/export/SyncGroupMembersActionTest.java @@ -39,7 +39,7 @@ import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarContact; import google.registry.request.Response; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeSleeper; import google.registry.testing.InjectRule; @@ -52,12 +52,13 @@ * Unit tests for {@link SyncGroupMembersAction}. * *

Note that this relies on the registrars NewRegistrar and TheRegistrar created by default in - * {@link AppEngineRule}. + * {@link AppEngineExtension}. */ public class SyncGroupMembersActionTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/export/UpdateSnapshotViewActionTest.java b/core/src/test/java/google/registry/export/UpdateSnapshotViewActionTest.java index d4d2f2f9289..9fd95affd13 100644 --- a/core/src/test/java/google/registry/export/UpdateSnapshotViewActionTest.java +++ b/core/src/test/java/google/registry/export/UpdateSnapshotViewActionTest.java @@ -37,7 +37,7 @@ import com.google.common.collect.Iterables; import google.registry.bigquery.CheckedBigquery; import google.registry.request.HttpException.InternalServerErrorException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.TaskQueueHelper.TaskMatcher; import java.io.IOException; import org.junit.jupiter.api.BeforeEach; @@ -50,7 +50,7 @@ public class UpdateSnapshotViewActionTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withTaskQueue().build(); + public final AppEngineExtension appEngine = AppEngineExtension.builder().withTaskQueue().build(); private final CheckedBigquery checkedBigquery = mock(CheckedBigquery.class); private final Bigquery bigquery = mock(Bigquery.class); diff --git a/core/src/test/java/google/registry/export/UploadDatastoreBackupActionTest.java b/core/src/test/java/google/registry/export/UploadDatastoreBackupActionTest.java index 16c66c118f2..94b1f9f57d1 100644 --- a/core/src/test/java/google/registry/export/UploadDatastoreBackupActionTest.java +++ b/core/src/test/java/google/registry/export/UploadDatastoreBackupActionTest.java @@ -45,7 +45,7 @@ import google.registry.bigquery.CheckedBigquery; import google.registry.export.BigqueryPollJobAction.BigqueryPollJobEnqueuer; import google.registry.request.HttpException.InternalServerErrorException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.TaskQueueHelper.TaskMatcher; import java.io.IOException; import java.util.List; @@ -58,7 +58,7 @@ public class UploadDatastoreBackupActionTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withTaskQueue().build(); + public final AppEngineExtension appEngine = AppEngineExtension.builder().withTaskQueue().build(); private final CheckedBigquery checkedBigquery = mock(CheckedBigquery.class); private final Bigquery bigquery = mock(Bigquery.class); diff --git a/core/src/test/java/google/registry/export/sheet/SyncRegistrarsSheetActionTest.java b/core/src/test/java/google/registry/export/sheet/SyncRegistrarsSheetActionTest.java index e07204d9b28..d5a508f8dc6 100644 --- a/core/src/test/java/google/registry/export/sheet/SyncRegistrarsSheetActionTest.java +++ b/core/src/test/java/google/registry/export/sheet/SyncRegistrarsSheetActionTest.java @@ -23,7 +23,7 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeLockHandler; import google.registry.testing.FakeResponse; import java.util.Optional; @@ -37,8 +37,8 @@ public class SyncRegistrarsSheetActionTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); private final FakeResponse response = new FakeResponse(); private final SyncRegistrarsSheet syncRegistrarsSheet = mock(SyncRegistrarsSheet.class); diff --git a/core/src/test/java/google/registry/export/sheet/SyncRegistrarsSheetTest.java b/core/src/test/java/google/registry/export/sheet/SyncRegistrarsSheetTest.java index 2b3d96b411a..66c18ebbb14 100644 --- a/core/src/test/java/google/registry/export/sheet/SyncRegistrarsSheetTest.java +++ b/core/src/test/java/google/registry/export/sheet/SyncRegistrarsSheetTest.java @@ -38,7 +38,7 @@ import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarAddress; import google.registry.model.registrar.RegistrarContact; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.DatastoreHelper; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; @@ -57,7 +57,8 @@ public class SyncRegistrarsSheetTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/flows/CheckApiActionTest.java b/core/src/test/java/google/registry/flows/CheckApiActionTest.java index 14f2c1baa4e..627ab75d3c7 100644 --- a/core/src/test/java/google/registry/flows/CheckApiActionTest.java +++ b/core/src/test/java/google/registry/flows/CheckApiActionTest.java @@ -33,7 +33,7 @@ import google.registry.monitoring.whitebox.CheckApiMetric.Availability; import google.registry.monitoring.whitebox.CheckApiMetric.Status; import google.registry.monitoring.whitebox.CheckApiMetric.Tier; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeResponse; import java.util.Map; @@ -55,7 +55,8 @@ class CheckApiActionTest { private static final DateTime START_TIME = DateTime.parse("2000-01-01T00:00:00.0Z"); @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Mock private CheckApiMetrics checkApiMetrics; @Captor private ArgumentCaptor metricCaptor; diff --git a/core/src/test/java/google/registry/flows/EppCommitLogsTest.java b/core/src/test/java/google/registry/flows/EppCommitLogsTest.java index cec165e6c32..1d1a2855612 100644 --- a/core/src/test/java/google/registry/flows/EppCommitLogsTest.java +++ b/core/src/test/java/google/registry/flows/EppCommitLogsTest.java @@ -30,7 +30,7 @@ import google.registry.model.domain.DomainBase; import google.registry.model.ofy.Ofy; import google.registry.monitoring.whitebox.EppMetric; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.EppLoader; import google.registry.testing.FakeClock; import google.registry.testing.FakeHttpSession; @@ -44,8 +44,8 @@ class EppCommitLogsTest { @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @RegisterExtension final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/flows/EppControllerTest.java b/core/src/test/java/google/registry/flows/EppControllerTest.java index 2ac618020e8..acd632bc948 100644 --- a/core/src/test/java/google/registry/flows/EppControllerTest.java +++ b/core/src/test/java/google/registry/flows/EppControllerTest.java @@ -40,7 +40,7 @@ import google.registry.model.eppoutput.Result; import google.registry.model.eppoutput.Result.Code; import google.registry.monitoring.whitebox.EppMetric; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.util.Clock; import google.registry.xml.ValidationMode; @@ -67,7 +67,8 @@ class EppControllerTest { @RegisterExtension - AppEngineRule appEngineRule = new AppEngineRule.Builder().withDatastoreAndCloudSql().build(); + AppEngineExtension appEngineRule = + new AppEngineExtension.Builder().withDatastoreAndCloudSql().build(); @Mock SessionMetadata sessionMetadata; @Mock TransportCredentials transportCredentials; diff --git a/core/src/test/java/google/registry/flows/EppLifecycleContactTest.java b/core/src/test/java/google/registry/flows/EppLifecycleContactTest.java index 84a3f8152b9..1a8172e7f1a 100644 --- a/core/src/test/java/google/registry/flows/EppLifecycleContactTest.java +++ b/core/src/test/java/google/registry/flows/EppLifecycleContactTest.java @@ -21,7 +21,7 @@ import static google.registry.testing.EppMetricSubject.assertThat; import com.google.common.collect.ImmutableMap; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -29,8 +29,8 @@ class EppLifecycleContactTest extends EppTestCase { @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @Test void testContactLifecycle() throws Exception { diff --git a/core/src/test/java/google/registry/flows/EppLifecycleDomainTest.java b/core/src/test/java/google/registry/flows/EppLifecycleDomainTest.java index 3a355309f32..5641cdfdf6b 100644 --- a/core/src/test/java/google/registry/flows/EppLifecycleDomainTest.java +++ b/core/src/test/java/google/registry/flows/EppLifecycleDomainTest.java @@ -45,7 +45,7 @@ import google.registry.model.registry.Registry; import google.registry.model.registry.Registry.TldState; import google.registry.model.reporting.HistoryEntry.Type; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.joda.money.Money; import org.joda.time.DateTime; import org.junit.jupiter.api.BeforeEach; @@ -62,8 +62,8 @@ class EppLifecycleDomainTest extends EppTestCase { "EXDATE", "2003-06-01T00:04:00Z"); @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @BeforeEach void beforeEach() { diff --git a/core/src/test/java/google/registry/flows/EppLifecycleHostTest.java b/core/src/test/java/google/registry/flows/EppLifecycleHostTest.java index feddd52d2b2..66f69daa228 100644 --- a/core/src/test/java/google/registry/flows/EppLifecycleHostTest.java +++ b/core/src/test/java/google/registry/flows/EppLifecycleHostTest.java @@ -26,7 +26,7 @@ import com.google.common.collect.ImmutableMap; import google.registry.model.domain.DomainBase; import google.registry.model.host.HostResource; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.joda.time.DateTime; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -35,8 +35,8 @@ class EppLifecycleHostTest extends EppTestCase { @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @Test void testLifecycle() throws Exception { diff --git a/core/src/test/java/google/registry/flows/EppLifecycleLoginTest.java b/core/src/test/java/google/registry/flows/EppLifecycleLoginTest.java index 2165777cf20..f75d7a0d296 100644 --- a/core/src/test/java/google/registry/flows/EppLifecycleLoginTest.java +++ b/core/src/test/java/google/registry/flows/EppLifecycleLoginTest.java @@ -18,7 +18,7 @@ import static google.registry.model.eppoutput.Result.Code.SUCCESS_AND_CLOSE; import static google.registry.testing.EppMetricSubject.assertThat; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -26,8 +26,8 @@ class EppLifecycleLoginTest extends EppTestCase { @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @Test void testLoginAndLogout_recordsEppMetric() throws Exception { diff --git a/core/src/test/java/google/registry/flows/EppLoggedOutTest.java b/core/src/test/java/google/registry/flows/EppLoggedOutTest.java index 66f65253b12..c8f0201b841 100644 --- a/core/src/test/java/google/registry/flows/EppLoggedOutTest.java +++ b/core/src/test/java/google/registry/flows/EppLoggedOutTest.java @@ -18,7 +18,7 @@ import static org.joda.time.format.ISODateTimeFormat.dateTimeNoMillis; import com.google.common.collect.ImmutableMap; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.joda.time.DateTime; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -27,7 +27,8 @@ class EppLoggedOutTest extends EppTestCase { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testHello() throws Exception { diff --git a/core/src/test/java/google/registry/flows/EppLoginTlsTest.java b/core/src/test/java/google/registry/flows/EppLoginTlsTest.java index 9cc0806f723..83dfe8d979b 100644 --- a/core/src/test/java/google/registry/flows/EppLoginTlsTest.java +++ b/core/src/test/java/google/registry/flows/EppLoginTlsTest.java @@ -19,7 +19,7 @@ import static org.joda.time.DateTimeZone.UTC; import com.google.common.collect.ImmutableMap; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.CertificateSamples; import java.util.Optional; import org.joda.time.DateTime; @@ -31,7 +31,8 @@ class EppLoginTlsTest extends EppTestCase { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); void setClientCertificateHash(String clientCertificateHash) { setTransportCredentials( diff --git a/core/src/test/java/google/registry/flows/EppXxeAttackTest.java b/core/src/test/java/google/registry/flows/EppXxeAttackTest.java index cf790c7eafa..e2fb52226d8 100644 --- a/core/src/test/java/google/registry/flows/EppXxeAttackTest.java +++ b/core/src/test/java/google/registry/flows/EppXxeAttackTest.java @@ -15,7 +15,7 @@ package google.registry.flows; import com.google.common.collect.ImmutableMap; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -23,7 +23,8 @@ class EppXxeAttackTest extends EppTestCase { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testRemoteXmlExternalEntity() throws Exception { diff --git a/core/src/test/java/google/registry/flows/ExtensionManagerTest.java b/core/src/test/java/google/registry/flows/ExtensionManagerTest.java index fc6ed51a2a4..6b140af67f6 100644 --- a/core/src/test/java/google/registry/flows/ExtensionManagerTest.java +++ b/core/src/test/java/google/registry/flows/ExtensionManagerTest.java @@ -35,7 +35,7 @@ import google.registry.model.eppcommon.ProtocolDefinition.ServiceExtension; import google.registry.model.eppinput.EppInput; import google.registry.model.eppinput.EppInput.CommandExtension; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.util.TypeUtils; import java.util.logging.LogRecord; import org.junit.jupiter.api.Test; @@ -45,7 +45,8 @@ class ExtensionManagerTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testDuplicateExtensionsForbidden() { diff --git a/core/src/test/java/google/registry/flows/FlowRunnerTest.java b/core/src/test/java/google/registry/flows/FlowRunnerTest.java index 1c4bc5ba860..caf7775b839 100644 --- a/core/src/test/java/google/registry/flows/FlowRunnerTest.java +++ b/core/src/test/java/google/registry/flows/FlowRunnerTest.java @@ -33,7 +33,7 @@ import google.registry.model.eppoutput.EppOutput.ResponseOrGreeting; import google.registry.model.eppoutput.EppResponse; import google.registry.monitoring.whitebox.EppMetric; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeHttpSession; import java.util.List; @@ -46,7 +46,8 @@ /** Unit tests for {@link FlowRunner}. */ class FlowRunnerTest { - @RegisterExtension final AppEngineRule appEngineRule = new AppEngineRule.Builder().build(); + @RegisterExtension + final AppEngineExtension appEngineRule = new AppEngineExtension.Builder().build(); private final FlowRunner flowRunner = new FlowRunner(); private final EppMetric.Builder eppMetricBuilder = EppMetric.builderForRequest(new FakeClock()); diff --git a/core/src/test/java/google/registry/flows/FlowTestCase.java b/core/src/test/java/google/registry/flows/FlowTestCase.java index 8d0932448af..4c1eaf52bd2 100644 --- a/core/src/test/java/google/registry/flows/FlowTestCase.java +++ b/core/src/test/java/google/registry/flows/FlowTestCase.java @@ -47,7 +47,7 @@ import google.registry.model.reporting.HistoryEntry; import google.registry.model.tmch.ClaimsListShard.ClaimsListSingleton; import google.registry.monitoring.whitebox.EppMetric; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.EppLoader; import google.registry.testing.FakeClock; import google.registry.testing.FakeHttpSession; @@ -85,8 +85,8 @@ public enum UserPrivileges { } @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @RegisterExtension final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/flows/TlsCredentialsTest.java b/core/src/test/java/google/registry/flows/TlsCredentialsTest.java index 1b52868d71c..91a3e3629fb 100644 --- a/core/src/test/java/google/registry/flows/TlsCredentialsTest.java +++ b/core/src/test/java/google/registry/flows/TlsCredentialsTest.java @@ -24,7 +24,7 @@ import google.registry.model.registrar.Registrar; import google.registry.request.HttpException.BadRequestException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.util.Optional; import javax.servlet.http.HttpServletRequest; import org.joda.time.DateTime; @@ -35,7 +35,8 @@ final class TlsCredentialsTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testProvideClientCertificateHash() { 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 73c7466e60f..2c9fcef5f88 100644 --- a/core/src/test/java/google/registry/flows/contact/ContactTransferFlowTestCase.java +++ b/core/src/test/java/google/registry/flows/contact/ContactTransferFlowTestCase.java @@ -25,7 +25,7 @@ import google.registry.model.contact.ContactResource; import google.registry.model.registry.Registry; import google.registry.model.transfer.TransferStatus; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.joda.time.DateTime; import org.joda.time.Duration; import org.junit.jupiter.api.BeforeEach; @@ -58,8 +58,7 @@ abstract class ContactTransferFlowTestCase void beforeEachDomainTransferFlowTestCase() { // Registrar ClientZ is used in tests that need another registrar that definitely doesn't own // the resources in question. - persistResource( - AppEngineRule.makeRegistrar1().asBuilder().setClientId("ClientZ").build()); + persistResource(AppEngineExtension.makeRegistrar1().asBuilder().setClientId("ClientZ").build()); } static DomainBase persistWithPendingTransfer(DomainBase domain) { diff --git a/core/src/test/java/google/registry/flows/domain/DomainTransferQueryFlowTest.java b/core/src/test/java/google/registry/flows/domain/DomainTransferQueryFlowTest.java index d746054bcc8..fba20af6c0a 100644 --- a/core/src/test/java/google/registry/flows/domain/DomainTransferQueryFlowTest.java +++ b/core/src/test/java/google/registry/flows/domain/DomainTransferQueryFlowTest.java @@ -42,7 +42,7 @@ class DomainTransferQueryFlowTest extends DomainTransferFlowTestCase { @BeforeEach - void setUp() { + void beforeEach() { setEppInput("domain_transfer_query.xml"); setClientIdForFlow("NewRegistrar"); setupDomainWithPendingTransfer("example", "tld"); 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 8eb73afd305..003ec2097c3 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 @@ -47,7 +47,7 @@ import google.registry.model.domain.token.AllocationToken.TokenStatus; import google.registry.model.registry.Registry; import google.registry.model.reporting.HistoryEntry; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.joda.time.DateTime; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -60,7 +60,8 @@ class AllocationTokenFlowUtilsTest { new AllocationTokenFlowUtils(new AllocationTokenCustomLogic()); @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @BeforeEach void beforeEach() { 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 8ff2c39c8ff..daab0262591 100644 --- a/core/src/test/java/google/registry/flows/host/HostFlowUtilsTest.java +++ b/core/src/test/java/google/registry/flows/host/HostFlowUtilsTest.java @@ -25,7 +25,7 @@ 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 google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -33,7 +33,8 @@ class HostFlowUtilsTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void test_validExternalHostName_validates() throws Exception { diff --git a/core/src/test/java/google/registry/keyring/kms/KmsKeyringTest.java b/core/src/test/java/google/registry/keyring/kms/KmsKeyringTest.java index b8edd405063..2b147f7d7a3 100644 --- a/core/src/test/java/google/registry/keyring/kms/KmsKeyringTest.java +++ b/core/src/test/java/google/registry/keyring/kms/KmsKeyringTest.java @@ -21,7 +21,7 @@ import google.registry.keyring.api.KeySerializer; import google.registry.model.server.KmsSecret; import google.registry.model.server.KmsSecretRevision; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.BouncyCastleProviderExtension; import org.bouncycastle.openpgp.PGPKeyPair; import org.bouncycastle.openpgp.PGPPrivateKey; @@ -37,7 +37,8 @@ class KmsKeyringTest { final BouncyCastleProviderExtension bouncy = new BouncyCastleProviderExtension(); @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private KmsKeyring keyring; diff --git a/core/src/test/java/google/registry/keyring/kms/KmsUpdaterTest.java b/core/src/test/java/google/registry/keyring/kms/KmsUpdaterTest.java index eb6c29a1421..21ef5341ca9 100644 --- a/core/src/test/java/google/registry/keyring/kms/KmsUpdaterTest.java +++ b/core/src/test/java/google/registry/keyring/kms/KmsUpdaterTest.java @@ -22,7 +22,7 @@ import google.registry.keyring.api.KeySerializer; import google.registry.model.server.KmsSecret; import google.registry.model.server.KmsSecretRevision; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.BouncyCastleProviderExtension; import java.io.IOException; import org.bouncycastle.openpgp.PGPKeyPair; @@ -35,7 +35,8 @@ public class KmsUpdaterTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension public final BouncyCastleProviderExtension bouncy = new BouncyCastleProviderExtension(); diff --git a/core/src/test/java/google/registry/mapreduce/inputs/ChildEntityInputTest.java b/core/src/test/java/google/registry/mapreduce/inputs/ChildEntityInputTest.java index c94bca92934..d0259bf459a 100644 --- a/core/src/test/java/google/registry/mapreduce/inputs/ChildEntityInputTest.java +++ b/core/src/test/java/google/registry/mapreduce/inputs/ChildEntityInputTest.java @@ -39,7 +39,7 @@ import google.registry.model.domain.DomainBase; import google.registry.model.index.EppResourceIndex; import google.registry.model.reporting.HistoryEntry; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; @@ -59,7 +59,8 @@ class ChildEntityInputTest { private static final DateTime now = DateTime.now(DateTimeZone.UTC); @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private DomainBase domainA; private DomainBase domainB; diff --git a/core/src/test/java/google/registry/mapreduce/inputs/CommitLogManifestInputTest.java b/core/src/test/java/google/registry/mapreduce/inputs/CommitLogManifestInputTest.java index 099dc3e53ae..02147d5c258 100644 --- a/core/src/test/java/google/registry/mapreduce/inputs/CommitLogManifestInputTest.java +++ b/core/src/test/java/google/registry/mapreduce/inputs/CommitLogManifestInputTest.java @@ -22,7 +22,7 @@ import com.googlecode.objectify.Key; import google.registry.model.ofy.CommitLogBucket; import google.registry.model.ofy.CommitLogManifest; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.DatastoreHelper; import java.util.ArrayList; import java.util.HashSet; @@ -45,7 +45,8 @@ final class CommitLogManifestInputTest { private static final DateTime DATE_TIME_NEW2 = DateTime.parse("2017-12-19T12:00Z"); @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testInputOlderThan_allFound() throws Exception { diff --git a/core/src/test/java/google/registry/mapreduce/inputs/EppResourceInputsTest.java b/core/src/test/java/google/registry/mapreduce/inputs/EppResourceInputsTest.java index 1521eee4085..6fe8b8ab369 100644 --- a/core/src/test/java/google/registry/mapreduce/inputs/EppResourceInputsTest.java +++ b/core/src/test/java/google/registry/mapreduce/inputs/EppResourceInputsTest.java @@ -36,7 +36,7 @@ import google.registry.model.domain.DomainBase; import google.registry.model.host.HostResource; import google.registry.model.index.EppResourceIndex; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; @@ -53,7 +53,8 @@ class EppResourceInputsTest { private static final double EPSILON = 0.0001; @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @SuppressWarnings("unchecked") private T serializeAndDeserialize(T obj) throws Exception { diff --git a/core/src/test/java/google/registry/model/CreateAutoTimestampTest.java b/core/src/test/java/google/registry/model/CreateAutoTimestampTest.java index 2b6dc50a5ff..0db3b73e2ce 100644 --- a/core/src/test/java/google/registry/model/CreateAutoTimestampTest.java +++ b/core/src/test/java/google/registry/model/CreateAutoTimestampTest.java @@ -21,7 +21,7 @@ import com.googlecode.objectify.annotation.Entity; import google.registry.model.common.CrossTldSingleton; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.joda.time.DateTime; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -30,8 +30,8 @@ public class CreateAutoTimestampTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withOfyTestEntities(TestObject.class) .build(); diff --git a/core/src/test/java/google/registry/model/EntityTestCase.java b/core/src/test/java/google/registry/model/EntityTestCase.java index 188c828d778..94326ffdc5d 100644 --- a/core/src/test/java/google/registry/model/EntityTestCase.java +++ b/core/src/test/java/google/registry/model/EntityTestCase.java @@ -29,7 +29,7 @@ import com.googlecode.objectify.cmd.Query; import google.registry.model.ofy.Ofy; import google.registry.persistence.VKey; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import google.registry.util.CidrAddressBlock; @@ -59,7 +59,7 @@ protected enum JpaEntityCoverageCheck { protected FakeClock fakeClock = new FakeClock(DateTime.now(UTC)); - @RegisterExtension public final AppEngineRule appEngine; + @RegisterExtension public final AppEngineExtension appEngine; @RegisterExtension public InjectRule inject = new InjectRule(); @@ -69,7 +69,7 @@ protected EntityTestCase() { protected EntityTestCase(JpaEntityCoverageCheck jpaEntityCoverageCheck) { appEngine = - AppEngineRule.builder() + AppEngineExtension.builder() .withDatastoreAndCloudSql() .enableJpaEntityCoverageCheck(jpaEntityCoverageCheck == JpaEntityCoverageCheck.ENABLED) .withClock(fakeClock) diff --git a/core/src/test/java/google/registry/model/EppResourceUtilsTest.java b/core/src/test/java/google/registry/model/EppResourceUtilsTest.java index f1c6005333b..c0a60b6f2bd 100644 --- a/core/src/test/java/google/registry/model/EppResourceUtilsTest.java +++ b/core/src/test/java/google/registry/model/EppResourceUtilsTest.java @@ -25,7 +25,7 @@ import google.registry.model.host.HostResource; import google.registry.model.ofy.Ofy; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import org.joda.time.DateTime; @@ -38,8 +38,8 @@ public class EppResourceUtilsTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/model/ImmutableObjectTest.java b/core/src/test/java/google/registry/model/ImmutableObjectTest.java index ac25ee63623..3cc1974a9c6 100644 --- a/core/src/test/java/google/registry/model/ImmutableObjectTest.java +++ b/core/src/test/java/google/registry/model/ImmutableObjectTest.java @@ -29,7 +29,7 @@ import com.googlecode.objectify.Key; import com.googlecode.objectify.annotation.Entity; import com.googlecode.objectify.annotation.Id; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.util.CidrAddressBlock; import java.util.ArrayDeque; import java.util.Arrays; @@ -45,8 +45,8 @@ public class ImmutableObjectTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withOfyTestEntities(ValueObject.class) .build(); diff --git a/core/src/test/java/google/registry/model/ModelUtilsTest.java b/core/src/test/java/google/registry/model/ModelUtilsTest.java index d20d61d5aab..f57bc9ce368 100644 --- a/core/src/test/java/google/registry/model/ModelUtilsTest.java +++ b/core/src/test/java/google/registry/model/ModelUtilsTest.java @@ -18,7 +18,7 @@ import com.google.common.collect.ImmutableMap; import com.googlecode.objectify.annotation.Id; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.lang.reflect.Field; import java.util.Map; import org.junit.jupiter.api.BeforeEach; @@ -28,7 +28,8 @@ /** Unit tests for {@link ModelUtils}. */ public class ModelUtilsTest { - @RegisterExtension public AppEngineRule appEngineRule = new AppEngineRule.Builder().build(); + @RegisterExtension + public AppEngineExtension appEngineRule = new AppEngineExtension.Builder().build(); /** Test class for reflection methods. */ public static class TestClass extends ImmutableObject implements Buildable { diff --git a/core/src/test/java/google/registry/model/OteAccountBuilderTest.java b/core/src/test/java/google/registry/model/OteAccountBuilderTest.java index 21936820eb5..6fd247598ba 100644 --- a/core/src/test/java/google/registry/model/OteAccountBuilderTest.java +++ b/core/src/test/java/google/registry/model/OteAccountBuilderTest.java @@ -18,7 +18,7 @@ import static com.google.common.truth.Truth8.assertThat; import static google.registry.model.registry.Registry.TldState.GENERAL_AVAILABILITY; import static google.registry.model.registry.Registry.TldState.START_DATE_SUNRISE; -import static google.registry.testing.AppEngineRule.makeRegistrar1; +import static google.registry.testing.AppEngineExtension.makeRegistrar1; import static google.registry.testing.CertificateSamples.SAMPLE_CERT; import static google.registry.testing.CertificateSamples.SAMPLE_CERT_HASH; import static google.registry.testing.DatastoreHelper.createTld; @@ -33,7 +33,7 @@ import google.registry.model.registrar.RegistrarContact; import google.registry.model.registry.Registry; import google.registry.model.registry.Registry.TldState; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.util.CidrAddressBlock; import google.registry.util.SystemClock; import org.joda.money.Money; @@ -47,7 +47,8 @@ public final class OteAccountBuilderTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testGetRegistrarToTldMap() { diff --git a/core/src/test/java/google/registry/model/OteStatsTest.java b/core/src/test/java/google/registry/model/OteStatsTest.java index 719085653ac..5e6ca0767a7 100644 --- a/core/src/test/java/google/registry/model/OteStatsTest.java +++ b/core/src/test/java/google/registry/model/OteStatsTest.java @@ -17,14 +17,15 @@ import static com.google.common.truth.Truth.assertThat; import google.registry.model.OteStats.StatType; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; public final class OteStatsTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testSuccess_allPass() throws Exception { diff --git a/core/src/test/java/google/registry/model/SchemaVersionTest.java b/core/src/test/java/google/registry/model/SchemaVersionTest.java index c6831e15abd..dbd3936e88e 100644 --- a/core/src/test/java/google/registry/model/SchemaVersionTest.java +++ b/core/src/test/java/google/registry/model/SchemaVersionTest.java @@ -14,7 +14,7 @@ package google.registry.model; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.GoldenFileTestHelper; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -27,7 +27,8 @@ public class SchemaVersionTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testGoldenSchemaFile() { diff --git a/core/src/test/java/google/registry/model/UpdateAutoTimestampTest.java b/core/src/test/java/google/registry/model/UpdateAutoTimestampTest.java index 4102b1b1831..d8636b3b119 100644 --- a/core/src/test/java/google/registry/model/UpdateAutoTimestampTest.java +++ b/core/src/test/java/google/registry/model/UpdateAutoTimestampTest.java @@ -21,7 +21,7 @@ import com.googlecode.objectify.annotation.Entity; import google.registry.model.common.CrossTldSingleton; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.joda.time.DateTime; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -30,8 +30,8 @@ public class UpdateAutoTimestampTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withOfyTestEntities(UpdateAutoTimestampTestObject.class) .build(); diff --git a/core/src/test/java/google/registry/model/common/GaeUserIdConverterTest.java b/core/src/test/java/google/registry/model/common/GaeUserIdConverterTest.java index ed0dafd5544..6e7a4179741 100644 --- a/core/src/test/java/google/registry/model/common/GaeUserIdConverterTest.java +++ b/core/src/test/java/google/registry/model/common/GaeUserIdConverterTest.java @@ -18,7 +18,7 @@ import static google.registry.model.ofy.ObjectifyService.ofy; import static google.registry.persistence.transaction.TransactionManagerFactory.tm; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -27,7 +27,8 @@ public class GaeUserIdConverterTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @AfterEach void verifyNoLingeringEntities() { diff --git a/core/src/test/java/google/registry/model/contact/ContactCommandTest.java b/core/src/test/java/google/registry/model/contact/ContactCommandTest.java index 847b45f3b19..3b941322e34 100644 --- a/core/src/test/java/google/registry/model/contact/ContactCommandTest.java +++ b/core/src/test/java/google/registry/model/contact/ContactCommandTest.java @@ -20,7 +20,7 @@ import static google.registry.xml.XmlTestUtils.assertXmlEquals; import static java.nio.charset.StandardCharsets.UTF_8; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.EppLoader; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -29,7 +29,8 @@ public class ContactCommandTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private void doXmlRoundtripTest(String inputFilename) throws Exception { EppLoader eppLoader = new EppLoader(this, inputFilename); diff --git a/core/src/test/java/google/registry/model/domain/GracePeriodTest.java b/core/src/test/java/google/registry/model/domain/GracePeriodTest.java index 3c49a9c3cf8..4a3f4dfaaac 100644 --- a/core/src/test/java/google/registry/model/domain/GracePeriodTest.java +++ b/core/src/test/java/google/registry/model/domain/GracePeriodTest.java @@ -24,7 +24,7 @@ import google.registry.model.billing.BillingEvent.Recurring; import google.registry.model.domain.rgp.GracePeriodStatus; import google.registry.model.reporting.HistoryEntry; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.joda.money.CurrencyUnit; import org.joda.money.Money; import org.joda.time.DateTime; @@ -36,8 +36,8 @@ public class GracePeriodTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() // Needed to be able to construct Keys. .build(); diff --git a/core/src/test/java/google/registry/model/ofy/CommitLogBucketTest.java b/core/src/test/java/google/registry/model/ofy/CommitLogBucketTest.java index ea4bc057ea9..49e3a88bb90 100644 --- a/core/src/test/java/google/registry/model/ofy/CommitLogBucketTest.java +++ b/core/src/test/java/google/registry/model/ofy/CommitLogBucketTest.java @@ -25,7 +25,7 @@ import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableSet; import com.googlecode.objectify.annotation.Cache; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.InjectRule; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -35,7 +35,8 @@ public class CommitLogBucketTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); private CommitLogBucket bucket; diff --git a/core/src/test/java/google/registry/model/ofy/CommitLogCheckpointTest.java b/core/src/test/java/google/registry/model/ofy/CommitLogCheckpointTest.java index e2ed10d09ee..dddcfb80572 100644 --- a/core/src/test/java/google/registry/model/ofy/CommitLogCheckpointTest.java +++ b/core/src/test/java/google/registry/model/ofy/CommitLogCheckpointTest.java @@ -20,7 +20,7 @@ import static org.junit.Assert.assertThrows; import com.google.common.collect.ImmutableMap; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.joda.time.DateTime; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -29,7 +29,8 @@ public class CommitLogCheckpointTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private static final DateTime T1 = START_OF_TIME; private static final DateTime T2 = START_OF_TIME.plusMillis(1); diff --git a/core/src/test/java/google/registry/model/ofy/CommitLogMutationTest.java b/core/src/test/java/google/registry/model/ofy/CommitLogMutationTest.java index 1c3a599c8a5..90b9ea23306 100644 --- a/core/src/test/java/google/registry/model/ofy/CommitLogMutationTest.java +++ b/core/src/test/java/google/registry/model/ofy/CommitLogMutationTest.java @@ -25,7 +25,7 @@ import com.googlecode.objectify.Key; import google.registry.model.ImmutableObject; import google.registry.model.registry.Registry; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.junit.jupiter.api.BeforeEach; @@ -36,7 +36,8 @@ public class CommitLogMutationTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private static final DateTime NOW = DateTime.now(DateTimeZone.UTC); diff --git a/core/src/test/java/google/registry/model/ofy/ObjectifyServiceTest.java b/core/src/test/java/google/registry/model/ofy/ObjectifyServiceTest.java index 77a7d11028e..00dedd08eb4 100644 --- a/core/src/test/java/google/registry/model/ofy/ObjectifyServiceTest.java +++ b/core/src/test/java/google/registry/model/ofy/ObjectifyServiceTest.java @@ -14,7 +14,7 @@ package google.registry.model.ofy; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -22,7 +22,8 @@ public class ObjectifyServiceTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void test_initOfy_canBeCalledTwice() { diff --git a/core/src/test/java/google/registry/model/ofy/OfyCommitLogTest.java b/core/src/test/java/google/registry/model/ofy/OfyCommitLogTest.java index 01e18aa6829..eba2a60b5be 100644 --- a/core/src/test/java/google/registry/model/ofy/OfyCommitLogTest.java +++ b/core/src/test/java/google/registry/model/ofy/OfyCommitLogTest.java @@ -30,7 +30,7 @@ import google.registry.model.BackupGroupRoot; import google.registry.model.ImmutableObject; import google.registry.model.common.EntityGroupRoot; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import google.registry.testing.TestObject.TestVirtualObject; @@ -43,8 +43,8 @@ public class OfyCommitLogTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withOfyTestEntities(TestVirtualObject.class, Root.class, Child.class) .build(); diff --git a/core/src/test/java/google/registry/model/ofy/OfyTest.java b/core/src/test/java/google/registry/model/ofy/OfyTest.java index a7e041193f9..c52e0dc3af0 100644 --- a/core/src/test/java/google/registry/model/ofy/OfyTest.java +++ b/core/src/test/java/google/registry/model/ofy/OfyTest.java @@ -45,7 +45,7 @@ import google.registry.model.domain.DomainBase; import google.registry.model.eppcommon.Trid; import google.registry.model.reporting.HistoryEntry; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.DatastoreHelper; import google.registry.testing.FakeClock; import google.registry.util.SystemClock; @@ -60,7 +60,8 @@ public class OfyTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); /** An entity to use in save and delete tests. */ private HistoryEntry someObject; diff --git a/core/src/test/java/google/registry/model/poll/PollMessageExternalKeyConverterTest.java b/core/src/test/java/google/registry/model/poll/PollMessageExternalKeyConverterTest.java index c586e5264b4..7f7340c5fbb 100644 --- a/core/src/test/java/google/registry/model/poll/PollMessageExternalKeyConverterTest.java +++ b/core/src/test/java/google/registry/model/poll/PollMessageExternalKeyConverterTest.java @@ -31,7 +31,7 @@ import google.registry.model.ofy.Ofy; import google.registry.model.poll.PollMessageExternalKeyConverter.PollMessageExternalKeyParseException; import google.registry.model.reporting.HistoryEntry; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import org.joda.time.DateTime; @@ -43,7 +43,8 @@ public class PollMessageExternalKeyConverterTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension public InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/model/rde/RdeRevisionTest.java b/core/src/test/java/google/registry/model/rde/RdeRevisionTest.java index 769bb5904ae..6a71c6a7166 100644 --- a/core/src/test/java/google/registry/model/rde/RdeRevisionTest.java +++ b/core/src/test/java/google/registry/model/rde/RdeRevisionTest.java @@ -23,7 +23,7 @@ import static org.junit.Assert.assertThrows; import com.google.common.base.VerifyException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.joda.time.DateTime; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -32,7 +32,8 @@ public class RdeRevisionTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testGetNextRevision_objectDoesntExist_returnsZero() { diff --git a/core/src/test/java/google/registry/model/registry/RegistriesTest.java b/core/src/test/java/google/registry/model/registry/RegistriesTest.java index 872621733e7..9440eb871d1 100644 --- a/core/src/test/java/google/registry/model/registry/RegistriesTest.java +++ b/core/src/test/java/google/registry/model/registry/RegistriesTest.java @@ -23,7 +23,7 @@ import com.google.common.net.InternetDomainName; import google.registry.model.registry.Registry.TldType; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -31,7 +31,8 @@ class RegistriesTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private void initTestTlds() { createTlds("foo", "a.b.c"); // Test a multipart tld. diff --git a/core/src/test/java/google/registry/model/registry/label/GenrulePremiumListTest.java b/core/src/test/java/google/registry/model/registry/label/GenrulePremiumListTest.java index e31b5228aae..3a3364b049e 100644 --- a/core/src/test/java/google/registry/model/registry/label/GenrulePremiumListTest.java +++ b/core/src/test/java/google/registry/model/registry/label/GenrulePremiumListTest.java @@ -21,7 +21,7 @@ import com.google.common.io.Resources; import com.google.common.reflect.ClassPath; import com.google.common.reflect.ClassPath.ResourceInfo; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.net.URL; import java.util.List; import org.junit.jupiter.api.Test; @@ -34,7 +34,8 @@ class GenrulePremiumListTest { private static final String LISTS_DIRECTORY = "google/registry/config/files/premium/"; @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testParse_allPremiumLists() throws Exception { diff --git a/core/src/test/java/google/registry/model/registry/label/GenruleReservedListTest.java b/core/src/test/java/google/registry/model/registry/label/GenruleReservedListTest.java index 0c56e7d24ea..e478ac7e0b5 100644 --- a/core/src/test/java/google/registry/model/registry/label/GenruleReservedListTest.java +++ b/core/src/test/java/google/registry/model/registry/label/GenruleReservedListTest.java @@ -21,7 +21,7 @@ import com.google.common.io.Resources; import com.google.common.reflect.ClassPath; import com.google.common.reflect.ClassPath.ResourceInfo; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.net.URL; import java.util.List; import org.junit.jupiter.api.Test; @@ -34,7 +34,8 @@ class GenruleReservedListTest { private static final String LISTS_DIRECTORY = "google/registry/config/files/reserved/"; @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testParse_allReservedLists() throws Exception { diff --git a/core/src/test/java/google/registry/model/registry/label/PremiumListTest.java b/core/src/test/java/google/registry/model/registry/label/PremiumListTest.java index 047bc29c0a5..e8d30d50fc7 100644 --- a/core/src/test/java/google/registry/model/registry/label/PremiumListTest.java +++ b/core/src/test/java/google/registry/model/registry/label/PremiumListTest.java @@ -27,7 +27,7 @@ import google.registry.model.registry.Registry; import google.registry.model.registry.label.PremiumList.PremiumListEntry; import google.registry.model.registry.label.PremiumList.PremiumListRevision; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.joda.money.Money; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -37,7 +37,8 @@ public class PremiumListTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @BeforeEach void before() { diff --git a/core/src/test/java/google/registry/model/registry/label/PremiumListUtilsTest.java b/core/src/test/java/google/registry/model/registry/label/PremiumListUtilsTest.java index 42a3d058f43..2d60411ed12 100644 --- a/core/src/test/java/google/registry/model/registry/label/PremiumListUtilsTest.java +++ b/core/src/test/java/google/registry/model/registry/label/PremiumListUtilsTest.java @@ -47,7 +47,7 @@ import google.registry.model.registry.Registry; import google.registry.model.registry.label.PremiumList.PremiumListEntry; import google.registry.model.registry.label.PremiumList.PremiumListRevision; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.TestCacheExtension; import java.util.Map; import org.joda.money.Money; @@ -59,7 +59,8 @@ public class PremiumListUtilsTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); // Set long persist times on caches so they can be tested (cache times default to 0 in tests). @RegisterExtension diff --git a/core/src/test/java/google/registry/model/registry/label/ReservedListTest.java b/core/src/test/java/google/registry/model/registry/label/ReservedListTest.java index 9ebb00ba063..632d2a23ec0 100644 --- a/core/src/test/java/google/registry/model/registry/label/ReservedListTest.java +++ b/core/src/test/java/google/registry/model/registry/label/ReservedListTest.java @@ -35,7 +35,7 @@ import google.registry.model.ofy.Ofy; import google.registry.model.registry.Registry; import google.registry.model.registry.label.ReservedList.ReservedListEntry; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import org.joda.time.DateTime; @@ -49,7 +49,8 @@ class ReservedListTest { @RegisterExtension final InjectRule inject = new InjectRule(); @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private FakeClock clock = new FakeClock(DateTime.parse("2010-01-01T10:00:00Z")); diff --git a/core/src/test/java/google/registry/model/server/KmsSecretRevisionTest.java b/core/src/test/java/google/registry/model/server/KmsSecretRevisionTest.java index b578c140f4b..dadc74fdf74 100644 --- a/core/src/test/java/google/registry/model/server/KmsSecretRevisionTest.java +++ b/core/src/test/java/google/registry/model/server/KmsSecretRevisionTest.java @@ -20,7 +20,7 @@ import static org.junit.Assert.assertThrows; import com.google.common.base.Strings; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -29,7 +29,8 @@ public class KmsSecretRevisionTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private KmsSecretRevision secretRevision; diff --git a/core/src/test/java/google/registry/model/server/KmsSecretTest.java b/core/src/test/java/google/registry/model/server/KmsSecretTest.java index 37208410b64..501ce906618 100644 --- a/core/src/test/java/google/registry/model/server/KmsSecretTest.java +++ b/core/src/test/java/google/registry/model/server/KmsSecretTest.java @@ -18,7 +18,7 @@ import static google.registry.model.ofy.ObjectifyService.ofy; import static google.registry.testing.DatastoreHelper.persistResource; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -26,7 +26,8 @@ public class KmsSecretTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private KmsSecret secret; private KmsSecretRevision secretRevision; diff --git a/core/src/test/java/google/registry/model/server/LockTest.java b/core/src/test/java/google/registry/model/server/LockTest.java index 8ba75042f30..b5e31e4d35a 100644 --- a/core/src/test/java/google/registry/model/server/LockTest.java +++ b/core/src/test/java/google/registry/model/server/LockTest.java @@ -28,7 +28,7 @@ import google.registry.model.ofy.Ofy; import google.registry.model.server.Lock.LockState; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import google.registry.util.RequestStatusChecker; @@ -51,8 +51,8 @@ public class LockTest { private LockMetrics origLockMetrics; @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withClock(clock).build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withClock(clock).build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/model/server/ServerSecretTest.java b/core/src/test/java/google/registry/model/server/ServerSecretTest.java index a052729a97c..cc74780e1d5 100644 --- a/core/src/test/java/google/registry/model/server/ServerSecretTest.java +++ b/core/src/test/java/google/registry/model/server/ServerSecretTest.java @@ -18,7 +18,7 @@ import static google.registry.model.ofy.ObjectifyService.ofy; import google.registry.model.ofy.RequestCapturingAsyncDatastoreService; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.util.UUID; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -28,7 +28,8 @@ public class ServerSecretTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @BeforeEach void beforeEach() { diff --git a/core/src/test/java/google/registry/model/smd/SignedMarkRevocationListTest.java b/core/src/test/java/google/registry/model/smd/SignedMarkRevocationListTest.java index a9a0134c610..ddcd9595425 100644 --- a/core/src/test/java/google/registry/model/smd/SignedMarkRevocationListTest.java +++ b/core/src/test/java/google/registry/model/smd/SignedMarkRevocationListTest.java @@ -23,7 +23,7 @@ import static org.junit.Assert.assertThrows; import com.google.common.collect.ImmutableMap; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import org.joda.time.DateTime; import org.junit.jupiter.api.Test; @@ -33,7 +33,8 @@ public class SignedMarkRevocationListTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private final FakeClock clock = new FakeClock(DateTime.parse("2013-01-01T00:00:00Z")); diff --git a/core/src/test/java/google/registry/model/tmch/ClaimsListShardTest.java b/core/src/test/java/google/registry/model/tmch/ClaimsListShardTest.java index 3079b88791c..547f2feeb29 100644 --- a/core/src/test/java/google/registry/model/tmch/ClaimsListShardTest.java +++ b/core/src/test/java/google/registry/model/tmch/ClaimsListShardTest.java @@ -26,7 +26,7 @@ import com.googlecode.objectify.Key; import google.registry.model.tmch.ClaimsListShard.ClaimsListRevision; import google.registry.model.tmch.ClaimsListShard.UnshardedSaveException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -38,7 +38,8 @@ public class ClaimsListShardTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private final int shardSize = 10; diff --git a/core/src/test/java/google/registry/model/tmch/TmchCrlTest.java b/core/src/test/java/google/registry/model/tmch/TmchCrlTest.java index 6ea28c71e2b..83d1bde5537 100644 --- a/core/src/test/java/google/registry/model/tmch/TmchCrlTest.java +++ b/core/src/test/java/google/registry/model/tmch/TmchCrlTest.java @@ -16,7 +16,7 @@ import static com.google.common.truth.Truth.assertThat; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -24,7 +24,8 @@ public class TmchCrlTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testSuccess() { diff --git a/core/src/test/java/google/registry/model/transfer/TransferDataTest.java b/core/src/test/java/google/registry/model/transfer/TransferDataTest.java index 6c58cb3e4ec..2ea01fd4bbe 100644 --- a/core/src/test/java/google/registry/model/transfer/TransferDataTest.java +++ b/core/src/test/java/google/registry/model/transfer/TransferDataTest.java @@ -23,7 +23,7 @@ import google.registry.model.eppcommon.Trid; import google.registry.model.poll.PollMessage; import google.registry.persistence.VKey; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.joda.time.DateTime; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -33,7 +33,8 @@ public class TransferDataTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private final DateTime now = DateTime.now(UTC); diff --git a/core/src/test/java/google/registry/model/translators/CommitLogRevisionsTranslatorFactoryTest.java b/core/src/test/java/google/registry/model/translators/CommitLogRevisionsTranslatorFactoryTest.java index bd926eacbca..5522ccdce4a 100644 --- a/core/src/test/java/google/registry/model/translators/CommitLogRevisionsTranslatorFactoryTest.java +++ b/core/src/test/java/google/registry/model/translators/CommitLogRevisionsTranslatorFactoryTest.java @@ -27,7 +27,7 @@ import google.registry.model.common.CrossTldSingleton; import google.registry.model.ofy.CommitLogManifest; import google.registry.model.ofy.Ofy; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import java.util.List; @@ -47,8 +47,8 @@ public static class TestObject extends CrossTldSingleton { } @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withOfyTestEntities(TestObject.class) .build(); diff --git a/core/src/test/java/google/registry/model/translators/StatusValueAdapterTest.java b/core/src/test/java/google/registry/model/translators/StatusValueAdapterTest.java index 33526aed52d..318c0621649 100644 --- a/core/src/test/java/google/registry/model/translators/StatusValueAdapterTest.java +++ b/core/src/test/java/google/registry/model/translators/StatusValueAdapterTest.java @@ -28,7 +28,7 @@ import google.registry.model.eppoutput.EppResponse; import google.registry.model.host.HostCommand; import google.registry.model.host.HostInfoData; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.EppLoader; import google.registry.xml.ValidationMode; import org.junit.jupiter.api.Test; @@ -38,7 +38,8 @@ public class StatusValueAdapterTest { // Needed to create HostResources. @RegisterExtension - public AppEngineRule appEngine = new AppEngineRule.Builder().withDatastoreAndCloudSql().build(); + public AppEngineExtension appEngine = + new AppEngineExtension.Builder().withDatastoreAndCloudSql().build(); @Test void testMarshalling() throws Exception { diff --git a/core/src/test/java/google/registry/model/translators/VKeyTranslatorFactoryTest.java b/core/src/test/java/google/registry/model/translators/VKeyTranslatorFactoryTest.java index 79e08084eb8..0399d108050 100644 --- a/core/src/test/java/google/registry/model/translators/VKeyTranslatorFactoryTest.java +++ b/core/src/test/java/google/registry/model/translators/VKeyTranslatorFactoryTest.java @@ -25,14 +25,14 @@ import google.registry.model.ofy.CommitLogCheckpointRoot; import google.registry.model.reporting.HistoryEntry; import google.registry.persistence.VKey; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; public class VKeyTranslatorFactoryTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastore().build(); + public final AppEngineExtension appEngine = AppEngineExtension.builder().withDatastore().build(); VKeyTranslatorFactoryTest() {} diff --git a/core/src/test/java/google/registry/module/backend/BackendServletTest.java b/core/src/test/java/google/registry/module/backend/BackendServletTest.java index e74cedddb44..096147b60ee 100644 --- a/core/src/test/java/google/registry/module/backend/BackendServletTest.java +++ b/core/src/test/java/google/registry/module/backend/BackendServletTest.java @@ -18,7 +18,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.junit.jupiter.api.Test; @@ -28,8 +28,8 @@ class BackendServletTest { @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withLocalModules().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withLocalModules().build(); private final HttpServletRequest req = mock(HttpServletRequest.class); private final HttpServletResponse rsp = mock(HttpServletResponse.class); diff --git a/core/src/test/java/google/registry/module/frontend/FrontendServletTest.java b/core/src/test/java/google/registry/module/frontend/FrontendServletTest.java index 6d2b72cd588..a35e8d918e0 100644 --- a/core/src/test/java/google/registry/module/frontend/FrontendServletTest.java +++ b/core/src/test/java/google/registry/module/frontend/FrontendServletTest.java @@ -18,7 +18,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.junit.jupiter.api.Test; @@ -28,8 +28,8 @@ class FrontendServletTest { @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withLocalModules().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withLocalModules().build(); private final HttpServletRequest req = mock(HttpServletRequest.class); private final HttpServletResponse rsp = mock(HttpServletResponse.class); diff --git a/core/src/test/java/google/registry/module/pubapi/PubApiServletTest.java b/core/src/test/java/google/registry/module/pubapi/PubApiServletTest.java index 5d013601e7f..699bd5c298c 100644 --- a/core/src/test/java/google/registry/module/pubapi/PubApiServletTest.java +++ b/core/src/test/java/google/registry/module/pubapi/PubApiServletTest.java @@ -18,7 +18,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.junit.jupiter.api.Test; @@ -28,8 +28,8 @@ class PubApiServletTest { @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withLocalModules().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withLocalModules().build(); private final HttpServletRequest req = mock(HttpServletRequest.class); private final HttpServletResponse rsp = mock(HttpServletResponse.class); diff --git a/core/src/test/java/google/registry/monitoring/whitebox/EppMetricTest.java b/core/src/test/java/google/registry/monitoring/whitebox/EppMetricTest.java index 96021810302..7f0570a19b6 100644 --- a/core/src/test/java/google/registry/monitoring/whitebox/EppMetricTest.java +++ b/core/src/test/java/google/registry/monitoring/whitebox/EppMetricTest.java @@ -19,7 +19,7 @@ import static google.registry.testing.DatastoreHelper.createTlds; import com.google.common.collect.ImmutableSet; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -28,7 +28,8 @@ class EppMetricTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void test_invalidTld_isRecordedAsInvalid() { diff --git a/core/src/test/java/google/registry/persistence/VKeyTest.java b/core/src/test/java/google/registry/persistence/VKeyTest.java index 1b8ef8e0965..9ec3f55bd3c 100644 --- a/core/src/test/java/google/registry/persistence/VKeyTest.java +++ b/core/src/test/java/google/registry/persistence/VKeyTest.java @@ -16,7 +16,7 @@ import static com.google.common.truth.Truth.assertThat; import com.googlecode.objectify.Key; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.TestObject; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -25,8 +25,8 @@ class VKeyTest { @RegisterExtension - final AppEngineRule appEngineRule = - AppEngineRule.builder() + final AppEngineExtension appEngineRule = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withOfyTestEntities(TestObject.class) .build(); diff --git a/core/src/test/java/google/registry/persistence/converter/InetAddressSetConverterTest.java b/core/src/test/java/google/registry/persistence/converter/InetAddressSetConverterTest.java index 308015ddadb..203325def62 100644 --- a/core/src/test/java/google/registry/persistence/converter/InetAddressSetConverterTest.java +++ b/core/src/test/java/google/registry/persistence/converter/InetAddressSetConverterTest.java @@ -22,7 +22,7 @@ import google.registry.model.ImmutableObject; import google.registry.persistence.VKey; import google.registry.schema.replay.EntityTest.EntityForTesting; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.net.InetAddress; import java.util.Set; import javax.annotation.Nullable; @@ -35,8 +35,8 @@ public class InetAddressSetConverterTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withJpaUnitTestEntities(InetAddressSetTestEntity.class) .build(); diff --git a/core/src/test/java/google/registry/persistence/transaction/JpaTestRules.java b/core/src/test/java/google/registry/persistence/transaction/JpaTestRules.java index c02fc3489c2..b821cbeb40f 100644 --- a/core/src/test/java/google/registry/persistence/transaction/JpaTestRules.java +++ b/core/src/test/java/google/registry/persistence/transaction/JpaTestRules.java @@ -33,10 +33,6 @@ import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.rules.RuleChain; -import org.junit.rules.TestRule; -import org.junit.runner.Description; -import org.junit.runners.model.Statement; /** * Holds specialized JUnit rules that start a test database server and provide {@link @@ -50,8 +46,8 @@ public class JpaTestRules { * Junit rule for integration tests with JPA framework, when the underlying database is populated * with the Nomulus Cloud SQL schema. */ - public static class JpaIntegrationTestRule extends JpaTransactionManagerRule { - private JpaIntegrationTestRule( + public static class JpaIntegrationTestExtension extends JpaTransactionManagerExtension { + private JpaIntegrationTestExtension( Clock clock, ImmutableList extraEntityClasses, ImmutableMap userProperties) { @@ -59,14 +55,11 @@ private JpaIntegrationTestRule( } } - private static final AssertionError EXCEPTION_OF_DISAPPROVAL = - new AssertionError("ಠ_ಠ Why are you writing new tests in JUnit 4?? ಠ_ಠ"); - /** * JUnit extension for unit tests with JPA framework, when the underlying database is populated by * the optional init script (which must not be the Nomulus Cloud SQL schema). */ - public static class JpaUnitTestExtension extends JpaTransactionManagerRule { + public static class JpaUnitTestExtension extends JpaTransactionManagerExtension { private JpaUnitTestExtension( Clock clock, Optional initScriptPath, @@ -74,61 +67,25 @@ private JpaUnitTestExtension( ImmutableMap userProperties) { super(clock, initScriptPath, false, extraEntityClasses, userProperties); } - - @Override - public void before() { - throw EXCEPTION_OF_DISAPPROVAL; - } - - @Override - public void after() { - throw EXCEPTION_OF_DISAPPROVAL; - } - } - - /** - * Junit rule for member classes of {@link - * google.registry.schema.integration.SqlIntegrationTestSuite}. In addition to providing a - * database through {@link JpaIntegrationTestRule}, it also keeps track of the test coverage of - * the declare JPA entities (in persistence.xml). - * - *

It is enforced through tests that all test classes using this rule must be included in the - * {@code SqlIntegrationTestSuite}. For the sake of efficiency, end-to-end tests that mainly test - * non-database functionalities should not use this rule. - */ - public static final class JpaIntegrationWithCoverageRule implements TestRule { - private final RuleChain ruleChain; - - JpaIntegrationWithCoverageRule(JpaIntegrationTestRule integrationTestRule) { - TestCaseWatcher watcher = new TestCaseWatcher(); - this.ruleChain = - RuleChain.outerRule(watcher) - .around(integrationTestRule) - .around(new JpaEntityCoverage(watcher::getTestClass)); - } - - @Override - public Statement apply(Statement base, Description description) { - return ruleChain.apply(base, description); - } } /** * JUnit extension for member classes of {@link * google.registry.schema.integration.SqlIntegrationTestSuite}. In addition to providing a - * database through {@link JpaIntegrationTestRule}, it also keeps track of the test coverage of - * the declared JPA entities (in persistence.xml). Per-class statistics are stored in static + * database through {@link JpaIntegrationTestExtension}, it also keeps track of the test coverage + * of the declared JPA entities (in persistence.xml). Per-class statistics are stored in static * variables. The SqlIntegrationTestSuite inspects the cumulative statistics after all test * classes have run. */ public static final class JpaIntegrationWithCoverageExtension implements BeforeEachCallback, AfterEachCallback { + private String currentTestClassName = null; private final JpaEntityCoverage jpaEntityCoverage = new JpaEntityCoverage(() -> this.currentTestClassName); - private final JpaIntegrationTestRule integrationTestRule; + private final JpaIntegrationTestExtension integrationTestRule; - JpaIntegrationWithCoverageExtension(JpaIntegrationTestRule integrationTestRule) { + JpaIntegrationWithCoverageExtension(JpaIntegrationTestExtension integrationTestRule) { this.integrationTestRule = integrationTestRule; } @@ -177,7 +134,7 @@ public Builder withEntityClass(Class... classes) { } /** Adds the specified property to those used to initialize the transaction manager. */ - public Builder withProperty(String name, String value) { + Builder withProperty(String name, String value) { this.userProperties.put(name, value); return this; } @@ -188,31 +145,22 @@ public Builder withProperty(String name, String value) { *

SQL logging is very noisy and disabled by default. This method maybe useful when * troubleshooting a specific test. */ - public Builder withSqlLogging() { + Builder withSqlLogging() { withProperty(Environment.SHOW_SQL, "true"); return this; } - /** Builds a {@link JpaIntegrationTestRule} instance. */ - public JpaIntegrationTestRule buildIntegrationTestRule() { - return new JpaIntegrationTestRule( + /** Builds a {@link JpaIntegrationTestExtension} instance. */ + public JpaIntegrationTestExtension buildIntegrationTestRule() { + return new JpaIntegrationTestExtension( clock == null ? new FakeClock(DateTime.now(UTC)) : clock, ImmutableList.copyOf(extraEntityClasses), ImmutableMap.copyOf(userProperties)); } /** - * Builds a {@link RuleChain} around {@link JpaIntegrationTestRule} that also checks test - * coverage of JPA entity classes. - */ - public JpaIntegrationWithCoverageRule buildIntegrationWithCoverageRule() { - checkState(initScript == null, "Integration tests do not accept initScript"); - return new JpaIntegrationWithCoverageRule(buildIntegrationTestRule()); - } - - /** - * JUnit extension that adapts {@link JpaIntegrationTestRule} for JUnit 5 and also checks test - * coverage of JPA entity classes. + * JUnit extension that adapts {@link JpaIntegrationTestExtension} for JUnit 5 and also checks + * test coverage of JPA entity classes. */ public JpaIntegrationWithCoverageExtension buildIntegrationWithCoverageExtension() { checkState(initScript == null, "Integration tests do not accept initScript"); diff --git a/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerRule.java b/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerExtension.java similarity index 94% rename from core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerRule.java rename to core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerExtension.java index 3e47499c695..e92c664d3c7 100644 --- a/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerRule.java +++ b/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerExtension.java @@ -31,6 +31,7 @@ import google.registry.persistence.NomulusPostgreSql; import google.registry.persistence.PersistenceModule; import google.registry.persistence.PersistenceXmlUtility; +import google.registry.persistence.transaction.JpaTestRules.JpaIntegrationTestExtension; import google.registry.persistence.transaction.JpaTestRules.JpaUnitTestExtension; import google.registry.util.Clock; import java.io.File; @@ -59,23 +60,22 @@ import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.rules.ExternalResource; import org.testcontainers.containers.JdbcDatabaseContainer; import org.testcontainers.containers.PostgreSQLContainer; /** - * Base class of JUnit Rules to provision {@link JpaTransactionManagerImpl} backed by {@link - * PostgreSQLContainer}. This class is not for direct use. Use specialized subclasses, {@link - * google.registry.persistence.transaction.JpaTestRules.JpaIntegrationTestRule} or {@link - * JpaUnitTestExtension} as befits the use case. + * Base class of JUnit extensions to provision {@link JpaTransactionManagerImpl} backed by {@link + * PostgreSQLContainer}. + * + *

This class is not for direct use. Use the specialized subclasses {@link + * JpaIntegrationTestExtension} or {@link JpaUnitTestExtension} as befits the use case. * *

This rule also replaces the {@link JpaTransactionManagerImpl} provided by {@link * TransactionManagerFactory} with the {@link JpaTransactionManagerImpl} generated by the rule * itself, so that all SQL queries will be sent to the database instance created by {@link * PostgreSQLContainer} to achieve test purpose. */ -abstract class JpaTransactionManagerRule extends ExternalResource - implements BeforeEachCallback, AfterEachCallback { +abstract class JpaTransactionManagerExtension implements BeforeEachCallback, AfterEachCallback { private static final String DB_CLEANUP_SQL_PATH = "google/registry/persistence/transaction/cleanup_database.sql"; @@ -108,7 +108,7 @@ abstract class JpaTransactionManagerRule extends ExternalResource // false. private boolean includeNomulusSchema = true; - JpaTransactionManagerRule( + JpaTransactionManagerExtension( Clock clock, Optional initScriptPath, boolean includeNomulusSchema, @@ -122,7 +122,7 @@ abstract class JpaTransactionManagerRule extends ExternalResource this.entityHash = getOrmEntityHash(initScriptPath, extraEntityClasses); } - JpaTransactionManagerRule( + JpaTransactionManagerExtension( Clock clock, Optional initScriptPath, ImmutableList extraEntityClasses, @@ -169,8 +169,7 @@ private void recreateSchema() throws Exception { File tempSqlFile = File.createTempFile("tempSqlFile", ".sql"); tempSqlFile.deleteOnExit(); exporter.export(extraEntityClasses, tempSqlFile); - executeSql( - new String(Files.readAllBytes(tempSqlFile.toPath()), StandardCharsets.UTF_8)); + executeSql(new String(Files.readAllBytes(tempSqlFile.toPath()), StandardCharsets.UTF_8)); } ImmutableMap properties = PersistenceModule.provideDefaultDatabaseConfigs(); @@ -215,16 +214,6 @@ public void afterEach(ExtensionContext context) { cachedTm = null; } - @Override - protected void before() throws Exception { - beforeEach(null); - } - - @Override - protected void after() { - afterEach(null); - } - public JdbcDatabaseContainer getDatabase() { return database; } diff --git a/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerRuleTest.java b/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerRuleTest.java index 09541af03ca..ccf2d6b1f25 100644 --- a/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerRuleTest.java +++ b/core/src/test/java/google/registry/persistence/transaction/JpaTransactionManagerRuleTest.java @@ -28,7 +28,10 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; -/** JUnit test for {@link JpaTransactionManagerRule}, with {@link JpaUnitTestExtension} as proxy. */ +/** + * JUnit test for {@link JpaTransactionManagerExtension}, with {@link JpaUnitTestExtension} as + * proxy. + */ public class JpaTransactionManagerRuleTest { @RegisterExtension diff --git a/core/src/test/java/google/registry/persistence/transaction/TransactionManagerTest.java b/core/src/test/java/google/registry/persistence/transaction/TransactionManagerTest.java index 262859d97f0..813f90b5e12 100644 --- a/core/src/test/java/google/registry/persistence/transaction/TransactionManagerTest.java +++ b/core/src/test/java/google/registry/persistence/transaction/TransactionManagerTest.java @@ -29,7 +29,7 @@ import google.registry.model.ofy.DatastoreTransactionManager; import google.registry.model.ofy.Ofy; import google.registry.persistence.VKey; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.DualDatabaseTest; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; @@ -60,8 +60,8 @@ public class TransactionManagerTest { @RegisterExtension public InjectRule inject = new InjectRule(); @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withClock(fakeClock) .withDatastoreAndCloudSql() .withOfyTestEntities(TestEntity.class) diff --git a/core/src/test/java/google/registry/persistence/transaction/TransactionTest.java b/core/src/test/java/google/registry/persistence/transaction/TransactionTest.java index 6451dc74179..66c3a8805a1 100644 --- a/core/src/test/java/google/registry/persistence/transaction/TransactionTest.java +++ b/core/src/test/java/google/registry/persistence/transaction/TransactionTest.java @@ -23,7 +23,7 @@ import com.googlecode.objectify.annotation.Id; import google.registry.model.ImmutableObject; import google.registry.persistence.VKey; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.io.ByteArrayOutputStream; import java.io.ObjectOutputStream; import java.io.StreamCorruptedException; @@ -34,8 +34,8 @@ public class TransactionTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withOfyTestEntities(TestEntity.class) .withJpaUnitTestEntities(TestEntity.class) diff --git a/core/src/test/java/google/registry/pricing/PricingEngineProxyTest.java b/core/src/test/java/google/registry/pricing/PricingEngineProxyTest.java index 0132ae14901..89110ef2ed6 100644 --- a/core/src/test/java/google/registry/pricing/PricingEngineProxyTest.java +++ b/core/src/test/java/google/registry/pricing/PricingEngineProxyTest.java @@ -28,7 +28,7 @@ import com.google.common.collect.ImmutableSortedMap; import google.registry.model.registry.Registry; import google.registry.model.registry.label.PremiumList; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.util.Clock; import org.joda.money.Money; @@ -41,7 +41,8 @@ public class PricingEngineProxyTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private Clock clock; diff --git a/core/src/test/java/google/registry/rdap/RdapActionBaseTestCase.java b/core/src/test/java/google/registry/rdap/RdapActionBaseTestCase.java index 80bcc7212c0..a8c320ffd17 100644 --- a/core/src/test/java/google/registry/rdap/RdapActionBaseTestCase.java +++ b/core/src/test/java/google/registry/rdap/RdapActionBaseTestCase.java @@ -30,7 +30,7 @@ import google.registry.request.auth.AuthLevel; import google.registry.request.auth.AuthResult; import google.registry.request.auth.UserAuthInfo; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeResponse; import google.registry.testing.InjectRule; @@ -46,7 +46,8 @@ abstract class RdapActionBaseTestCase { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/rdap/RdapJsonFormatterTest.java b/core/src/test/java/google/registry/rdap/RdapJsonFormatterTest.java index 7a2ac162698..bda33bee761 100644 --- a/core/src/test/java/google/registry/rdap/RdapJsonFormatterTest.java +++ b/core/src/test/java/google/registry/rdap/RdapJsonFormatterTest.java @@ -46,7 +46,7 @@ import google.registry.rdap.RdapObjectClasses.RdapEntity; import google.registry.rdap.RdapObjectClasses.ReplyPayloadBase; import google.registry.rdap.RdapObjectClasses.TopLevelReplyObject; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import org.joda.time.DateTime; @@ -58,7 +58,8 @@ class RdapJsonFormatterTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/rdap/UpdateRegistrarRdapBaseUrlsActionTest.java b/core/src/test/java/google/registry/rdap/UpdateRegistrarRdapBaseUrlsActionTest.java index a0f7ec34850..d24da7c077f 100644 --- a/core/src/test/java/google/registry/rdap/UpdateRegistrarRdapBaseUrlsActionTest.java +++ b/core/src/test/java/google/registry/rdap/UpdateRegistrarRdapBaseUrlsActionTest.java @@ -34,7 +34,7 @@ import google.registry.model.registrar.RegistrarAddress; import google.registry.model.registry.Registry; import google.registry.model.registry.Registry.TldType; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeEach; @@ -76,8 +76,8 @@ public final class UpdateRegistrarRdapBaseUrlsActionTest { + "\"version\":\"1.0\"}"; @RegisterExtension - public AppEngineRule appEngineRule = - new AppEngineRule.Builder().withDatastoreAndCloudSql().build(); + public AppEngineExtension appEngineRule = + new AppEngineExtension.Builder().withDatastoreAndCloudSql().build(); private static class TestHttpTransport extends MockHttpTransport { private final ArrayList requestsSent = new ArrayList<>(); diff --git a/core/src/test/java/google/registry/rde/BrdaCopyActionTest.java b/core/src/test/java/google/registry/rde/BrdaCopyActionTest.java index f0062e4d4ef..7e3a15fb933 100644 --- a/core/src/test/java/google/registry/rde/BrdaCopyActionTest.java +++ b/core/src/test/java/google/registry/rde/BrdaCopyActionTest.java @@ -29,7 +29,7 @@ import com.google.common.io.Files; import google.registry.gcs.GcsUtils; import google.registry.keyring.api.Keyring; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.BouncyCastleProviderExtension; import google.registry.testing.FakeKeyringModule; import google.registry.testing.GcsTestingUtils; @@ -65,7 +65,8 @@ public class BrdaCopyActionTest { public final BouncyCastleProviderExtension bouncy = new BouncyCastleProviderExtension(); @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension public final GpgSystemCommandExtension gpg = diff --git a/core/src/test/java/google/registry/rde/ContactResourceToXjcConverterTest.java b/core/src/test/java/google/registry/rde/ContactResourceToXjcConverterTest.java index 28a06bcf59d..2ad0d0cb84d 100644 --- a/core/src/test/java/google/registry/rde/ContactResourceToXjcConverterTest.java +++ b/core/src/test/java/google/registry/rde/ContactResourceToXjcConverterTest.java @@ -33,7 +33,7 @@ import google.registry.model.eppcommon.Trid; import google.registry.model.transfer.ContactTransferData; import google.registry.model.transfer.TransferStatus; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.xjc.contact.XjcContactPostalInfoEnumType; import google.registry.xjc.contact.XjcContactPostalInfoType; import google.registry.xjc.contact.XjcContactStatusType; @@ -60,7 +60,8 @@ public class ContactResourceToXjcConverterTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @BeforeEach void beforeEach() { diff --git a/core/src/test/java/google/registry/rde/DomainBaseToXjcConverterTest.java b/core/src/test/java/google/registry/rde/DomainBaseToXjcConverterTest.java index 2ac43ad4e24..13e09d07f14 100644 --- a/core/src/test/java/google/registry/rde/DomainBaseToXjcConverterTest.java +++ b/core/src/test/java/google/registry/rde/DomainBaseToXjcConverterTest.java @@ -55,7 +55,7 @@ import google.registry.model.reporting.HistoryEntry; import google.registry.model.transfer.DomainTransferData; import google.registry.model.transfer.TransferStatus; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.util.Idn; import google.registry.xjc.domain.XjcDomainStatusType; @@ -84,7 +84,8 @@ public class DomainBaseToXjcConverterTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private final DateTime now = DateTime.parse("2014-01-01T00:00:00Z"); private final FakeClock clock = new FakeClock(now); diff --git a/core/src/test/java/google/registry/rde/EscrowTaskRunnerTest.java b/core/src/test/java/google/registry/rde/EscrowTaskRunnerTest.java index df814ba7f60..82a826ecfca 100644 --- a/core/src/test/java/google/registry/rde/EscrowTaskRunnerTest.java +++ b/core/src/test/java/google/registry/rde/EscrowTaskRunnerTest.java @@ -30,7 +30,7 @@ import google.registry.rde.EscrowTaskRunner.EscrowTask; import google.registry.request.HttpException.NoContentException; import google.registry.request.HttpException.ServiceUnavailableException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeLockHandler; import org.joda.time.DateTime; @@ -44,8 +44,8 @@ public class EscrowTaskRunnerTest { @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); private final EscrowTask task = mock(EscrowTask.class); private final FakeClock clock = new FakeClock(DateTime.parse("2000-01-01TZ")); diff --git a/core/src/test/java/google/registry/rde/HostResourceToXjcConverterTest.java b/core/src/test/java/google/registry/rde/HostResourceToXjcConverterTest.java index 57542fea960..7fcc6dbc278 100644 --- a/core/src/test/java/google/registry/rde/HostResourceToXjcConverterTest.java +++ b/core/src/test/java/google/registry/rde/HostResourceToXjcConverterTest.java @@ -26,7 +26,7 @@ import google.registry.model.domain.DomainBase; import google.registry.model.eppcommon.StatusValue; import google.registry.model.host.HostResource; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.xjc.host.XjcHostStatusType; import google.registry.xjc.host.XjcHostStatusValueType; import google.registry.xjc.rdehost.XjcRdeHost; @@ -46,7 +46,8 @@ public class HostResourceToXjcConverterTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @BeforeEach void beforeEach() { diff --git a/core/src/test/java/google/registry/rde/PendingDepositCheckerTest.java b/core/src/test/java/google/registry/rde/PendingDepositCheckerTest.java index a01fe2f1c37..04aa57fc202 100644 --- a/core/src/test/java/google/registry/rde/PendingDepositCheckerTest.java +++ b/core/src/test/java/google/registry/rde/PendingDepositCheckerTest.java @@ -31,7 +31,7 @@ import google.registry.model.ofy.Ofy; import google.registry.model.registry.Registry; import google.registry.schema.cursor.CursorDao; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import org.joda.time.DateTime; @@ -45,7 +45,8 @@ public class PendingDepositCheckerTest { @RegisterExtension public final InjectRule inject = new InjectRule(); @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private final FakeClock clock = new FakeClock(); private final PendingDepositChecker checker = new PendingDepositChecker(); diff --git a/core/src/test/java/google/registry/rde/RdeMarshallerTest.java b/core/src/test/java/google/registry/rde/RdeMarshallerTest.java index abc32170840..39e56b1a881 100644 --- a/core/src/test/java/google/registry/rde/RdeMarshallerTest.java +++ b/core/src/test/java/google/registry/rde/RdeMarshallerTest.java @@ -18,7 +18,7 @@ import static google.registry.testing.DatastoreHelper.loadRegistrar; import static google.registry.xml.ValidationMode.STRICT; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.xml.XmlTestUtils; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -30,7 +30,8 @@ public class RdeMarshallerTest { "\n"; @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testMarshalRegistrar_validData_producesXmlFragment() throws Exception { diff --git a/core/src/test/java/google/registry/rde/RdeReportActionTest.java b/core/src/test/java/google/registry/rde/RdeReportActionTest.java index 57a42cad09f..74815351753 100644 --- a/core/src/test/java/google/registry/rde/RdeReportActionTest.java +++ b/core/src/test/java/google/registry/rde/RdeReportActionTest.java @@ -49,7 +49,7 @@ import google.registry.model.registry.Registry; import google.registry.request.HttpException.InternalServerErrorException; import google.registry.request.HttpException.NoContentException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.BouncyCastleProviderExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeKeyringModule; @@ -80,7 +80,8 @@ public class RdeReportActionTest { public final BouncyCastleProviderExtension bouncy = new BouncyCastleProviderExtension(); @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private final FakeResponse response = new FakeResponse(); private final EscrowTaskRunner runner = mock(EscrowTaskRunner.class); diff --git a/core/src/test/java/google/registry/rde/RdeStagingMapperTest.java b/core/src/test/java/google/registry/rde/RdeStagingMapperTest.java index a6e696a6bee..605a207cac9 100644 --- a/core/src/test/java/google/registry/rde/RdeStagingMapperTest.java +++ b/core/src/test/java/google/registry/rde/RdeStagingMapperTest.java @@ -26,7 +26,7 @@ import com.google.common.collect.ImmutableSetMultimap; import google.registry.model.registrar.Registrar; import google.registry.model.registrar.Registrar.State; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.xml.ValidationMode; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -54,7 +54,8 @@ class RdeStagingMapperTest { ArgumentCaptor.forClass(DepositFragment.class); @RegisterExtension - AppEngineRule appEngineRule = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + AppEngineExtension appEngineRule = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private RdeStagingMapper rdeStagingMapper; diff --git a/core/src/test/java/google/registry/rde/RdeStagingReducerTest.java b/core/src/test/java/google/registry/rde/RdeStagingReducerTest.java index b787a32ad6d..60740c6ed57 100644 --- a/core/src/test/java/google/registry/rde/RdeStagingReducerTest.java +++ b/core/src/test/java/google/registry/rde/RdeStagingReducerTest.java @@ -40,7 +40,7 @@ import google.registry.model.registry.Registry; import google.registry.request.RequestParameters; import google.registry.schema.cursor.CursorDao; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeKeyringModule; import google.registry.testing.FakeLockHandler; @@ -64,8 +64,8 @@ public class RdeStagingReducerTest { @RegisterExtension - AppEngineRule appEngineRule = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + AppEngineExtension appEngineRule = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); private static final String GCS_BUCKET = "test-rde-bucket"; private static final GcsService gcsService = GcsServiceFactory.createGcsService(); diff --git a/core/src/test/java/google/registry/rde/RdeUploadActionTest.java b/core/src/test/java/google/registry/rde/RdeUploadActionTest.java index fcf528841e1..07298743357 100644 --- a/core/src/test/java/google/registry/rde/RdeUploadActionTest.java +++ b/core/src/test/java/google/registry/rde/RdeUploadActionTest.java @@ -63,7 +63,7 @@ import google.registry.rde.JSchSshSession.JSchSshSessionFactory; import google.registry.request.HttpException.NoContentException; import google.registry.request.RequestParameters; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.BouncyCastleProviderExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeKeyringModule; @@ -126,8 +126,8 @@ public class RdeUploadActionTest { RdeTestData.loadBytes("pgp-private-keyring-escrow.asc")); @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); private final FakeResponse response = new FakeResponse(); private final EscrowTaskRunner runner = mock(EscrowTaskRunner.class); diff --git a/core/src/test/java/google/registry/rde/RegistrarToXjcConverterTest.java b/core/src/test/java/google/registry/rde/RegistrarToXjcConverterTest.java index def31e74992..dfd52757f00 100644 --- a/core/src/test/java/google/registry/rde/RegistrarToXjcConverterTest.java +++ b/core/src/test/java/google/registry/rde/RegistrarToXjcConverterTest.java @@ -25,7 +25,7 @@ import google.registry.model.registrar.Registrar; import google.registry.model.registrar.Registrar.State; import google.registry.model.registrar.RegistrarAddress; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import google.registry.xjc.rderegistrar.XjcRdeRegistrar; @@ -48,7 +48,8 @@ public class RegistrarToXjcConverterTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/reporting/billing/CopyDetailReportsActionTest.java b/core/src/test/java/google/registry/reporting/billing/CopyDetailReportsActionTest.java index 9c2d3fa1c29..ba69ab42e48 100644 --- a/core/src/test/java/google/registry/reporting/billing/CopyDetailReportsActionTest.java +++ b/core/src/test/java/google/registry/reporting/billing/CopyDetailReportsActionTest.java @@ -35,7 +35,7 @@ import com.google.common.net.MediaType; import google.registry.gcs.GcsUtils; import google.registry.storage.drive.DriveConnection; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeResponse; import google.registry.testing.FakeSleeper; @@ -49,7 +49,8 @@ class CopyDetailReportsActionTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private final GcsService gcsService = GcsServiceFactory.createGcsService(); private final GcsUtils gcsUtils = new GcsUtils(gcsService, 1024); diff --git a/core/src/test/java/google/registry/reporting/billing/GenerateInvoicesActionTest.java b/core/src/test/java/google/registry/reporting/billing/GenerateInvoicesActionTest.java index 93c4a180268..c5813f833c2 100644 --- a/core/src/test/java/google/registry/reporting/billing/GenerateInvoicesActionTest.java +++ b/core/src/test/java/google/registry/reporting/billing/GenerateInvoicesActionTest.java @@ -31,7 +31,7 @@ import com.google.api.services.dataflow.model.LaunchTemplateResponse; import com.google.api.services.dataflow.model.RuntimeEnvironment; import com.google.common.collect.ImmutableMap; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeResponse; import google.registry.testing.TaskQueueHelper.TaskMatcher; import java.io.IOException; @@ -44,7 +44,7 @@ class GenerateInvoicesActionTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withTaskQueue().build(); + final AppEngineExtension appEngine = AppEngineExtension.builder().withTaskQueue().build(); private Dataflow dataflow; private Projects projects; diff --git a/core/src/test/java/google/registry/reporting/billing/PublishInvoicesActionTest.java b/core/src/test/java/google/registry/reporting/billing/PublishInvoicesActionTest.java index b5b4c8886ed..701a8fb69f6 100644 --- a/core/src/test/java/google/registry/reporting/billing/PublishInvoicesActionTest.java +++ b/core/src/test/java/google/registry/reporting/billing/PublishInvoicesActionTest.java @@ -30,7 +30,7 @@ import com.google.api.services.dataflow.Dataflow.Projects.Jobs.Get; import com.google.api.services.dataflow.model.Job; import com.google.common.net.MediaType; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeResponse; import google.registry.testing.TaskQueueHelper.TaskMatcher; import java.io.IOException; @@ -50,7 +50,7 @@ class PublishInvoicesActionTest { private PublishInvoicesAction uploadAction; @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withTaskQueue().build(); + final AppEngineExtension appEngine = AppEngineExtension.builder().withTaskQueue().build(); @BeforeEach void beforeEach() throws IOException { diff --git a/core/src/test/java/google/registry/reporting/icann/IcannHttpReporterTest.java b/core/src/test/java/google/registry/reporting/icann/IcannHttpReporterTest.java index f3ff338ce4e..2a852e18e10 100644 --- a/core/src/test/java/google/registry/reporting/icann/IcannHttpReporterTest.java +++ b/core/src/test/java/google/registry/reporting/icann/IcannHttpReporterTest.java @@ -29,7 +29,7 @@ import com.google.api.client.util.Base64; import com.google.api.client.util.StringUtils; import com.google.common.io.ByteSource; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.io.IOException; import java.util.List; import java.util.Map; @@ -47,7 +47,8 @@ class IcannHttpReporterTest { private MockLowLevelHttpRequest mockRequest; @RegisterExtension - AppEngineRule appEngineRule = new AppEngineRule.Builder().withDatastoreAndCloudSql().build(); + AppEngineExtension appEngineRule = + new AppEngineExtension.Builder().withDatastoreAndCloudSql().build(); private MockHttpTransport createMockTransport(final ByteSource iirdeaResponse) { return new MockHttpTransport() { diff --git a/core/src/test/java/google/registry/reporting/icann/IcannReportingStagerTest.java b/core/src/test/java/google/registry/reporting/icann/IcannReportingStagerTest.java index 3870c1fef61..67e68114deb 100644 --- a/core/src/test/java/google/registry/reporting/icann/IcannReportingStagerTest.java +++ b/core/src/test/java/google/registry/reporting/icann/IcannReportingStagerTest.java @@ -33,7 +33,7 @@ import google.registry.bigquery.BigqueryUtils.TableType; import google.registry.gcs.GcsUtils; import google.registry.reporting.icann.IcannReportingModule.ReportType; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeResponse; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; @@ -51,8 +51,8 @@ class IcannReportingStagerTest { private String subdir = "icann/monthly/2017-06"; @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withLocalModules().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withLocalModules().build(); private IcannReportingStager createStager() { IcannReportingStager action = new IcannReportingStager(); diff --git a/core/src/test/java/google/registry/reporting/icann/IcannReportingStagingActionTest.java b/core/src/test/java/google/registry/reporting/icann/IcannReportingStagingActionTest.java index 3d96225fe5e..1ba45a3330d 100644 --- a/core/src/test/java/google/registry/reporting/icann/IcannReportingStagingActionTest.java +++ b/core/src/test/java/google/registry/reporting/icann/IcannReportingStagingActionTest.java @@ -28,7 +28,7 @@ import google.registry.bigquery.BigqueryJobFailureException; import google.registry.reporting.icann.IcannReportingModule.ReportType; import google.registry.request.HttpException.BadRequestException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeResponse; import google.registry.testing.FakeSleeper; @@ -53,8 +53,12 @@ class IcannReportingStagingActionTest { private IcannReportingStagingAction action; @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withLocalModules().withTaskQueue().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder() + .withDatastoreAndCloudSql() + .withLocalModules() + .withTaskQueue() + .build(); @BeforeEach void beforeEach() throws Exception { diff --git a/core/src/test/java/google/registry/reporting/icann/IcannReportingUploadActionTest.java b/core/src/test/java/google/registry/reporting/icann/IcannReportingUploadActionTest.java index a8cc85012d1..2e2766d6b65 100644 --- a/core/src/test/java/google/registry/reporting/icann/IcannReportingUploadActionTest.java +++ b/core/src/test/java/google/registry/reporting/icann/IcannReportingUploadActionTest.java @@ -37,7 +37,7 @@ import google.registry.model.common.Cursor.CursorType; import google.registry.model.registry.Registry; import google.registry.request.HttpException.ServiceUnavailableException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeLockHandler; import google.registry.testing.FakeResponse; @@ -58,7 +58,8 @@ class IcannReportingUploadActionTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private static final byte[] PAYLOAD_SUCCESS = "test,csv\n13,37".getBytes(UTF_8); private static final byte[] PAYLOAD_FAIL = "ahah,csv\n12,34".getBytes(UTF_8); diff --git a/core/src/test/java/google/registry/reporting/spec11/GenerateSpec11ReportActionTest.java b/core/src/test/java/google/registry/reporting/spec11/GenerateSpec11ReportActionTest.java index fb702a8c7fc..d2ff9226c88 100644 --- a/core/src/test/java/google/registry/reporting/spec11/GenerateSpec11ReportActionTest.java +++ b/core/src/test/java/google/registry/reporting/spec11/GenerateSpec11ReportActionTest.java @@ -31,7 +31,7 @@ import com.google.api.services.dataflow.model.RuntimeEnvironment; import com.google.common.collect.ImmutableMap; import com.google.common.net.MediaType; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeResponse; import google.registry.testing.TaskQueueHelper.TaskMatcher; import java.io.IOException; @@ -44,7 +44,7 @@ class GenerateSpec11ReportActionTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withTaskQueue().build(); + final AppEngineExtension appEngine = AppEngineExtension.builder().withTaskQueue().build(); private FakeResponse response; private Dataflow dataflow; diff --git a/core/src/test/java/google/registry/reporting/spec11/Spec11EmailUtilsTest.java b/core/src/test/java/google/registry/reporting/spec11/Spec11EmailUtilsTest.java index 956d4c47a49..ec0fdd1ec22 100644 --- a/core/src/test/java/google/registry/reporting/spec11/Spec11EmailUtilsTest.java +++ b/core/src/test/java/google/registry/reporting/spec11/Spec11EmailUtilsTest.java @@ -38,7 +38,7 @@ import google.registry.model.domain.DomainBase; import google.registry.model.host.HostResource; import google.registry.reporting.spec11.soy.Spec11EmailSoyInfo; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.util.EmailMessage; import google.registry.util.SendEmailService; import java.util.LinkedHashSet; @@ -93,7 +93,8 @@ class Spec11EmailUtilsTest { + " notice, please contact abuse@test.com.

"; @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private SendEmailService emailService; private Spec11EmailUtils emailUtils; @@ -309,7 +310,7 @@ void testSuccess_sendAlertEmail() throws Exception { void testSuccess_useWhoisAbuseEmailIfAvailable() throws Exception { // if John Doe is the whois abuse contact, email them instead of the regular email persistResource( - AppEngineRule.makeRegistrarContact2() + AppEngineExtension.makeRegistrarContact2() .asBuilder() .setEmailAddress("johndoe@theregistrar.com") .setVisibleInDomainWhoisAsAbuse(true) diff --git a/core/src/test/java/google/registry/request/RequestHandlerTest.java b/core/src/test/java/google/registry/request/RequestHandlerTest.java index 73d0add5f42..6169b0b2e82 100644 --- a/core/src/test/java/google/registry/request/RequestHandlerTest.java +++ b/core/src/test/java/google/registry/request/RequestHandlerTest.java @@ -35,7 +35,7 @@ import google.registry.request.auth.AuthResult; import google.registry.request.auth.RequestAuthenticator; import google.registry.request.auth.UserAuthInfo; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.UserInfo; import java.io.PrintWriter; import java.io.StringWriter; @@ -51,8 +51,8 @@ public final class RequestHandlerTest { @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder() + final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withUserService(UserInfo.create("test@example.com", "test@example.com")) .build(); diff --git a/core/src/test/java/google/registry/request/auth/AuthenticatedRegistrarAccessorTest.java b/core/src/test/java/google/registry/request/auth/AuthenticatedRegistrarAccessorTest.java index a441cc5ba8a..22c9c1878d9 100644 --- a/core/src/test/java/google/registry/request/auth/AuthenticatedRegistrarAccessorTest.java +++ b/core/src/test/java/google/registry/request/auth/AuthenticatedRegistrarAccessorTest.java @@ -17,7 +17,7 @@ import static com.google.common.truth.Truth.assertThat; import static google.registry.request.auth.AuthenticatedRegistrarAccessor.Role.ADMIN; import static google.registry.request.auth.AuthenticatedRegistrarAccessor.Role.OWNER; -import static google.registry.testing.AppEngineRule.THE_REGISTRAR_GAE_USER_ID; +import static google.registry.testing.AppEngineExtension.THE_REGISTRAR_GAE_USER_ID; import static google.registry.testing.DatastoreHelper.loadRegistrar; import static google.registry.testing.DatastoreHelper.persistResource; import static google.registry.testing.LogsSubject.assertAboutLogs; @@ -37,7 +37,7 @@ import google.registry.model.registrar.Registrar; import google.registry.model.registrar.Registrar.State; import google.registry.request.auth.AuthenticatedRegistrarAccessor.RegistrarAccessDeniedException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.InjectRule; import java.util.Optional; import java.util.logging.Level; @@ -59,7 +59,8 @@ class AuthenticatedRegistrarAccessorTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/request/auth/LegacyAuthenticationMechanismTest.java b/core/src/test/java/google/registry/request/auth/LegacyAuthenticationMechanismTest.java index ccbe3a50c32..293db8352f2 100644 --- a/core/src/test/java/google/registry/request/auth/LegacyAuthenticationMechanismTest.java +++ b/core/src/test/java/google/registry/request/auth/LegacyAuthenticationMechanismTest.java @@ -25,7 +25,7 @@ import com.google.appengine.api.users.User; import com.google.appengine.api.users.UserService; import google.registry.security.XsrfTokenManager; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import javax.servlet.http.HttpServletRequest; import org.junit.jupiter.api.AfterEach; @@ -43,7 +43,8 @@ final class LegacyAuthenticationMechanismTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Mock private UserService userService; @Mock private HttpServletRequest req; diff --git a/core/src/test/java/google/registry/request/auth/RequestAuthenticatorTest.java b/core/src/test/java/google/registry/request/auth/RequestAuthenticatorTest.java index 7d514d7c4d4..85bbe607fa7 100644 --- a/core/src/test/java/google/registry/request/auth/RequestAuthenticatorTest.java +++ b/core/src/test/java/google/registry/request/auth/RequestAuthenticatorTest.java @@ -30,7 +30,7 @@ import google.registry.request.auth.RequestAuthenticator.AuthSettings; import google.registry.request.auth.RequestAuthenticator.UserPolicy; import google.registry.security.XsrfTokenManager; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeOAuthService; import google.registry.testing.FakeUserService; @@ -43,7 +43,7 @@ /** Unit tests for {@link RequestAuthenticator}. */ class RequestAuthenticatorTest { - @RegisterExtension final AppEngineRule appEngine = AppEngineRule.builder().build(); + @RegisterExtension final AppEngineExtension appEngine = AppEngineExtension.builder().build(); private static final AuthSettings AUTH_NONE = AuthSettings.create( ImmutableList.of(AuthMethod.INTERNAL), diff --git a/core/src/test/java/google/registry/request/lock/LockHandlerImplTest.java b/core/src/test/java/google/registry/request/lock/LockHandlerImplTest.java index d0e231a0e56..d9b3ce77d5a 100644 --- a/core/src/test/java/google/registry/request/lock/LockHandlerImplTest.java +++ b/core/src/test/java/google/registry/request/lock/LockHandlerImplTest.java @@ -21,7 +21,7 @@ import static org.mockito.Mockito.verify; import google.registry.model.server.Lock; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.util.RequestStatusCheckerImpl; import java.util.Optional; @@ -30,21 +30,17 @@ import javax.annotation.Nullable; import org.joda.time.DateTime; import org.joda.time.Duration; -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.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link LockHandler}. */ -@RunWith(JUnit4.class) -public final class LockHandlerImplTest { +final class LockHandlerImplTest { private static final Duration ONE_DAY = Duration.standardDays(1); private final FakeClock clock = new FakeClock(DateTime.parse("2001-08-29T12:20:00Z")); - @Rule public final AppEngineRule appEngine = AppEngineRule.builder().build(); + @RegisterExtension final AppEngineExtension appEngine = AppEngineExtension.builder().build(); private static class CountingCallable implements Callable { int numCalled = 0; @@ -87,11 +83,8 @@ Optional acquire(String resourceName, String tld, Duration leaseLength) { return lockHandler.executeWithLocks(callable, "tld", ONE_DAY, "resourceName"); } - @Before public void setUp() { - } - @Test - public void testLockSucceeds() { + void testLockSucceeds() { Lock lock = mock(Lock.class); CountingCallable countingCallable = new CountingCallable(); assertThat(executeWithLocks(countingCallable, lock)).isTrue(); @@ -100,7 +93,7 @@ public void testLockSucceeds() { } @Test - public void testLockSucceeds_uncheckedException() { + void testLockSucceeds_uncheckedException() { Lock lock = mock(Lock.class); Exception expectedException = new RuntimeException("test"); RuntimeException exception = @@ -112,7 +105,7 @@ public void testLockSucceeds_uncheckedException() { } @Test - public void testLockSucceeds_timeoutException() { + void testLockSucceeds_timeoutException() { Lock lock = mock(Lock.class); Exception expectedException = new TimeoutException("test"); RuntimeException thrown = @@ -129,7 +122,7 @@ public void testLockSucceeds_timeoutException() { } @Test - public void testLockSucceeds_checkedException() { + void testLockSucceeds_checkedException() { Lock lock = mock(Lock.class); Exception expectedException = new Exception("test"); RuntimeException exception = @@ -141,7 +134,7 @@ public void testLockSucceeds_checkedException() { } @Test - public void testLockFailed() { + void testLockFailed() { Lock lock = null; CountingCallable countingCallable = new CountingCallable(); assertThat(executeWithLocks(countingCallable, lock)).isFalse(); diff --git a/core/src/test/java/google/registry/schema/cursor/CursorDaoTest.java b/core/src/test/java/google/registry/schema/cursor/CursorDaoTest.java index bb2dbe68ab9..9d2d3e17e31 100644 --- a/core/src/test/java/google/registry/schema/cursor/CursorDaoTest.java +++ b/core/src/test/java/google/registry/schema/cursor/CursorDaoTest.java @@ -25,7 +25,7 @@ import com.google.common.testing.TestLogHandler; import google.registry.model.common.Cursor.CursorType; import google.registry.model.registry.Registry; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import java.util.List; import java.util.logging.Level; @@ -42,8 +42,8 @@ public class CursorDaoTest { private final Logger loggerToIntercept = Logger.getLogger(CursorDao.class.getCanonicalName()); @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .enableJpaEntityCoverageCheck(true) .withClock(fakeClock) diff --git a/core/src/test/java/google/registry/schema/integration/SqlIntegrationMembershipTest.java b/core/src/test/java/google/registry/schema/integration/SqlIntegrationMembershipTest.java deleted file mode 100644 index 8571000a0c9..00000000000 --- a/core/src/test/java/google/registry/schema/integration/SqlIntegrationMembershipTest.java +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2018 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.schema.integration; - -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Sets; -import com.google.common.collect.Sets.SetView; -import com.google.common.truth.Expect; -import google.registry.persistence.transaction.JpaTestRules.JpaIntegrationWithCoverageRule; -import io.github.classgraph.ClassGraph; -import io.github.classgraph.ScanResult; -import java.lang.reflect.Field; -import java.util.stream.Stream; -import org.junit.ClassRule; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; -import org.junit.runners.Suite.SuiteClasses; - -/** - * Verifies that {@link SqlIntegrationTestSuite} includes all integration tests for JPA entities and - * nothing else. The test suite is used in server/schema compatibility tests between releases. - * - *

All JPA entity test classes are expected to have a field with type {@link - * JpaIntegrationWithCoverageRule}. - */ -@RunWith(JUnit4.class) -public class SqlIntegrationMembershipTest { - - @ClassRule public static final Expect expect = Expect.create(); - - // TODO(shicong): Investigate another way to check the membership - @Test - @Ignore - public void sqlIntegrationMembershipComplete() { - ImmutableSet sqlDependentTests; - try (ScanResult scanResult = - new ClassGraph().enableAnnotationInfo().whitelistPackages("google.registry").scan()) { - sqlDependentTests = - scanResult.getClassesWithAnnotation(RunWith.class.getName()).stream() - .filter(clazz -> clazz.getSimpleName().endsWith("Test")) - .map(clazz -> clazz.loadClass()) - .filter(SqlIntegrationMembershipTest::isSqlDependent) - .map(Class::getName) - .collect(ImmutableSet.toImmutableSet()); - } - ImmutableSet declaredTests = - Stream.of(SqlIntegrationTestSuite.class.getAnnotation(SuiteClasses.class).value()) - .map(Class::getName) - .collect(ImmutableSet.toImmutableSet()); - SetView undeclaredTests = Sets.difference(sqlDependentTests, declaredTests); - expect - .withMessage( - "Undeclared sql-dependent tests found. " - + "Please add them to SqlIntegrationTestSuite.java.") - .that(undeclaredTests) - .isEmpty(); - SetView unnecessaryDeclarations = Sets.difference(declaredTests, sqlDependentTests); - expect - .withMessage("Found tests that should not be included in SqlIntegrationTestSuite.java.") - .that(unnecessaryDeclarations) - .isEmpty(); - } - - private static boolean isSqlDependent(Class testClass) { - for (Class clazz = testClass; clazz != null; clazz = clazz.getSuperclass()) { - if (Stream.of(clazz.getDeclaredFields()) - .map(Field::getType) - .anyMatch(JpaIntegrationWithCoverageRule.class::equals)) { - return true; - } - } - return false; - } -} diff --git a/core/src/test/java/google/registry/schema/integration/SqlIntegrationTestSuite.java b/core/src/test/java/google/registry/schema/integration/SqlIntegrationTestSuite.java index b6417e4eac2..4e5476415d8 100644 --- a/core/src/test/java/google/registry/schema/integration/SqlIntegrationTestSuite.java +++ b/core/src/test/java/google/registry/schema/integration/SqlIntegrationTestSuite.java @@ -33,6 +33,7 @@ import google.registry.schema.server.LockDaoTest; import google.registry.schema.tld.PremiumListDaoTest; import google.registry.schema.tmch.ClaimsListDaoTest; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -45,13 +46,9 @@ * server/schema compatibility tests between releases. * *

Suite members are typically DAO tests, which perform simple create/update/delete operations on - * JPA entities. Each member class must use the {@link - * google.registry.persistence.transaction.JpaTestRules.JpaIntegrationWithCoverageRule} (either - * directly or through a rule chain) and have at least one test method that persists a JPA entity - * declared in persistence.xml. - * - *

Membership of this suite is monitored by the checks in {@link #checkJpaEntityCoverage()} and - * {@link SqlIntegrationMembershipTest#sqlIntegrationMembershipComplete()}. + * JPA entities. Each member class must call {@link + * AppEngineExtension.Builder#enableJpaEntityCoverageCheck} and have at least one test method that + * persists a JPA entity declared in persistence.xml. * *

Note that with {@code JpaIntegrationWithCoverageRule}, each method starts with an empty * database. Therefore this is not the right place for verifying backward data compatibility in diff --git a/core/src/test/java/google/registry/schema/replay/EntityTest.java b/core/src/test/java/google/registry/schema/replay/EntityTest.java index 86d5f5166f4..bc6c88a5fba 100644 --- a/core/src/test/java/google/registry/schema/replay/EntityTest.java +++ b/core/src/test/java/google/registry/schema/replay/EntityTest.java @@ -26,8 +26,8 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; /** * Test to verify classes implement {@link SqlEntity} and {@link DatastoreEntity} when they should. @@ -35,8 +35,8 @@ public class EntityTest { @Test - @Ignore("This won't be done until b/152410794 is done, since it requires many entity changes") - public void testSqlEntityPersistence() { + @Disabled("This won't be done until b/152410794 is done, since it requires many entity changes") + void testSqlEntityPersistence() { try (ScanResult scanResult = new ClassGraph().enableAnnotationInfo().whitelistPackages("google.registry").scan()) { // All javax.persistence entities must implement SqlEntity and vice versa diff --git a/core/src/test/java/google/registry/schema/tld/PremiumListDaoTest.java b/core/src/test/java/google/registry/schema/tld/PremiumListDaoTest.java index d8fb3a90f51..fb0342a25c8 100644 --- a/core/src/test/java/google/registry/schema/tld/PremiumListDaoTest.java +++ b/core/src/test/java/google/registry/schema/tld/PremiumListDaoTest.java @@ -29,7 +29,7 @@ import com.googlecode.objectify.Key; import google.registry.model.registry.Registry; import google.registry.model.registry.label.PremiumList; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import java.math.BigDecimal; import java.util.Optional; @@ -46,8 +46,8 @@ public class PremiumListDaoTest { private final FakeClock fakeClock = new FakeClock(); @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .enableJpaEntityCoverageCheck(true) .withClock(fakeClock) diff --git a/core/src/test/java/google/registry/schema/tld/PremiumListUtilsTest.java b/core/src/test/java/google/registry/schema/tld/PremiumListUtilsTest.java index 419d9aff218..d6eca975465 100644 --- a/core/src/test/java/google/registry/schema/tld/PremiumListUtilsTest.java +++ b/core/src/test/java/google/registry/schema/tld/PremiumListUtilsTest.java @@ -19,22 +19,20 @@ import static org.junit.Assert.assertThrows; import google.registry.model.registry.label.PremiumList; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.math.BigDecimal; -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 PremiumListUtils}. */ -@RunWith(JUnit4.class) -public class PremiumListUtilsTest { +class PremiumListUtilsTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test - public void parseInputToPremiumList_works() { + void parseInputToPremiumList_works() { PremiumList premiumList = parseToPremiumList("testlist", "foo,USD 99.50\n" + "bar,USD 30\n" + "baz,USD 10\n"); assertThat(premiumList.getName()).isEqualTo("testlist"); @@ -43,7 +41,7 @@ public void parseInputToPremiumList_works() { } @Test - public void parseInputToPremiumList_throwsOnInconsistentCurrencies() { + void parseInputToPremiumList_throwsOnInconsistentCurrencies() { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, diff --git a/core/src/test/java/google/registry/security/JsonHttpTest.java b/core/src/test/java/google/registry/security/JsonHttpTest.java index 4a78fac1b06..a752365fca5 100644 --- a/core/src/test/java/google/registry/security/JsonHttpTest.java +++ b/core/src/test/java/google/registry/security/JsonHttpTest.java @@ -32,19 +32,16 @@ import java.io.StringWriter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link JsonHttp}. */ -@RunWith(JUnit4.class) -public class JsonHttpTest { +class JsonHttpTest { private final HttpServletRequest req = mock(HttpServletRequest.class); private final HttpServletResponse rsp = mock(HttpServletResponse.class); @Test - public void testRead_postMethod_works() throws Exception { + void testRead_postMethod_works() throws Exception { when(req.getMethod()).thenReturn("POST"); when(req.getContentType()).thenReturn(JSON_UTF_8.toString()); when(req.getReader()).thenReturn(new BufferedReader(new StringReader("{\"k\":\"v\"}"))); @@ -52,7 +49,7 @@ public void testRead_postMethod_works() throws Exception { } @Test - public void testRead_putMethod_works() throws Exception { + void testRead_putMethod_works() throws Exception { when(req.getMethod()).thenReturn("PUT"); when(req.getContentType()).thenReturn(JSON_UTF_8.toString()); when(req.getReader()).thenReturn(new BufferedReader(new StringReader("{\"k\":\"v\"}"))); @@ -60,7 +57,7 @@ public void testRead_putMethod_works() throws Exception { } @Test - public void testRead_getMethod_notAllowed() throws Exception { + void testRead_getMethod_notAllowed() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getContentType()).thenReturn(JSON_UTF_8.toString()); when(req.getReader()).thenReturn(new BufferedReader(new StringReader("{}"))); @@ -68,7 +65,7 @@ public void testRead_getMethod_notAllowed() throws Exception { } @Test - public void testRead_textPlainContentType_notAllowed() throws Exception { + void testRead_textPlainContentType_notAllowed() throws Exception { when(req.getMethod()).thenReturn("POST"); when(req.getContentType()).thenReturn(PLAIN_TEXT_UTF_8.toString()); when(req.getReader()).thenReturn(new BufferedReader(new StringReader("{\"k\":\"v\"}"))); @@ -76,7 +73,7 @@ public void testRead_textPlainContentType_notAllowed() throws Exception { } @Test - public void testRead_jsonContentTypeWithoutCharsetParameter_allowed() throws Exception { + void testRead_jsonContentTypeWithoutCharsetParameter_allowed() throws Exception { when(req.getMethod()).thenReturn("POST"); when(req.getContentType()).thenReturn(JSON_UTF_8.withoutParameters().toString()); when(req.getReader()).thenReturn(new BufferedReader(new StringReader("{\"k\":\"v\"}"))); @@ -84,7 +81,7 @@ public void testRead_jsonContentTypeWithoutCharsetParameter_allowed() throws Exc } @Test - public void testRead_jsonContentTypeWithWeirdCharsetParameter_notAllowed() throws Exception { + void testRead_jsonContentTypeWithWeirdCharsetParameter_notAllowed() throws Exception { when(req.getMethod()).thenReturn("POST"); when(req.getContentType()).thenReturn(JSON_UTF_8.withCharset(UTF_16).toString()); when(req.getReader()).thenReturn(new BufferedReader(new StringReader("{\"k\":\"v\"}"))); @@ -92,7 +89,7 @@ public void testRead_jsonContentTypeWithWeirdCharsetParameter_notAllowed() throw } @Test - public void testRead_emptyJson_notAllowed() throws Exception { + void testRead_emptyJson_notAllowed() throws Exception { when(req.getMethod()).thenReturn("POST"); when(req.getContentType()).thenReturn(JSON_UTF_8.toString()); when(req.getReader()).thenReturn(new BufferedReader(new StringReader(""))); @@ -100,7 +97,7 @@ public void testRead_emptyJson_notAllowed() throws Exception { } @Test - public void testRead_nonObjectJson_notAllowed() throws Exception { + void testRead_nonObjectJson_notAllowed() throws Exception { when(req.getMethod()).thenReturn("POST"); when(req.getContentType()).thenReturn(JSON_UTF_8.toString()); when(req.getReader()).thenReturn(new BufferedReader(new StringReader("123"))); @@ -108,7 +105,7 @@ public void testRead_nonObjectJson_notAllowed() throws Exception { } @Test - public void testRead_nullJson_notAllowed() throws Exception { + void testRead_nullJson_notAllowed() throws Exception { when(req.getMethod()).thenReturn("POST"); when(req.getContentType()).thenReturn(JSON_UTF_8.toString()); when(req.getReader()).thenReturn(new BufferedReader(new StringReader("null"))); @@ -116,7 +113,7 @@ public void testRead_nullJson_notAllowed() throws Exception { } @Test - public void testWrite() throws Exception { + void testWrite() throws Exception { StringWriter writer = new StringWriter(); when(rsp.getWriter()).thenReturn(new PrintWriter(writer)); JsonHttp.write(rsp, ImmutableMap.of("k", "v")); diff --git a/core/src/test/java/google/registry/security/XsrfTokenManagerTest.java b/core/src/test/java/google/registry/security/XsrfTokenManagerTest.java index 7e3a77fbfd3..2b36744ec71 100644 --- a/core/src/test/java/google/registry/security/XsrfTokenManagerTest.java +++ b/core/src/test/java/google/registry/security/XsrfTokenManagerTest.java @@ -19,26 +19,23 @@ import com.google.appengine.api.users.User; import com.google.common.base.Splitter; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeUserService; import google.registry.testing.InjectRule; import org.joda.time.Duration; -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 {@link XsrfTokenManager}. */ -@RunWith(JUnit4.class) -public class XsrfTokenManagerTest { +class XsrfTokenManagerTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); - @Rule - public InjectRule inject = new InjectRule(); + @RegisterExtension InjectRule inject = new InjectRule(); private final User testUser = new User("test@example.com", "test@example.com"); private final FakeClock clock = new FakeClock(START_OF_TIME); @@ -47,34 +44,34 @@ public class XsrfTokenManagerTest { private String token; - @Before - public void init() { + @BeforeEach + void beforeEach() { userService.setUser(testUser, false); token = xsrfTokenManager.generateToken(testUser.getEmail()); } @Test - public void testValidate_validToken() { + void testValidate_validToken() { assertThat(xsrfTokenManager.validateToken(token)).isTrue(); } @Test - public void testValidate_tokenWithMissingParts() { + void testValidate_tokenWithMissingParts() { assertThat(xsrfTokenManager.validateToken("1:123")).isFalse(); } @Test - public void testValidate_tokenWithBadVersion() { + void testValidate_tokenWithBadVersion() { assertThat(xsrfTokenManager.validateToken("2:123:base64")).isFalse(); } @Test - public void testValidate_tokenWithBadNumberTimestamp() { + void testValidate_tokenWithBadNumberTimestamp() { assertThat(xsrfTokenManager.validateToken("1:notanumber:base64")).isFalse(); } @Test - public void testValidate_tokenExpiresAfterOneDay() { + void testValidate_tokenExpiresAfterOneDay() { clock.advanceBy(Duration.standardDays(1)); assertThat(xsrfTokenManager.validateToken(token)).isTrue(); clock.advanceOneMilli(); @@ -82,14 +79,14 @@ public void testValidate_tokenExpiresAfterOneDay() { } @Test - public void testValidate_tokenTimestampTamperedWith() { + void testValidate_tokenTimestampTamperedWith() { String encodedPart = Splitter.on(':').splitToList(token).get(2); long fakeTimestamp = clock.nowUtc().plusMillis(1).getMillis(); assertThat(xsrfTokenManager.validateToken("1:" + fakeTimestamp + ":" + encodedPart)).isFalse(); } @Test - public void testValidate_tokenForDifferentUser() { + void testValidate_tokenForDifferentUser() { String otherToken = xsrfTokenManager.generateToken("eve@example.com"); assertThat(xsrfTokenManager.validateToken(otherToken)).isFalse(); } diff --git a/core/src/test/java/google/registry/server/RegistryTestServerMain.java b/core/src/test/java/google/registry/server/RegistryTestServerMain.java index b70a635fe02..e4540ad1174 100644 --- a/core/src/test/java/google/registry/server/RegistryTestServerMain.java +++ b/core/src/test/java/google/registry/server/RegistryTestServerMain.java @@ -19,13 +19,11 @@ import com.beust.jcommander.Parameters; import com.google.common.collect.ImmutableList; import com.google.common.net.HostAndPort; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.UserInfo; import google.registry.tools.params.HostAndPortParameter; import google.registry.ui.ConsoleDebug; import java.util.List; -import org.junit.runner.Description; -import org.junit.runners.model.Statement; /** Command-line interface for {@link RegistryTestServer}. */ @Parameters(separators = " =", commandDescription = "Runs web development server.") @@ -62,7 +60,7 @@ public final class RegistryTestServerMain { @Parameter( names = "--login_user_id", description = "GAE User ID for App Engine Local User Service.") - private String loginUserId = AppEngineRule.MARLA_SINGER_GAE_USER_ID; + private String loginUserId = AppEngineExtension.MARLA_SINGER_GAE_USER_ID; @Parameter( names = "--login_is_admin", @@ -134,40 +132,37 @@ private void run() throws Throwable { LIGHT_PURPLE, ORANGE, PINK, RESET); final RegistryTestServer server = new RegistryTestServer(address); - Statement runner = - new Statement() { - @Override - public void evaluate() throws InterruptedException { - System.out.printf("%sLoading Datastore fixtures...%s\n", BLUE, RESET); - for (Fixture fixture : fixtures) { - fixture.load(); - } - System.out.printf("%sStarting Jetty6 HTTP Server...%s\n", BLUE, RESET); - server.start(); - System.out.printf("%sListening on: %s%s\n", PURPLE, server.getUrl("/"), RESET); - try { - while (true) { - server.process(); - } - } finally { - server.stop(); - } - } - }; System.out.printf("%sLoading SQL fixtures and AppEngineRule...%s\n", BLUE, RESET); - AppEngineRule.builder() - .withDatastoreAndCloudSql() - .withUrlFetch() - .withTaskQueue() - .withLocalModules() - .withUserService( - loginIsAdmin - ? UserInfo.createAdmin(loginEmail, loginUserId) - : UserInfo.create(loginEmail, loginUserId)) - .build() - .apply(runner, Description.EMPTY) - .evaluate(); + AppEngineExtension appEngine = + AppEngineExtension.builder() + .withDatastoreAndCloudSql() + .withUrlFetch() + .withTaskQueue() + .withLocalModules() + .withUserService( + loginIsAdmin + ? UserInfo.createAdmin(loginEmail, loginUserId) + : UserInfo.create(loginEmail, loginUserId)) + .build(); + appEngine.beforeEach(null); + System.out.printf("%sLoading Datastore fixtures...%s\n", BLUE, RESET); + for (Fixture fixture : fixtures) { + fixture.load(); + } + System.out.printf("%sStarting Jetty6 HTTP Server...%s\n", BLUE, RESET); + server.start(); + System.out.printf("%sListening on: %s%s\n", PURPLE, server.getUrl("/"), RESET); + try { + // This infinite loop is terminated when the user presses Ctrl-C. + //noinspection InfiniteLoopStatement + while (true) { + server.process(); + } + } finally { + server.stop(); + appEngine.afterEach(null); + } } private RegistryTestServerMain() {} diff --git a/core/src/test/java/google/registry/storage/drive/DriveConnectionTest.java b/core/src/test/java/google/registry/storage/drive/DriveConnectionTest.java index d7a00f5dfa5..180ab5f3e22 100644 --- a/core/src/test/java/google/registry/storage/drive/DriveConnectionTest.java +++ b/core/src/test/java/google/registry/storage/drive/DriveConnectionTest.java @@ -38,15 +38,13 @@ import com.google.common.net.MediaType; import java.util.Arrays; import java.util.List; -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; import org.mockito.ArgumentMatcher; -/** Tests for {@link DriveConnection}.*/ -@RunWith(JUnit4.class) -public class DriveConnectionTest { +/** Tests for {@link DriveConnection}. */ +class DriveConnectionTest { + private final Drive drive = mock(Drive.class); private final Files files = mock(Files.class); private final Children children = mock(Children.class); @@ -56,8 +54,8 @@ public class DriveConnectionTest { private static final byte[] DATA = {1, 2, 3}; ChildList childList; - DriveConnection driveConnection; - List allChildren; + private DriveConnection driveConnection; + private List allChildren; private ArgumentMatcher hasByteArrayContent(final byte[] data) { return arg -> { @@ -69,8 +67,8 @@ private ArgumentMatcher hasByteArrayContent(final byte[] data) }; } - @Before - public void init() throws Exception { + @BeforeEach + void beforeEach() throws Exception { driveConnection = new DriveConnection(); driveConnection.drive = drive; when(drive.files()).thenReturn(files); @@ -100,7 +98,7 @@ public void init() throws Exception { } @Test - public void testCreateFileAtRoot() throws Exception { + void testCreateFileAtRoot() throws Exception { when(files.insert( eq(new File().setTitle("title").setMimeType("image/gif")), argThat(hasByteArrayContent(DATA)))) @@ -109,7 +107,7 @@ public void testCreateFileAtRoot() throws Exception { } @Test - public void testCreateFileInFolder() throws Exception { + void testCreateFileInFolder() throws Exception { when(files.insert( eq( new File() @@ -122,28 +120,27 @@ public void testCreateFileInFolder() throws Exception { } @Test - public void testCreateFolderAtRoot() throws Exception { - when(files.insert(new File() - .setTitle("title") - .setMimeType("application/vnd.google-apps.folder"))) - .thenReturn(insert); + void testCreateFolderAtRoot() throws Exception { + when(files.insert( + new File().setTitle("title").setMimeType("application/vnd.google-apps.folder"))) + .thenReturn(insert); assertThat(driveConnection.createFolder("title", null)).isEqualTo("id"); } @Test - public void testCreateFolderInFolder() throws Exception { - when(files.insert(new File() - .setTitle("title") - .setMimeType("application/vnd.google-apps.folder") - .setParents(ImmutableList.of(new ParentReference().setId("parent"))))) - .thenReturn(insert); + void testCreateFolderInFolder() throws Exception { + when(files.insert( + new File() + .setTitle("title") + .setMimeType("application/vnd.google-apps.folder") + .setParents(ImmutableList.of(new ParentReference().setId("parent"))))) + .thenReturn(insert); assertThat(driveConnection.createFolder("title", "parent")).isEqualTo("id"); } @Test - public void testListFiles_noQueryWithPagination() throws Exception { - assertThat(driveConnection.listFiles("driveFolderId")) - .containsExactlyElementsIn(allChildren); + void testListFiles_noQueryWithPagination() throws Exception { + assertThat(driveConnection.listFiles("driveFolderId")).containsExactlyElementsIn(allChildren); verify(childrenList).setPageToken("page2"); verify(childrenList).setPageToken(null); verify(childrenList, times(0)).setQ(anyString()); @@ -151,7 +148,7 @@ public void testListFiles_noQueryWithPagination() throws Exception { } @Test - public void testListFiles_withQueryAndPagination() throws Exception { + void testListFiles_withQueryAndPagination() throws Exception { assertThat(driveConnection.listFiles("driveFolderId", "sampleQuery")) .containsExactlyElementsIn(allChildren); verify(childrenList).setPageToken("page2"); @@ -161,7 +158,7 @@ public void testListFiles_withQueryAndPagination() throws Exception { } @Test - public void testCreateOrUpdateFile_succeedsForNewFile() throws Exception { + void testCreateOrUpdateFile_succeedsForNewFile() throws Exception { when(files.insert( eq( new File() @@ -172,39 +169,37 @@ public void testCreateOrUpdateFile_succeedsForNewFile() throws Exception { .thenReturn(insert); ChildList emptyChildList = new ChildList().setItems(ImmutableList.of()).setNextPageToken(null); when(childrenList.execute()).thenReturn(emptyChildList); - assertThat(driveConnection.createOrUpdateFile( - "title", - MediaType.WEBM_VIDEO, - "driveFolderId", - DATA)) + assertThat( + driveConnection.createOrUpdateFile( + "title", MediaType.WEBM_VIDEO, "driveFolderId", DATA)) .isEqualTo("id"); } @Test - public void testCreateOrUpdateFile_succeedsForUpdatingFile() throws Exception { + void testCreateOrUpdateFile_succeedsForUpdatingFile() throws Exception { when(files.update( eq("id"), eq(new File().setTitle("title")), argThat(hasByteArrayContent(DATA)))) .thenReturn(update); - ChildList childList = new ChildList() - .setItems(ImmutableList.of(new ChildReference().setId("id"))) - .setNextPageToken(null); + ChildList childList = + new ChildList() + .setItems(ImmutableList.of(new ChildReference().setId("id"))) + .setNextPageToken(null); when(childrenList.execute()).thenReturn(childList); - assertThat(driveConnection.createOrUpdateFile( - "title", - MediaType.WEBM_VIDEO, - "driveFolderId", - DATA)) + assertThat( + driveConnection.createOrUpdateFile( + "title", MediaType.WEBM_VIDEO, "driveFolderId", DATA)) .isEqualTo("id"); } @Test - public void testCreateOrUpdateFile_throwsExceptionWhenMultipleFilesWithNameAlreadyExist() + void testCreateOrUpdateFile_throwsExceptionWhenMultipleFilesWithNameAlreadyExist() throws Exception { - ChildList childList = new ChildList() - .setItems(ImmutableList.of( - new ChildReference().setId("id1"), - new ChildReference().setId("id2"))) - .setNextPageToken(null); + ChildList childList = + new ChildList() + .setItems( + ImmutableList.of( + new ChildReference().setId("id1"), new ChildReference().setId("id2"))) + .setNextPageToken(null); when(childrenList.execute()).thenReturn(childList); IllegalStateException thrown = assertThrows( @@ -220,7 +215,7 @@ public void testCreateOrUpdateFile_throwsExceptionWhenMultipleFilesWithNameAlrea } @Test - public void testUpdateFile_succeeds() throws Exception { + void testUpdateFile_succeeds() throws Exception { when(files.update( eq("id"), eq(new File().setTitle("title")), argThat(hasByteArrayContent(DATA)))) .thenReturn(update); diff --git a/core/src/test/java/google/registry/testing/AppEngineRule.java b/core/src/test/java/google/registry/testing/AppEngineExtension.java similarity index 78% rename from core/src/test/java/google/registry/testing/AppEngineRule.java rename to core/src/test/java/google/registry/testing/AppEngineExtension.java index c72d031b446..c8865e7f861 100644 --- a/core/src/test/java/google/registry/testing/AppEngineRule.java +++ b/core/src/test/java/google/registry/testing/AppEngineExtension.java @@ -15,12 +15,16 @@ package google.registry.testing; import static com.google.common.base.Preconditions.checkState; +import static com.google.common.io.Files.asCharSink; import static com.google.common.truth.Truth.assertWithMessage; import static google.registry.testing.DatastoreHelper.persistSimpleResources; import static google.registry.testing.DualDatabaseTestInvocationContextProvider.injectTmForDualDatabaseTest; import static google.registry.testing.DualDatabaseTestInvocationContextProvider.restoreTmAfterDualDatabaseTest; import static google.registry.util.ResourceUtils.readResourceUtf8; import static java.nio.charset.StandardCharsets.UTF_8; +import static java.nio.file.Files.createFile; +import static java.nio.file.Files.walk; +import static java.util.Comparator.reverseOrder; import static org.json.XML.toJSONObject; import com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig; @@ -45,19 +49,20 @@ import google.registry.model.registrar.RegistrarAddress; import google.registry.model.registrar.RegistrarContact; import google.registry.persistence.transaction.JpaTestRules; -import google.registry.persistence.transaction.JpaTestRules.JpaIntegrationTestRule; +import google.registry.persistence.transaction.JpaTestRules.JpaIntegrationTestExtension; import google.registry.persistence.transaction.JpaTestRules.JpaIntegrationWithCoverageExtension; -import google.registry.persistence.transaction.JpaTestRules.JpaIntegrationWithCoverageRule; import google.registry.persistence.transaction.JpaTestRules.JpaUnitTestExtension; import google.registry.util.Clock; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; +import java.nio.file.Path; import java.util.HashSet; import java.util.List; import java.util.Optional; import java.util.Set; import java.util.logging.LogManager; +import java.util.stream.Stream; import javax.annotation.Nullable; import org.json.JSONArray; import org.json.JSONException; @@ -65,28 +70,17 @@ import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.rules.ExternalResource; -import org.junit.rules.TemporaryFolder; -import org.junit.runner.Description; -import org.junit.runners.model.Statement; +import org.junit.jupiter.api.io.TempDir; /** - * JUnit Rule for managing the App Engine testing environment. + * JUnit extension for managing the App Engine testing environment. * *

Generally you'll want to configure the environment using only the services you need (because * each service is expensive to create). * - *

This rule also resets global Objectify for the current thread. - * - *

This class works with both JUnit 4 and JUnit 5. With JUnit 4, the test runner calls {@link - * #apply(Statement, Description)}, which in turns calls {@link #before()} on entry and {@link - * #after()} on exit. With JUnit 5, the test runner calls {@link #beforeEach(ExtensionContext)} and - * {@link #afterEach(ExtensionContext)}. - * - * @see org.junit.rules.ExternalResource + *

This extension also resets global Objectify for the current thread. */ -public final class AppEngineRule extends ExternalResource - implements BeforeEachCallback, AfterEachCallback { +public final class AppEngineExtension implements BeforeEachCallback, AfterEachCallback { public static final String NEW_REGISTRAR_GAE_USER_ID = "666"; public static final String THE_REGISTRAR_GAE_USER_ID = "31337"; @@ -100,27 +94,32 @@ public final class AppEngineRule extends ExternalResource readResourceUtf8("google/registry/env/common/default/WEB-INF/queue.xml"); /** A parsed version of the indexes used in the prod code. */ - private static final Set MANUAL_INDEXES = getIndexXmlStrings( - readResourceUtf8( - "google/registry/env/common/default/WEB-INF/datastore-indexes.xml")); + private static final Set MANUAL_INDEXES = + getIndexXmlStrings( + readResourceUtf8("google/registry/env/common/default/WEB-INF/datastore-indexes.xml")); private static final String LOGGING_PROPERTIES = - readResourceUtf8(AppEngineRule.class, "logging.properties"); + readResourceUtf8(AppEngineExtension.class, "logging.properties"); private LocalServiceTestHelper helper; - /** A rule-within-a-rule to provide a temporary folder for AppEngineRule's internal temp files. */ - TemporaryFolder temporaryFolder = new TemporaryFolder(); + /** + * A temporary directory for AppEngineRule's internal temp files that is different for each test. + * + *

Note that we can't use {@link TempDir} here because that only works in test classes, not + * extensions. + */ + File tmpDir; /** - * Sets up a SQL database when running on JUnit 5. This is for test classes that are not member of - * the {@code SqlIntegrationTestSuite}. + * Sets up a SQL database. This is for test classes that are not member of the {@code + * SqlIntegrationTestSuite}. */ - private JpaIntegrationTestRule jpaIntegrationTestRule = null; + private JpaIntegrationTestExtension jpaIntegrationTestRule = null; /** - * Sets up a SQL database when running on JUnit 5 and records the JPA entities tested by each test - * class. This is for {@code SqlIntegrationTestSuite} members. + * Sets up a SQL database and records the JPA entities tested by each test class. This is for + * {@code SqlIntegrationTestSuite} members. */ private JpaIntegrationWithCoverageExtension jpaIntegrationWithCoverageExtension = null; @@ -144,10 +143,10 @@ public final class AppEngineRule extends ExternalResource private ImmutableList> ofyTestEntities; private ImmutableList> jpaTestEntities; - /** Builder for {@link AppEngineRule}. */ + /** Builder for {@link AppEngineExtension}. */ public static class Builder { - private AppEngineRule rule = new AppEngineRule(); + private AppEngineExtension rule = new AppEngineExtension(); private ImmutableList.Builder> ofyTestEntities = new ImmutableList.Builder<>(); private ImmutableList.Builder> jpaTestEntities = new ImmutableList.Builder<>(); @@ -223,7 +222,7 @@ public Builder withUserService(UserInfo userInfo) { * ObjectifyService} instances for each test (class), the setup overhead would rise * significantly. * - * @see AppEngineRule#register(Class) + * @see AppEngineExtension#register(Class) */ @SafeVarargs public final Builder withOfyTestEntities(Class... entities) { @@ -237,7 +236,7 @@ public Builder withJpaUnitTestEntities(Class... entities) { return this; } - public AppEngineRule build() { + public AppEngineExtension build() { checkState( !rule.enableJpaEntityCoverageCheck || rule.withCloudSql, "withJpaEntityCoverageCheck enabled without Cloud SQL"); @@ -263,20 +262,22 @@ private static Registrar.Builder makeRegistrarCommon() { .setState(State.ACTIVE) .setIcannReferralEmail("lol@sloth.test") .setUrl("http://my.fake.url") - .setInternationalizedAddress(new RegistrarAddress.Builder() - .setStreet(ImmutableList.of("123 Example Boulevard")) - .setCity("Williamsburg") - .setState("NY") - .setZip("11211") - .setCountryCode("US") - .build()) - .setLocalizedAddress(new RegistrarAddress.Builder() - .setStreet(ImmutableList.of("123 Example B\u0151ulevard")) - .setCity("Williamsburg") - .setState("NY") - .setZip("11211") - .setCountryCode("US") - .build()) + .setInternationalizedAddress( + new RegistrarAddress.Builder() + .setStreet(ImmutableList.of("123 Example Boulevard")) + .setCity("Williamsburg") + .setState("NY") + .setZip("11211") + .setCountryCode("US") + .build()) + .setLocalizedAddress( + new RegistrarAddress.Builder() + .setStreet(ImmutableList.of("123 Example B\u0151ulevard")) + .setCity("Williamsburg") + .setState("NY") + .setZip("11211") + .setCountryCode("US") + .build()) .setPhoneNumber("+1.3334445555") .setPhonePasscode("12345") .setContactsRequireSyncing(true); @@ -311,8 +312,8 @@ public static Registrar makeRegistrar2() { } /** - * Public factory for first RegistrarContact to allow comparison - * against stored value in unit tests. + * Public factory for first RegistrarContact to allow comparison against stored value in unit + * tests. */ public static RegistrarContact makeRegistrarContact1() { return new RegistrarContact.Builder() @@ -327,8 +328,8 @@ public static RegistrarContact makeRegistrarContact1() { } /** - * Public factory for second RegistrarContact to allow comparison - * against stored value in unit tests. + * Public factory for second RegistrarContact to allow comparison against stored value in unit + * tests. */ public static RegistrarContact makeRegistrarContact2() { return new RegistrarContact.Builder() @@ -355,110 +356,43 @@ public static RegistrarContact makeRegistrarContact3() { .build(); } - /** Called before every test method. JUnit 5 only. */ + /** Called before every test method. */ @Override public void beforeEach(ExtensionContext context) throws Exception { - before(); - if (withCloudSql) { - JpaTestRules.Builder builder = new JpaTestRules.Builder(); - if (clock != null) { - builder.withClock(clock); - } - if (enableJpaEntityCoverageCheck) { - jpaIntegrationWithCoverageExtension = builder.buildIntegrationWithCoverageExtension(); - jpaIntegrationWithCoverageExtension.beforeEach(context); - } else if (withJpaUnitTest) { - jpaUnitTestRule = - builder - .withEntityClass(jpaTestEntities.toArray(new Class[jpaTestEntities.size()])) - .buildUnitTestRule(); - jpaUnitTestRule.beforeEach(context); - } else { - jpaIntegrationTestRule = builder.buildIntegrationTestRule(); - jpaIntegrationTestRule.beforeEach(context); - } - } - if (isWithDatastoreAndCloudSql()) { - injectTmForDualDatabaseTest(context); - } - } - - /** Called after each test method. JUnit 5 only. */ - @Override - public void afterEach(ExtensionContext context) throws Exception { - if (withCloudSql) { - if (enableJpaEntityCoverageCheck) { - jpaIntegrationWithCoverageExtension.afterEach(context); - } else if (withJpaUnitTest) { - jpaUnitTestRule.afterEach(context); - } else { - jpaIntegrationTestRule.afterEach(context); - } - } - after(); - if (isWithDatastoreAndCloudSql()) { - restoreTmAfterDualDatabaseTest(context); - } - } - - /** - * Hack to make sure AppEngineRule is always wrapped in a {@link JpaIntegrationWithCoverageRule}. - * JUnit 4 only. - */ - // Note: Even with @EnableRuleMigrationSupport, JUnit5 runner does not call this method. - // Note 2: Do not migrate members of SqlIntegrationTestSuite to JUnit5 individually. - // TODO(weiminyu): migrate SqlIntegrationTestSuite in one go. - @Override - public Statement apply(Statement base, Description description) { - Statement statement = base; - if (withCloudSql) { - JpaTestRules.Builder builder = new JpaTestRules.Builder(); - if (clock != null) { - builder.withClock(clock); - } - checkState( - !enableJpaEntityCoverageCheck, - "JUnit4 tests must not enable withJpaEntityCoverageCheck."); - statement = builder.buildIntegrationTestRule().apply(base, description); - } - return super.apply(statement, description); - } - - @Override - protected void before() throws IOException { + tmpDir = Files.createTempDir(); setupLogging(); - temporaryFolder.create(); Set configs = new HashSet<>(); if (withUrlFetch) { configs.add(new LocalURLFetchServiceTestConfig()); } if (withDatastore) { - configs.add(new LocalDatastoreServiceTestConfig() - // We need to set this to allow cross entity group transactions. - .setApplyAllHighRepJobPolicy() - // This causes unit tests to write a file containing any indexes the test required. We - // can use that file below to make sure we have the right indexes in our prod code. - .setNoIndexAutoGen(false)); - // This forces app engine to write the generated indexes to a usable location. - System.setProperty("appengine.generated.dir", temporaryFolder.getRoot().getAbsolutePath()); + configs.add( + new LocalDatastoreServiceTestConfig() + // We need to set this to allow cross entity group transactions. + .setApplyAllHighRepJobPolicy() + // This causes unit tests to write a file containing any indexes the test required. We + // can use that file below to make sure we have the right indexes in our prod code. + .setNoIndexAutoGen(false)); + // This forces App Engine to write the generated indexes to a usable location. + System.setProperty("appengine.generated.dir", tmpDir.getAbsolutePath()); } if (withLocalModules) { - configs.add(new LocalModulesServiceTestConfig() - .addBasicScalingModuleVersion("default", "1", 1) - .addBasicScalingModuleVersion("tools", "1", 1) - .addBasicScalingModuleVersion("backend", "1", 1)); + configs.add( + new LocalModulesServiceTestConfig() + .addBasicScalingModuleVersion("default", "1", 1) + .addBasicScalingModuleVersion("tools", "1", 1) + .addBasicScalingModuleVersion("backend", "1", 1)); } if (withTaskQueue) { - File queueFile = temporaryFolder.newFile("queue.xml"); - Files.asCharSink(queueFile, UTF_8).write(taskQueueXml); - configs.add(new LocalTaskQueueTestConfig() - .setQueueXmlPath(queueFile.getAbsolutePath())); + File queueFile = createFile(new File(tmpDir, "queue.xml").toPath()).toFile(); + asCharSink(queueFile, UTF_8).write(taskQueueXml); + configs.add(new LocalTaskQueueTestConfig().setQueueXmlPath(queueFile.getAbsolutePath())); } if (withUserService) { configs.add(new LocalUserServiceTestConfig()); } - helper = new LocalServiceTestHelper(configs.toArray(new LocalServiceTestConfig[]{})); + helper = new LocalServiceTestHelper(configs.toArray(new LocalServiceTestConfig[] {})); if (withUserService) { // Set top-level properties on LocalServiceTestConfig for user login. @@ -491,19 +425,52 @@ protected void before() throws IOException { if (!withoutCannedData) { loadInitialData(); } - this.ofyTestEntities.forEach(AppEngineRule::register); + this.ofyTestEntities.forEach(AppEngineExtension::register); + } + + if (withCloudSql) { + JpaTestRules.Builder builder = new JpaTestRules.Builder(); + if (clock != null) { + builder.withClock(clock); + } + if (enableJpaEntityCoverageCheck) { + jpaIntegrationWithCoverageExtension = builder.buildIntegrationWithCoverageExtension(); + jpaIntegrationWithCoverageExtension.beforeEach(context); + } else if (withJpaUnitTest) { + jpaUnitTestRule = + builder + .withEntityClass(jpaTestEntities.toArray(new Class[jpaTestEntities.size()])) + .buildUnitTestRule(); + jpaUnitTestRule.beforeEach(context); + } else { + jpaIntegrationTestRule = builder.buildIntegrationTestRule(); + jpaIntegrationTestRule.beforeEach(context); + } + } + if (isWithDatastoreAndCloudSql()) { + injectTmForDualDatabaseTest(context); } } + /** Called after each test method. */ @Override - protected void after() { + public void afterEach(ExtensionContext context) throws Exception { + if (withCloudSql) { + if (enableJpaEntityCoverageCheck) { + jpaIntegrationWithCoverageExtension.afterEach(context); + } else if (withJpaUnitTest) { + jpaUnitTestRule.afterEach(context); + } else { + jpaIntegrationTestRule.afterEach(context); + } + } // Resets Objectify. Although it would seem more obvious to do this at the start of a request // instead of at the end, this is more consistent with what ObjectifyFilter does in real code. ObjectifyFilter.complete(); helper.tearDown(); helper = null; // Test that Datastore didn't need any indexes we don't have listed in our index file. - File indexFile = new File(temporaryFolder.getRoot(), "datastore-indexes-auto.xml"); + File indexFile = new File(tmpDir, "datastore-indexes-auto.xml"); try { if (!indexFile.exists()) { return; @@ -520,10 +487,16 @@ protected void after() { } catch (IOException e) { throw new RuntimeException(e); } finally { - temporaryFolder.delete(); + // Delete the temp directory's contents and then the temp directory itself. + try (Stream filesToDelete = walk(tmpDir.toPath())) { + filesToDelete.sorted(reverseOrder()).map(Path::toFile).forEach(File::delete); + } } // Clean up environment setting left behind by AppEngine test instance. ApiProxy.setEnvironmentForCurrentThread(null); + if (isWithDatastoreAndCloudSql()) { + restoreTmAfterDualDatabaseTest(context); + } } /** @@ -584,7 +557,7 @@ private static List getJsonAsArray(@Nullable Object object) throws J for (int i = 0; i < ((JSONArray) object).length(); ++i) { builder.add(((JSONArray) object).getJSONObject(i)); } - } else if (object instanceof JSONObject){ + } else if (object instanceof JSONObject) { // When there's only a single entry it won't be wrapped in an array. builder.add((JSONObject) object); } @@ -594,15 +567,15 @@ private static List getJsonAsArray(@Nullable Object object) throws J /** Turn a JSON representation of an index into xml. */ private static String getIndexXmlString(JSONObject source) throws JSONException { StringBuilder builder = new StringBuilder(); - builder.append(String.format( - "\n", - source.getString("kind"), - source.get("ancestor").toString())); + builder.append( + String.format( + "\n", + source.getString("kind"), source.get("ancestor").toString())); for (JSONObject property : getJsonAsArray(source.get("property"))) { - builder.append(String.format( - " \n", - property.getString("name"), - property.getString("direction"))); + builder.append( + String.format( + " \n", + property.getString("name"), property.getString("direction"))); } return builder.append("").toString(); } diff --git a/core/src/test/java/google/registry/testing/AppEngineRuleTest.java b/core/src/test/java/google/registry/testing/AppEngineExtensionTest.java similarity index 71% rename from core/src/test/java/google/registry/testing/AppEngineRuleTest.java rename to core/src/test/java/google/registry/testing/AppEngineExtensionTest.java index 87f32ddd2bd..ef27033c32d 100644 --- a/core/src/test/java/google/registry/testing/AppEngineRuleTest.java +++ b/core/src/test/java/google/registry/testing/AppEngineExtensionTest.java @@ -14,6 +14,7 @@ package google.registry.testing; +import static com.google.common.io.Files.asCharSink; import static com.google.common.truth.Truth.assertWithMessage; import static google.registry.util.CollectionUtils.entriesToImmutableMap; import static java.nio.charset.StandardCharsets.UTF_8; @@ -31,19 +32,15 @@ import java.io.IOException; import java.util.Collection; import java.util.Map; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; -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 google.registry.testing.AppEngineRule}. Tests focus on Datastoe-related - * assertions made during teardown checks. + * Unit tests for {@link AppEngineExtension}. + * + *

Tests focus on Datastore-related assertions made during teardown checks. */ -@RunWith(JUnit4.class) -public class AppEngineRuleTest { +class AppEngineExtensionTest { // An arbitrary index in google/registry/env/common/default/WEB-INF/datastore-indexes.xml private static final String DECLARED_INDEX = @@ -56,53 +53,51 @@ public class AppEngineRuleTest { " ", " ", ""); + private static final String UNDECLARED_INDEX = DECLARED_INDEX.replace("ContactResource", "NoSuchResource"); - @Rule public TemporaryFolder temporaryFolder = new TemporaryFolder(); - - private final AppEngineRule appEngineRule = - AppEngineRule.builder().withDatastoreAndCloudSql().build(); + private final AppEngineExtension appEngineRule = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); - @Before - public void setupAppEngineRule() throws Exception { - appEngineRule.temporaryFolder = temporaryFolder; - appEngineRule.before(); + @BeforeEach + void beforeEach() throws Exception { + appEngineRule.beforeEach(null); } @Test - public void testTeardown_successNoAutoIndexFile() { - appEngineRule.after(); + void testTeardown_successNoAutoIndexFile() throws Exception { + appEngineRule.afterEach(null); } @Test - public void testTeardown_successEmptyAutoIndexFile() throws Exception { + void testTeardown_successEmptyAutoIndexFile() throws Exception { writeAutoIndexFile(""); - appEngineRule.after(); + appEngineRule.afterEach(null); } @Test - public void testTeardown_successWhiteSpacesOnlyAutoIndexFile() throws Exception { + void testTeardown_successWhiteSpacesOnlyAutoIndexFile() throws Exception { writeAutoIndexFile(" "); - appEngineRule.after(); + appEngineRule.afterEach(null); } @Test - public void testTeardown_successOnlyDeclaredIndexesUsed() throws Exception { + void testTeardown_successOnlyDeclaredIndexesUsed() throws Exception { writeAutoIndexFile(DECLARED_INDEX); - appEngineRule.after(); + appEngineRule.afterEach(null); } @Test - public void testTeardown_failureUndeclaredIndexesUsed() throws Exception { + void testTeardown_failureUndeclaredIndexesUsed() throws Exception { writeAutoIndexFile(UNDECLARED_INDEX); - assertThrows(AssertionError.class, () -> appEngineRule.after()); + assertThrows(AssertionError.class, () -> appEngineRule.afterEach(null)); } @Test - public void testRegisterOfyEntities_failure() { - AppEngineRule appEngineRule = - AppEngineRule.builder() + void testRegisterOfyEntities_failure() throws Exception { + AppEngineExtension appEngineRule = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withOfyTestEntities(google.registry.testing.TestObject.class, TestObject.class) .build(); @@ -112,12 +107,13 @@ public void testRegisterOfyEntities_failure() { TestObject.class.getName(), "TestObject", google.registry.testing.TestObject.class.getName()); - assertThrows(expectedErrorMessage, IllegalStateException.class, appEngineRule::before); - appEngineRule.after(); + assertThrows( + expectedErrorMessage, IllegalStateException.class, () -> appEngineRule.beforeEach(null)); + appEngineRule.afterEach(null); } @Test - public void testOfyEntities_uniqueKinds() { + void testOfyEntities_uniqueKinds() { try (ScanResult scanResult = new ClassGraph() .enableAnnotationInfo() @@ -146,9 +142,7 @@ public void testOfyEntities_uniqueKinds() { } private void writeAutoIndexFile(String content) throws IOException { - com.google.common.io.Files.asCharSink( - new File(temporaryFolder.getRoot(), "datastore-indexes-auto.xml"), UTF_8) - .write(content); + asCharSink(new File(appEngineRule.tmpDir, "datastore-indexes-auto.xml"), UTF_8).write(content); } @Entity diff --git a/core/src/test/java/google/registry/testing/DatastoreEntityExtension.java b/core/src/test/java/google/registry/testing/DatastoreEntityExtension.java index 6de5092f59c..a18ebda1f81 100644 --- a/core/src/test/java/google/registry/testing/DatastoreEntityExtension.java +++ b/core/src/test/java/google/registry/testing/DatastoreEntityExtension.java @@ -20,7 +20,6 @@ import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.rules.ExternalResource; import org.testcontainers.shaded.com.google.common.collect.ImmutableMap; /** @@ -34,8 +33,7 @@ * href="https://junit.org/junit5/docs/current/user-guide/#extensions-registration-programmatic"> * JUnit 5 User Guide for details of extension ordering. */ -public class DatastoreEntityExtension extends ExternalResource - implements BeforeEachCallback, AfterEachCallback { +public class DatastoreEntityExtension implements BeforeEachCallback, AfterEachCallback { private static final Environment PLACEHOLDER_ENV = new PlaceholderEnvironment(); @@ -50,16 +48,6 @@ public void afterEach(ExtensionContext context) { ApiProxy.setEnvironmentForCurrentThread(null); } - @Override - protected void before() { - beforeEach(null); - } - - @Override - protected void after() { - afterEach(null); - } - private static final class PlaceholderEnvironment implements Environment { @Override diff --git a/core/src/test/java/google/registry/testing/DualDatabaseTestInvocationContextProvider.java b/core/src/test/java/google/registry/testing/DualDatabaseTestInvocationContextProvider.java index 7a6b268d8bc..b916efd354b 100644 --- a/core/src/test/java/google/registry/testing/DualDatabaseTestInvocationContextProvider.java +++ b/core/src/test/java/google/registry/testing/DualDatabaseTestInvocationContextProvider.java @@ -84,14 +84,15 @@ public void postProcessTestInstance(Object testInstance, ExtensionContext contex throws Exception { List appEngineRuleFields = Stream.of(testInstance.getClass().getFields()) - .filter(field -> field.getType().isAssignableFrom(AppEngineRule.class)) + .filter(field -> field.getType().isAssignableFrom(AppEngineExtension.class)) .collect(toImmutableList()); if (appEngineRuleFields.size() != 1) { throw new IllegalStateException( "@DualDatabaseTest test must have only 1 AppEngineRule field"); } appEngineRuleFields.get(0).setAccessible(true); - AppEngineRule appEngineRule = (AppEngineRule) appEngineRuleFields.get(0).get(testInstance); + AppEngineExtension appEngineRule = + (AppEngineExtension) appEngineRuleFields.get(0).get(testInstance); if (!appEngineRule.isWithDatastoreAndCloudSql()) { throw new IllegalStateException( "AppEngineRule in @DualDatabaseTest test must set withDatastoreAndCloudSql()"); diff --git a/core/src/test/java/google/registry/testing/DualDatabaseTestInvocationContextProviderTest.java b/core/src/test/java/google/registry/testing/DualDatabaseTestInvocationContextProviderTest.java index 40cdd8fe0e0..ef71f885330 100644 --- a/core/src/test/java/google/registry/testing/DualDatabaseTestInvocationContextProviderTest.java +++ b/core/src/test/java/google/registry/testing/DualDatabaseTestInvocationContextProviderTest.java @@ -34,7 +34,8 @@ public class DualDatabaseTestInvocationContextProviderTest { private static int postgresqlTestCounter = 0; @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @TestTemplate void testToUseTransactionManager() { diff --git a/core/src/test/java/google/registry/testing/InjectRule.java b/core/src/test/java/google/registry/testing/InjectRule.java index 71c4ba2b08f..3fffb31d73a 100644 --- a/core/src/test/java/google/registry/testing/InjectRule.java +++ b/core/src/test/java/google/registry/testing/InjectRule.java @@ -24,10 +24,9 @@ import javax.annotation.Nullable; import org.junit.jupiter.api.extension.AfterEachCallback; import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.rules.ExternalResource; /** - * JUnit Rule for overriding {@code private static} fields during a test. + * JUnit extension for overriding {@code private static} fields during a test. * *

This rule uses reflection to change the value of a field while your test is running and then * restore it to its original value after it's done (even if the test fails). The injection will @@ -88,7 +87,7 @@ * @see google.registry.util.NonFinalForTesting * @see org.junit.rules.ExternalResource */ -public class InjectRule extends ExternalResource implements AfterEachCallback { +public class InjectRule implements AfterEachCallback { private static class Change { private final Field field; @@ -144,12 +143,7 @@ public void setStaticField(Class clazz, String fieldName, @Nullable Object ne } @Override - public void afterEach(ExtensionContext context) throws Exception { - after(); - } - - @Override - protected void after() { + public void afterEach(ExtensionContext context) { RuntimeException thrown = null; for (Change change : changes) { try { diff --git a/core/src/test/java/google/registry/testing/SqlHelper.java b/core/src/test/java/google/registry/testing/SqlHelper.java index 52136e76e88..59bd10d3bfa 100644 --- a/core/src/test/java/google/registry/testing/SqlHelper.java +++ b/core/src/test/java/google/registry/testing/SqlHelper.java @@ -16,7 +16,7 @@ import static com.google.common.truth.Truth.assertThat; import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm; -import static google.registry.testing.AppEngineRule.makeRegistrar1; +import static google.registry.testing.AppEngineExtension.makeRegistrar1; import static org.junit.Assert.assertThrows; import com.google.common.base.Throwables; diff --git a/core/src/test/java/google/registry/testing/UserInfo.java b/core/src/test/java/google/registry/testing/UserInfo.java index f13d55b60d1..7000a55eb6e 100644 --- a/core/src/test/java/google/registry/testing/UserInfo.java +++ b/core/src/test/java/google/registry/testing/UserInfo.java @@ -16,7 +16,9 @@ import com.google.auto.value.AutoValue; -/** Container for values passed to {@link AppEngineRule} to set the logged in user for tests. */ +/** + * Container for values passed to {@link AppEngineExtension} to set the logged in user for tests. + */ @AutoValue public abstract class UserInfo { diff --git a/core/src/test/java/google/registry/testing/mapreduce/MapreduceTestCase.java b/core/src/test/java/google/registry/testing/mapreduce/MapreduceTestCase.java index 639f7247ae1..bf2d97784ed 100644 --- a/core/src/test/java/google/registry/testing/mapreduce/MapreduceTestCase.java +++ b/core/src/test/java/google/registry/testing/mapreduce/MapreduceTestCase.java @@ -34,7 +34,7 @@ import com.google.common.base.Splitter; import com.google.common.flogger.FluentLogger; import google.registry.mapreduce.MapreduceRunner; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.util.AppEngineServiceUtils; import google.registry.util.AppEngineServiceUtilsImpl; @@ -83,8 +83,12 @@ public abstract class MapreduceTestCase { private LocalTaskQueue taskQueue; @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withLocalModules().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder() + .withDatastoreAndCloudSql() + .withLocalModules() + .withTaskQueue() + .build(); private AppEngineServiceUtils appEngineServiceUtils; diff --git a/core/src/test/java/google/registry/tldconfig/idn/IdnLabelValidatorTest.java b/core/src/test/java/google/registry/tldconfig/idn/IdnLabelValidatorTest.java index 2ec2610ccd9..5717162862c 100644 --- a/core/src/test/java/google/registry/tldconfig/idn/IdnLabelValidatorTest.java +++ b/core/src/test/java/google/registry/tldconfig/idn/IdnLabelValidatorTest.java @@ -18,13 +18,10 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link IdnLabelValidator}. */ -@RunWith(JUnit4.class) -public class IdnLabelValidatorTest { +class IdnLabelValidatorTest { private IdnLabelValidator idnLabelValidator = IdnLabelValidator.createDefaultIdnLabelValidator(); @@ -86,22 +83,22 @@ private void doJapaneseLanguageTests(String tld) { } @Test - public void testMinna() { + void testMinna() { doJapaneseLanguageTests("xn--q9jyb4c"); } @Test - public void testFoo() { + void testFoo() { doJapaneseLanguageTests("foo"); } @Test - public void testSoy() { + void testSoy() { doJapaneseLanguageTests("soy"); } @Test - public void testOverridenTables() { + void testOverridenTables() { // Set .tld to have only the extended latin table and not japanese. idnLabelValidator = new IdnLabelValidator( diff --git a/core/src/test/java/google/registry/tldconfig/idn/IdnTableTest.java b/core/src/test/java/google/registry/tldconfig/idn/IdnTableTest.java index 51109d1f522..3fa902fb968 100644 --- a/core/src/test/java/google/registry/tldconfig/idn/IdnTableTest.java +++ b/core/src/test/java/google/registry/tldconfig/idn/IdnTableTest.java @@ -20,15 +20,13 @@ import com.google.common.collect.ImmutableList; import java.net.URI; import java.util.Optional; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link IdnTable}. */ -@RunWith(JUnit4.class) -public class IdnTableTest { +class IdnTableTest { + @Test - public void testDigits() { + void testDigits() { ImmutableList of = ImmutableList.of( "# URL: https://love.example/lolcatattack.txt", "# Policy: https://love.example/policy.html", @@ -49,7 +47,7 @@ public void testDigits() { } @Test - public void testIgnoreCommentAndEmptyLines() { + void testIgnoreCommentAndEmptyLines() { IdnTable idnTable = IdnTable.createFrom("lolcatattack", ImmutableList.of( "# URL: https://love.example/lolcatattack.txt", "# Policy: https://love.example/policy.html", @@ -70,7 +68,7 @@ public void testIgnoreCommentAndEmptyLines() { } @Test - public void testSurrogates() { + void testSurrogates() { IdnTable idnTable = IdnTable.createFrom( "lolcatattack", @@ -92,7 +90,7 @@ public void testSurrogates() { } @Test - public void testSpecialComments_getParsed() { + void testSpecialComments_getParsed() { ImmutableList of = ImmutableList.of( "# URL: https://love.example/lolcatattack.txt", @@ -104,7 +102,7 @@ public void testSpecialComments_getParsed() { } @Test - public void testMissingUrl_throwsNpe() { + void testMissingUrl_throwsNpe() { ImmutableList of = ImmutableList.of("# Policy: https://love.example/policy.html"); NullPointerException thrown = assertThrows( @@ -113,7 +111,7 @@ public void testMissingUrl_throwsNpe() { } @Test - public void testMissingPolicy_throwsNpe() { + void testMissingPolicy_throwsNpe() { ImmutableList of = ImmutableList.of("# URL: https://love.example/sloth.txt"); NullPointerException thrown = assertThrows( diff --git a/core/src/test/java/google/registry/tmch/LordnTaskUtilsTest.java b/core/src/test/java/google/registry/tmch/LordnTaskUtilsTest.java index e7e321d1ef8..cdd8c4302f8 100644 --- a/core/src/test/java/google/registry/tmch/LordnTaskUtilsTest.java +++ b/core/src/test/java/google/registry/tmch/LordnTaskUtilsTest.java @@ -28,7 +28,7 @@ import google.registry.model.domain.launch.LaunchNotice; import google.registry.model.ofy.Ofy; import google.registry.model.registrar.Registrar.Type; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import google.registry.testing.TaskQueueHelper.TaskMatcher; @@ -44,8 +44,8 @@ public class LordnTaskUtilsTest { private static final Clock clock = new FakeClock(DateTime.parse("2010-05-01T10:11:12Z")); @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java b/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java index f42acd0d036..003272b6ae0 100644 --- a/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java +++ b/core/src/test/java/google/registry/tmch/NordnUploadActionTest.java @@ -54,7 +54,7 @@ import google.registry.model.domain.launch.LaunchNotice; import google.registry.model.ofy.Ofy; import google.registry.model.registry.Registry; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeSleeper; import google.registry.testing.InjectRule; @@ -97,8 +97,8 @@ class NordnUploadActionTest { private static final String LOCATION_URL = "http://trololol"; @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/tmch/NordnVerifyActionTest.java b/core/src/test/java/google/registry/tmch/NordnVerifyActionTest.java index 80b792b747e..27f55d19aa4 100644 --- a/core/src/test/java/google/registry/tmch/NordnVerifyActionTest.java +++ b/core/src/test/java/google/registry/tmch/NordnVerifyActionTest.java @@ -34,7 +34,7 @@ import com.google.appengine.api.urlfetch.URLFetchService; import google.registry.model.registry.Registry; import google.registry.request.HttpException.ConflictException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeResponse; import java.net.URL; import java.util.Optional; @@ -78,8 +78,8 @@ class NordnVerifyActionTest { + "bogpog,4611\n"; @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @Mock private URLFetchService fetchService; @Mock private HTTPResponse httpResponse; diff --git a/core/src/test/java/google/registry/tmch/SmdrlCsvParserTest.java b/core/src/test/java/google/registry/tmch/SmdrlCsvParserTest.java index 08c5ae5ae3e..b8a9090f0e7 100644 --- a/core/src/test/java/google/registry/tmch/SmdrlCsvParserTest.java +++ b/core/src/test/java/google/registry/tmch/SmdrlCsvParserTest.java @@ -23,7 +23,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.io.CharSource; import google.registry.model.smd.SignedMarkRevocationList; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import org.joda.time.DateTime; import org.junit.jupiter.api.Test; @@ -32,7 +32,8 @@ /** Unit tests for {@link SmdrlCsvParser}. */ class SmdrlCsvParserTest { - @RegisterExtension public final AppEngineRule appEngine = AppEngineRule.builder().build(); + @RegisterExtension + public final AppEngineExtension appEngine = AppEngineExtension.builder().build(); private final FakeClock clock = new FakeClock(); diff --git a/core/src/test/java/google/registry/tmch/TmchActionTestCase.java b/core/src/test/java/google/registry/tmch/TmchActionTestCase.java index d94eaabdafc..ce4688a6ef3 100644 --- a/core/src/test/java/google/registry/tmch/TmchActionTestCase.java +++ b/core/src/test/java/google/registry/tmch/TmchActionTestCase.java @@ -21,7 +21,7 @@ import com.google.appengine.api.urlfetch.HTTPRequest; import com.google.appengine.api.urlfetch.HTTPResponse; import com.google.appengine.api.urlfetch.URLFetchService; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.BouncyCastleProviderExtension; import google.registry.testing.FakeClock; import org.junit.jupiter.api.BeforeEach; @@ -40,7 +40,8 @@ abstract class TmchActionTestCase { static final String MARKSDB_URL = "http://127.0.0.1/love"; @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension public final BouncyCastleProviderExtension bouncy = new BouncyCastleProviderExtension(); diff --git a/core/src/test/java/google/registry/tmch/TmchCertificateAuthorityTest.java b/core/src/test/java/google/registry/tmch/TmchCertificateAuthorityTest.java index c02e8076599..462753931d9 100644 --- a/core/src/test/java/google/registry/tmch/TmchCertificateAuthorityTest.java +++ b/core/src/test/java/google/registry/tmch/TmchCertificateAuthorityTest.java @@ -23,7 +23,7 @@ import static org.junit.Assert.assertThrows; import google.registry.model.tmch.TmchCrl; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import java.security.SignatureException; import java.security.cert.CertificateExpiredException; @@ -40,7 +40,8 @@ class TmchCertificateAuthorityTest { private static final String REVOKED_TEST_CERTIFICATE = loadFile("icann-tmch-test-revoked.crt"); @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private FakeClock clock = new FakeClock(DateTime.parse("2014-01-01T00:00:00Z")); diff --git a/core/src/test/java/google/registry/tmch/TmchTestDataExpirationTest.java b/core/src/test/java/google/registry/tmch/TmchTestDataExpirationTest.java index c16d858432f..3a7b1105259 100644 --- a/core/src/test/java/google/registry/tmch/TmchTestDataExpirationTest.java +++ b/core/src/test/java/google/registry/tmch/TmchTestDataExpirationTest.java @@ -22,7 +22,7 @@ import google.registry.flows.EppException; import google.registry.flows.domain.DomainFlowTmchUtils; import google.registry.model.smd.EncodedSignedMark; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.util.ResourceUtils; import google.registry.util.SystemClock; import java.nio.file.Path; @@ -34,7 +34,8 @@ class TmchTestDataExpirationTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private static final FluentLogger logger = FluentLogger.forEnclosingClass(); diff --git a/core/src/test/java/google/registry/tmch/TmchXmlSignatureTest.java b/core/src/test/java/google/registry/tmch/TmchXmlSignatureTest.java index 7befe34f468..b3ce45db139 100644 --- a/core/src/test/java/google/registry/tmch/TmchXmlSignatureTest.java +++ b/core/src/test/java/google/registry/tmch/TmchXmlSignatureTest.java @@ -19,7 +19,7 @@ import static org.junit.Assert.assertThrows; import google.registry.config.RegistryConfig.ConfigModule.TmchCaMode; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import google.registry.tmch.TmchXmlSignature.CertificateSignatureException; @@ -40,7 +40,8 @@ class TmchXmlSignatureTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension public final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/tools/CommandTestCase.java b/core/src/test/java/google/registry/tools/CommandTestCase.java index d6d873b8650..88ae2deb890 100644 --- a/core/src/test/java/google/registry/tools/CommandTestCase.java +++ b/core/src/test/java/google/registry/tools/CommandTestCase.java @@ -29,7 +29,7 @@ import com.google.common.io.Files; import com.google.common.reflect.TypeToken; import google.registry.model.poll.PollMessage; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.CertificateSamples; import google.registry.testing.FakeClock; import google.registry.testing.SystemPropertyExtension; @@ -69,8 +69,8 @@ public abstract class CommandTestCase { public final FakeClock fakeClock = new FakeClock(); @RegisterExtension - public final AppEngineRule appEngine = - AppEngineRule.builder() + public final AppEngineExtension appEngine = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withClock(fakeClock) .withTaskQueue() diff --git a/core/src/test/java/google/registry/tools/DomainLockUtilsTest.java b/core/src/test/java/google/registry/tools/DomainLockUtilsTest.java index 1e286480f78..3d337ea6596 100644 --- a/core/src/test/java/google/registry/tools/DomainLockUtilsTest.java +++ b/core/src/test/java/google/registry/tools/DomainLockUtilsTest.java @@ -45,7 +45,7 @@ import google.registry.model.registry.Registry; import google.registry.model.reporting.HistoryEntry; import google.registry.schema.domain.RegistryLock; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.DatastoreHelper; import google.registry.testing.DeterministicStringGenerator; import google.registry.testing.FakeClock; @@ -72,8 +72,8 @@ public final class DomainLockUtilsTest { private DomainLockUtils domainLockUtils; @RegisterExtension - public final AppEngineRule appEngineRule = - AppEngineRule.builder() + public final AppEngineExtension appEngineRule = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withClock(clock) .withTaskQueue() diff --git a/core/src/test/java/google/registry/tools/EntityWrapperTest.java b/core/src/test/java/google/registry/tools/EntityWrapperTest.java index bf2b76979a6..85494c6ad45 100644 --- a/core/src/test/java/google/registry/tools/EntityWrapperTest.java +++ b/core/src/test/java/google/registry/tools/EntityWrapperTest.java @@ -21,7 +21,7 @@ import com.google.common.collect.ImmutableList; import com.google.storage.onestore.v3.OnestoreEntity.EntityProto; import com.google.storage.onestore.v3.OnestoreEntity.Property; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -32,7 +32,8 @@ public final class EntityWrapperTest { private static final int ARBITRARY_KEY_ID = 1001; @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testEquals() { diff --git a/core/src/test/java/google/registry/tools/EppLifecycleToolsTest.java b/core/src/test/java/google/registry/tools/EppLifecycleToolsTest.java index 4a247667e9e..3fa7b0cb4e0 100644 --- a/core/src/test/java/google/registry/tools/EppLifecycleToolsTest.java +++ b/core/src/test/java/google/registry/tools/EppLifecycleToolsTest.java @@ -27,7 +27,7 @@ import google.registry.model.billing.BillingEvent.Reason; import google.registry.model.domain.DomainBase; import google.registry.model.reporting.HistoryEntry.Type; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.util.Clock; import java.util.List; import org.joda.money.Money; @@ -40,8 +40,8 @@ class EppLifecycleToolsTest extends EppTestCase { @RegisterExtension - final AppEngineRule appEngine = - AppEngineRule.builder().withDatastoreAndCloudSql().withTaskQueue().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().withTaskQueue().build(); @BeforeEach void beforeEach() { diff --git a/core/src/test/java/google/registry/tools/LevelDbFileBuilderTest.java b/core/src/test/java/google/registry/tools/LevelDbFileBuilderTest.java index 9daf61e1cff..c3abc4384b6 100644 --- a/core/src/test/java/google/registry/tools/LevelDbFileBuilderTest.java +++ b/core/src/test/java/google/registry/tools/LevelDbFileBuilderTest.java @@ -23,7 +23,7 @@ import com.google.common.collect.ImmutableList; import com.google.storage.onestore.v3.OnestoreEntity.EntityProto; import google.registry.model.contact.ContactResource; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.DatastoreHelper; import google.registry.tools.EntityWrapper.Property; import java.io.File; @@ -41,7 +41,8 @@ public class LevelDbFileBuilderTest { @TempDir Path tmpDir; @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testSingleRecordWrites() throws IOException { diff --git a/core/src/test/java/google/registry/tools/MutatingCommandTest.java b/core/src/test/java/google/registry/tools/MutatingCommandTest.java index 570ab36e38d..c9ec15c0c67 100644 --- a/core/src/test/java/google/registry/tools/MutatingCommandTest.java +++ b/core/src/test/java/google/registry/tools/MutatingCommandTest.java @@ -26,7 +26,7 @@ import google.registry.model.host.HostResource; import google.registry.model.registrar.Registrar; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.util.Arrays; import org.joda.time.DateTime; import org.junit.jupiter.api.BeforeEach; @@ -37,7 +37,8 @@ public class MutatingCommandTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private Registrar registrar1; private Registrar registrar2; diff --git a/core/src/test/java/google/registry/tools/RecordAccumulatorTest.java b/core/src/test/java/google/registry/tools/RecordAccumulatorTest.java index 3fb6851230c..31388d25344 100644 --- a/core/src/test/java/google/registry/tools/RecordAccumulatorTest.java +++ b/core/src/test/java/google/registry/tools/RecordAccumulatorTest.java @@ -17,7 +17,7 @@ import static com.google.common.truth.Truth.assertThat; import com.google.common.collect.ImmutableSet; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.tools.EntityWrapper.Property; import java.io.File; import java.io.IOException; @@ -33,7 +33,8 @@ public class RecordAccumulatorTest { @TempDir public File tmpDir; @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @Test void testReadDirectory() throws IOException { diff --git a/core/src/test/java/google/registry/tools/RegistryToolTest.java b/core/src/test/java/google/registry/tools/RegistryToolTest.java index aa6ac623f62..ef34848d511 100644 --- a/core/src/test/java/google/registry/tools/RegistryToolTest.java +++ b/core/src/test/java/google/registry/tools/RegistryToolTest.java @@ -18,7 +18,7 @@ import static java.nio.charset.StandardCharsets.UTF_8; import static org.junit.Assert.assertThrows; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.concurrent.locks.ReentrantLock; @@ -31,7 +31,8 @@ public class RegistryToolTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); // Lock for stdout/stderr. Note that this is static: since we're dealing with globals, we need // to lock for the entire JVM. diff --git a/core/src/test/java/google/registry/tools/UpdateRegistrarCommandTest.java b/core/src/test/java/google/registry/tools/UpdateRegistrarCommandTest.java index 80c2f59b92a..65ab5cb1768 100644 --- a/core/src/test/java/google/registry/tools/UpdateRegistrarCommandTest.java +++ b/core/src/test/java/google/registry/tools/UpdateRegistrarCommandTest.java @@ -34,7 +34,7 @@ import google.registry.model.registrar.Registrar.State; import google.registry.model.registrar.Registrar.Type; import google.registry.persistence.VKey; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.util.CidrAddressBlock; import java.util.Optional; import org.joda.money.CurrencyUnit; @@ -867,7 +867,7 @@ void testFailure_badEmail() { private void persistWhoisAbuseContact() { persistResource( - AppEngineRule.makeRegistrarContact1() + AppEngineExtension.makeRegistrarContact1() .asBuilder() .setVisibleInDomainWhoisAsAbuse(true) .build()); diff --git a/core/src/test/java/google/registry/tools/server/CreateGroupsActionTest.java b/core/src/test/java/google/registry/tools/server/CreateGroupsActionTest.java index eed99634aa8..d5e1309571b 100644 --- a/core/src/test/java/google/registry/tools/server/CreateGroupsActionTest.java +++ b/core/src/test/java/google/registry/tools/server/CreateGroupsActionTest.java @@ -27,7 +27,7 @@ import google.registry.request.HttpException.BadRequestException; import google.registry.request.HttpException.InternalServerErrorException; import google.registry.request.Response; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.InjectRule; import java.util.Optional; import org.junit.jupiter.api.Test; @@ -37,7 +37,8 @@ class CreateGroupsActionTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension final InjectRule inject = new InjectRule(); diff --git a/core/src/test/java/google/registry/tools/server/CreatePremiumListActionTest.java b/core/src/test/java/google/registry/tools/server/CreatePremiumListActionTest.java index a1261291101..9c2c19e823f 100644 --- a/core/src/test/java/google/registry/tools/server/CreatePremiumListActionTest.java +++ b/core/src/test/java/google/registry/tools/server/CreatePremiumListActionTest.java @@ -24,7 +24,7 @@ import google.registry.model.registry.Registry; import google.registry.model.registry.label.PremiumList; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeJsonResponse; import org.joda.money.Money; import org.junit.jupiter.api.BeforeEach; @@ -37,7 +37,8 @@ public class CreatePremiumListActionTest { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private CreatePremiumListAction action; private FakeJsonResponse response; diff --git a/core/src/test/java/google/registry/tools/server/DeleteEntityActionTest.java b/core/src/test/java/google/registry/tools/server/DeleteEntityActionTest.java index 3475318cca9..8a4eaed6e1e 100644 --- a/core/src/test/java/google/registry/tools/server/DeleteEntityActionTest.java +++ b/core/src/test/java/google/registry/tools/server/DeleteEntityActionTest.java @@ -24,7 +24,7 @@ import com.google.appengine.api.datastore.KeyFactory; import google.registry.model.registry.label.ReservedList; import google.registry.request.HttpException.BadRequestException; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeResponse; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -33,7 +33,8 @@ class DeleteEntityActionTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private FakeResponse response = new FakeResponse(); diff --git a/core/src/test/java/google/registry/tools/server/ListActionTestCase.java b/core/src/test/java/google/registry/tools/server/ListActionTestCase.java index db61df62aa2..759b4aadcb4 100644 --- a/core/src/test/java/google/registry/tools/server/ListActionTestCase.java +++ b/core/src/test/java/google/registry/tools/server/ListActionTestCase.java @@ -17,7 +17,7 @@ import static com.google.common.truth.Truth.assertThat; import static javax.servlet.http.HttpServletResponse.SC_OK; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeJsonResponse; import java.util.List; import java.util.Optional; @@ -30,7 +30,8 @@ public class ListActionTestCase { @RegisterExtension - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private FakeJsonResponse response; diff --git a/core/src/test/java/google/registry/tools/server/UpdatePremiumListActionTest.java b/core/src/test/java/google/registry/tools/server/UpdatePremiumListActionTest.java index c357c7a896d..94ca8f0f3d7 100644 --- a/core/src/test/java/google/registry/tools/server/UpdatePremiumListActionTest.java +++ b/core/src/test/java/google/registry/tools/server/UpdatePremiumListActionTest.java @@ -27,7 +27,7 @@ import google.registry.model.registry.Registry; import google.registry.model.registry.label.PremiumList; import google.registry.schema.tld.PremiumListDao; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.DatastoreHelper; import google.registry.testing.FakeJsonResponse; import java.math.BigDecimal; @@ -40,7 +40,8 @@ class UpdatePremiumListActionTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private UpdatePremiumListAction action; private FakeJsonResponse response; diff --git a/core/src/test/java/google/registry/tools/server/VerifyOteActionTest.java b/core/src/test/java/google/registry/tools/server/VerifyOteActionTest.java index 7542432c759..c49995601b6 100644 --- a/core/src/test/java/google/registry/tools/server/VerifyOteActionTest.java +++ b/core/src/test/java/google/registry/tools/server/VerifyOteActionTest.java @@ -19,7 +19,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import google.registry.model.OteStatsTestHelper; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import java.util.Map; import java.util.regex.Pattern; import org.junit.jupiter.api.Test; @@ -29,7 +29,8 @@ class VerifyOteActionTest { @RegisterExtension - final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngine = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); private final VerifyOteAction action = new VerifyOteAction(); diff --git a/core/src/test/java/google/registry/ui/forms/FormFieldExceptionTest.java b/core/src/test/java/google/registry/ui/forms/FormFieldExceptionTest.java index 755f91ffb2c..fc389133ccd 100644 --- a/core/src/test/java/google/registry/ui/forms/FormFieldExceptionTest.java +++ b/core/src/test/java/google/registry/ui/forms/FormFieldExceptionTest.java @@ -18,15 +18,13 @@ import static org.junit.Assert.assertThrows; import com.google.common.testing.NullPointerTester; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link FormFieldException}. */ -@RunWith(JUnit4.class) -public class FormFieldExceptionTest { +class FormFieldExceptionTest { + @Test - public void testGetFieldName_multiplePropagations_joinsUsingJsonNotation() { + void testGetFieldName_multiplePropagations_joinsUsingJsonNotation() { assertThat( new FormFieldException("This field is required.") .propagate("attack") @@ -38,7 +36,7 @@ public void testGetFieldName_multiplePropagations_joinsUsingJsonNotation() { } @Test - public void testGetFieldName_singlePropagations_noFancyJoining() { + void testGetFieldName_singlePropagations_noFancyJoining() { assertThat( new FormFieldException("This field is required.") .propagate("cat") @@ -47,14 +45,14 @@ public void testGetFieldName_singlePropagations_noFancyJoining() { } @Test - public void testGetFieldName_noPropagations_throwsIse() { + void testGetFieldName_noPropagations_throwsIse() { assertThrows( IllegalStateException.class, () -> new FormFieldException("This field is required.").getFieldName()); } @Test - public void testNullness() { + void testNullness() { NullPointerTester tester = new NullPointerTester() .setDefault(FormField.class, FormField.named("love").build()); tester.testAllPublicConstructors(FormFieldException.class); diff --git a/core/src/test/java/google/registry/ui/forms/FormFieldTest.java b/core/src/test/java/google/registry/ui/forms/FormFieldTest.java index 071afde5470..0e504156adc 100644 --- a/core/src/test/java/google/registry/ui/forms/FormFieldTest.java +++ b/core/src/test/java/google/registry/ui/forms/FormFieldTest.java @@ -34,45 +34,45 @@ import java.util.List; import java.util.Set; import java.util.function.Function; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link FormField}. */ -@RunWith(JUnit4.class) -public class FormFieldTest { +class FormFieldTest { - private enum ICanHazEnum { LOL, CAT } + private enum ICanHazEnum { + LOL, + CAT + } @Test - public void testConvert_nullString_notPresent() { + void testConvert_nullString_notPresent() { assertThat(FormField.named("lol").build().convert(null)).isEmpty(); } @Test - public void testConvert_emptyString_returnsEmpty() { + void testConvert_emptyString_returnsEmpty() { assertThat(FormField.named("lol").build().convert("").get()).isEmpty(); } @Test - public void testWithDefault_hasValue_returnsValue() { + void testWithDefault_hasValue_returnsValue() { assertThat(FormField.named("lol").withDefault("default").build().convert("return me!")) .hasValue("return me!"); } @Test - public void testWithDefault_nullValue_returnsDefault() { + void testWithDefault_nullValue_returnsDefault() { assertThat(FormField.named("lol").withDefault("default").build().convert(null)) .hasValue("default"); } @Test - public void testEmptyToNull_emptyString_notPresent() { + void testEmptyToNull_emptyString_notPresent() { assertThat(FormField.named("lol").emptyToNull().build().convert("")).isEmpty(); } @Test - public void testEmptyToNullRequired_emptyString_throwsFfe() { + void testEmptyToNullRequired_emptyString_throwsFfe() { FormFieldException thrown = assertThrows( FormFieldException.class, @@ -81,18 +81,18 @@ public void testEmptyToNullRequired_emptyString_throwsFfe() { } @Test - public void testEmptyToNull_typeMismatch() { + void testEmptyToNull_typeMismatch() { assertThrows( IllegalStateException.class, () -> FormField.named("lol", Object.class).emptyToNull()); } @Test - public void testNamedLong() { + void testNamedLong() { assertThat(FormField.named("lol", Long.class).build().convert(666L)).hasValue(666L); } @Test - public void testUppercased() { + void testUppercased() { FormField field = FormField.named("lol").uppercased().build(); assertThat(field.convert(null)).isEmpty(); assertThat(field.convert("foo")).hasValue("FOO"); @@ -100,7 +100,7 @@ public void testUppercased() { } @Test - public void testLowercased() { + void testLowercased() { FormField field = FormField.named("lol").lowercased().build(); assertThat(field.convert(null)).isEmpty(); assertThat(field.convert("foo")).hasValue("foo"); @@ -108,43 +108,40 @@ public void testLowercased() { } @Test - public void testIn_passesThroughNull() { - FormField field = FormField.named("lol") - .in(ImmutableSet.of("foo", "bar")) - .build(); + void testIn_passesThroughNull() { + FormField field = + FormField.named("lol").in(ImmutableSet.of("foo", "bar")).build(); assertThat(field.convert(null)).isEmpty(); } @Test - public void testIn_valueIsContainedInSet() { - FormField field = FormField.named("lol") - .in(ImmutableSet.of("foo", "bar")) - .build(); + void testIn_valueIsContainedInSet() { + FormField field = + FormField.named("lol").in(ImmutableSet.of("foo", "bar")).build(); assertThat(field.convert("foo")).hasValue("foo"); assertThat(field.convert("bar")).hasValue("bar"); } @Test - public void testIn_valueMissingFromSet() { - FormField field = FormField.named("lol") - .in(ImmutableSet.of("foo", "bar")) - .build(); + void testIn_valueMissingFromSet() { + FormField field = + FormField.named("lol").in(ImmutableSet.of("foo", "bar")).build(); FormFieldException thrown = assertThrows(FormFieldException.class, () -> field.convert("omfg")); assertThat(thrown, equalTo(new FormFieldException("Unrecognized value.").propagate("lol"))); } @Test - public void testRange_hasLowerBound_nullValue_passesThrough() { + void testRange_hasLowerBound_nullValue_passesThrough() { assertThat(FormField.named("lol").range(atLeast(5)).build().convert(null)).isEmpty(); } @Test - public void testRange_minimum_stringLengthEqualToMinimum_doesNothing() { + void testRange_minimum_stringLengthEqualToMinimum_doesNothing() { assertThat(FormField.named("lol").range(atLeast(5)).build().convert("hello")).hasValue("hello"); } @Test - public void testRange_minimum_stringLengthShorterThanMinimum_throwsFfe() { + void testRange_minimum_stringLengthShorterThanMinimum_throwsFfe() { FormFieldException thrown = assertThrows( FormFieldException.class, @@ -153,17 +150,17 @@ public void testRange_minimum_stringLengthShorterThanMinimum_throwsFfe() { } @Test - public void testRange_noLowerBound_nullValue_passThrough() { + void testRange_noLowerBound_nullValue_passThrough() { assertThat(FormField.named("lol").range(atMost(5)).build().convert(null)).isEmpty(); } @Test - public void testRange_maximum_stringLengthEqualToMaximum_doesNothing() { + void testRange_maximum_stringLengthEqualToMaximum_doesNothing() { assertThat(FormField.named("lol").range(atMost(5)).build().convert("hello")).hasValue("hello"); } @Test - public void testRange_maximum_stringLengthShorterThanMaximum_throwsFfe() { + void testRange_maximum_stringLengthShorterThanMaximum_throwsFfe() { FormFieldException thrown = assertThrows( FormFieldException.class, @@ -172,7 +169,7 @@ public void testRange_maximum_stringLengthShorterThanMaximum_throwsFfe() { } @Test - public void testRange_numericTypes() { + void testRange_numericTypes() { FormField.named("lol", Byte.class).range(closed(5, 10)).build().convert((byte) 7); FormField.named("lol", Short.class).range(closed(5, 10)).build().convert((short) 7); FormField.named("lol", Integer.class).range(closed(5, 10)).build().convert(7); @@ -182,19 +179,19 @@ public void testRange_numericTypes() { } @Test - public void testRange_typeMismatch() { + void testRange_typeMismatch() { assertThrows( IllegalStateException.class, () -> FormField.named("lol", Object.class).range(atMost(5))); } @Test - public void testMatches_matches_doesNothing() { + void testMatches_matches_doesNothing() { assertThat(FormField.named("lol").matches(Pattern.compile("[a-z]+")).build().convert("abc")) .hasValue("abc"); } @Test - public void testMatches_mismatch_throwsFfeAndShowsDefaultErrorMessageWithPattern() { + void testMatches_mismatch_throwsFfeAndShowsDefaultErrorMessageWithPattern() { FormFieldException thrown = assertThrows( FormFieldException.class, @@ -208,14 +205,14 @@ public void testMatches_mismatch_throwsFfeAndShowsDefaultErrorMessageWithPattern } @Test - public void testMatches_typeMismatch() { + void testMatches_typeMismatch() { assertThrows( IllegalStateException.class, () -> FormField.named("lol", Object.class).matches(Pattern.compile("."))); } @Test - public void testRetains() { + void testRetains() { assertThat( FormField.named("lol") .retains(CharMatcher.anyOf("0123456789")) @@ -225,7 +222,7 @@ public void testRetains() { } @Test - public void testCast() { + void testCast() { assertThat( FormField.named("lol") .transform(Integer.class, Integer::parseInt) @@ -235,7 +232,7 @@ public void testCast() { } @Test - public void testCast_twice() { + void testCast_twice() { assertThat( FormField.named("lol") .transform(Object.class, Integer::parseInt) @@ -246,18 +243,17 @@ public void testCast_twice() { } @Test - public void testAsList_null_notPresent() { + void testAsList_null_notPresent() { assertThat(FormField.named("lol").asList().build().convert(null)).isEmpty(); } @Test - public void testAsList_empty_returnsEmpty() { - assertThat(FormField.named("lol").asList().build().convert(ImmutableList.of()).get()) - .isEmpty(); + void testAsList_empty_returnsEmpty() { + assertThat(FormField.named("lol").asList().build().convert(ImmutableList.of()).get()).isEmpty(); } @Test - public void testAsListEmptyToNullRequired_empty_throwsFfe() { + void testAsListEmptyToNullRequired_empty_throwsFfe() { FormFieldException thrown = assertThrows( FormFieldException.class, @@ -272,38 +268,31 @@ public void testAsListEmptyToNullRequired_empty_throwsFfe() { } @Test - public void testListEmptyToNull_empty_notPresent() { - assertThat(FormField.named("lol") - .asList() - .emptyToNull() - .build() - .convert(ImmutableList.of())) + void testListEmptyToNull_empty_notPresent() { + assertThat(FormField.named("lol").asList().emptyToNull().build().convert(ImmutableList.of())) .isEmpty(); } @Test - public void testAsEnum() { - FormField omgField = FormField.named("omg") - .asEnum(ICanHazEnum.class) - .build(); + void testAsEnum() { + FormField omgField = + FormField.named("omg").asEnum(ICanHazEnum.class).build(); assertThat(omgField.convert("LOL").get()).isEqualTo(ICanHazEnum.LOL); assertThat(omgField.convert("CAT").get()).isEqualTo(ICanHazEnum.CAT); } @Test - public void testAsEnum_lowercase_works() { - FormField omgField = FormField.named("omg") - .asEnum(ICanHazEnum.class) - .build(); + void testAsEnum_lowercase_works() { + FormField omgField = + FormField.named("omg").asEnum(ICanHazEnum.class).build(); assertThat(omgField.convert("lol").get()).isEqualTo(ICanHazEnum.LOL); assertThat(omgField.convert("cat").get()).isEqualTo(ICanHazEnum.CAT); } @Test - public void testAsEnum_badInput_throwsFfe() { - FormField omgField = FormField.named("omg") - .asEnum(ICanHazEnum.class) - .build(); + void testAsEnum_badInput_throwsFfe() { + FormField omgField = + FormField.named("omg").asEnum(ICanHazEnum.class).build(); FormFieldException thrown = assertThrows(FormFieldException.class, () -> omgField.convert("helo")); assertThat( @@ -313,64 +302,65 @@ public void testAsEnum_badInput_throwsFfe() { } @Test - public void testSplitList() { - FormField> field = FormField.named("lol") - .asList(Splitter.on(',').omitEmptyStrings()) - .build(); - assertThat(field.convert("oh,my,goth").get()) - .containsExactly("oh", "my", "goth") - .inOrder(); + void testSplitList() { + FormField> field = + FormField.named("lol").asList(Splitter.on(',').omitEmptyStrings()).build(); + assertThat(field.convert("oh,my,goth").get()).containsExactly("oh", "my", "goth").inOrder(); assertThat(field.convert("").get()).isEmpty(); assertThat(field.convert(null)).isEmpty(); } @Test - public void testSplitSet() { - FormField> field = FormField.named("lol") - .uppercased() - .asSet(Splitter.on(',').omitEmptyStrings()) - .build(); - assertThat(field.convert("oh,my,goth").get()) - .containsExactly("OH", "MY", "GOTH") - .inOrder(); + void testSplitSet() { + FormField> field = + FormField.named("lol").uppercased().asSet(Splitter.on(',').omitEmptyStrings()).build(); + assertThat(field.convert("oh,my,goth").get()).containsExactly("OH", "MY", "GOTH").inOrder(); assertThat(field.convert("").get()).isEmpty(); assertThat(field.convert(null)).isEmpty(); } @Test - public void testAsList() { + void testAsList() { assertThat( - FormField.named("lol").asList().build().convert(ImmutableList.of("lol", "cat", "")).get()) - .containsExactly("lol", "cat", "").inOrder(); + FormField.named("lol") + .asList() + .build() + .convert(ImmutableList.of("lol", "cat", "")) + .get()) + .containsExactly("lol", "cat", "") + .inOrder(); } @Test - public void testAsList_trimmedEmptyToNullOnItems() { - assertThat(FormField.named("lol") - .trimmed() - .emptyToNull() - .matches(Pattern.compile("[a-z]+")) - .asList() - .range(closed(1, 2)) - .build() - .convert(ImmutableList.of("lol\n", "\tcat ")) - .get()) - .containsExactly("lol", "cat").inOrder(); + void testAsList_trimmedEmptyToNullOnItems() { + assertThat( + FormField.named("lol") + .trimmed() + .emptyToNull() + .matches(Pattern.compile("[a-z]+")) + .asList() + .range(closed(1, 2)) + .build() + .convert(ImmutableList.of("lol\n", "\tcat ")) + .get()) + .containsExactly("lol", "cat") + .inOrder(); } @Test - public void testAsList_nullElements_getIgnored() { - assertThat(FormField.named("lol") - .emptyToNull() - .asList() - .build() - .convert(ImmutableList.of("omg", "")) - .get()) - .containsExactly("omg"); + void testAsList_nullElements_getIgnored() { + assertThat( + FormField.named("lol") + .emptyToNull() + .asList() + .build() + .convert(ImmutableList.of("omg", "")) + .get()) + .containsExactly("omg"); } @Test - public void testAsListRequiredElements_nullElement_throwsFfeWithIndex() { + void testAsListRequiredElements_nullElement_throwsFfeWithIndex() { FormFieldException thrown = assertThrows( FormFieldException.class, @@ -387,7 +377,7 @@ public void testAsListRequiredElements_nullElement_throwsFfeWithIndex() { } @Test - public void testMapAsListRequiredElements_nullElement_throwsFfeWithIndexAndKey() { + void testMapAsListRequiredElements_nullElement_throwsFfeWithIndexAndKey() { FormFieldException thrown = assertThrows( FormFieldException.class, @@ -415,13 +405,13 @@ public void testMapAsListRequiredElements_nullElement_throwsFfeWithIndexAndKey() } @Test - public void testAsListTrimmed_typeMismatch() { + void testAsListTrimmed_typeMismatch() { FormField.named("lol").trimmed().asList(); assertThrows(IllegalStateException.class, () -> FormField.named("lol").asList().trimmed()); } @Test - public void testAsMatrix() { + void testAsMatrix() { assertThat( FormField.named("lol", Integer.class) .transform(input -> input * 2) @@ -438,30 +428,31 @@ public void testAsMatrix() { ImmutableList.of(4, 6), ImmutableList.of(4, 8)) .inOrder(); - } + } @Test - public void testAsSet() { - assertThat(FormField.named("lol") - .asSet() - .build() - .convert(ImmutableList.of("lol", "cat", "cat")) - .get()) - .containsExactly("lol", "cat"); + void testAsSet() { + assertThat( + FormField.named("lol") + .asSet() + .build() + .convert(ImmutableList.of("lol", "cat", "cat")) + .get()) + .containsExactly("lol", "cat"); } @Test - public void testTrimmed() { + void testTrimmed() { assertThat(FormField.named("lol").trimmed().build().convert(" \thello \t\n")).hasValue("hello"); } @Test - public void testTrimmed_typeMismatch() { + void testTrimmed_typeMismatch() { assertThrows(IllegalStateException.class, () -> FormField.named("lol", Object.class).trimmed()); } @Test - public void testAsBuilder() { + void testAsBuilder() { FormField field = FormField.named("omg").uppercased().build(); assertThat(field.name()).isEqualTo("omg"); assertThat(field.convert("hello")).hasValue("HELLO"); @@ -471,7 +462,7 @@ public void testAsBuilder() { } @Test - public void testAsBuilderNamed() { + void testAsBuilderNamed() { FormField field = FormField.named("omg").uppercased().build(); assertThat(field.name()).isEqualTo("omg"); assertThat(field.convert("hello")).hasValue("HELLO"); @@ -481,7 +472,7 @@ public void testAsBuilderNamed() { } @Test - public void testNullness() { + void testNullness() { NullPointerTester tester = new NullPointerTester() .setDefault(Class.class, Object.class) diff --git a/core/src/test/java/google/registry/ui/forms/FormFieldsTest.java b/core/src/test/java/google/registry/ui/forms/FormFieldsTest.java index b16a7b887e2..4918ab0e6b7 100644 --- a/core/src/test/java/google/registry/ui/forms/FormFieldsTest.java +++ b/core/src/test/java/google/registry/ui/forms/FormFieldsTest.java @@ -21,31 +21,28 @@ import static org.junit.Assert.assertThrows; import com.google.common.testing.NullPointerTester; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link FormFields}. */ -@RunWith(JUnit4.class) -public class FormFieldsTest { +class FormFieldsTest { @Test - public void testXsToken_collapsesAndTrimsWhitespace() { + void testXsToken_collapsesAndTrimsWhitespace() { assertThat(FormFields.XS_TOKEN.convert(" hello \r\n\t there\n")).hasValue("hello there"); } @Test - public void testXsNormalizedString_extraSpaces_doesntCare() { + void testXsNormalizedString_extraSpaces_doesntCare() { assertThat(FormFields.XS_NORMALIZED_STRING.convert("hello there")).hasValue("hello there"); } @Test - public void testXsNormalizedString_sideSpaces_doesntCare() { + void testXsNormalizedString_sideSpaces_doesntCare() { assertThat(FormFields.XS_NORMALIZED_STRING.convert(" hello there ")).hasValue(" hello there "); } @Test - public void testXsNormalizedString_containsNonSpaceWhitespace_fails() { + void testXsNormalizedString_containsNonSpaceWhitespace_fails() { FormFieldException thrown = assertThrows( FormFieldException.class, @@ -58,18 +55,18 @@ public void testXsNormalizedString_containsNonSpaceWhitespace_fails() { } @Test - public void testXsEppE164PhoneNumber_nanpaNumber_validates() { + void testXsEppE164PhoneNumber_nanpaNumber_validates() { assertThat(FormFields.XS_NORMALIZED_STRING.convert("+1.2125650000")).hasValue("+1.2125650000"); } @Test - public void testXsEppE164PhoneNumber_londonNumber_validates() { + void testXsEppE164PhoneNumber_londonNumber_validates() { assertThat(FormFields.XS_NORMALIZED_STRING.convert("+44.2011112222")) .hasValue("+44.2011112222"); } @Test - public void testXsEppE164PhoneNumber_localizedNumber_fails() { + void testXsEppE164PhoneNumber_localizedNumber_fails() { FormFieldException thrown = assertThrows( FormFieldException.class, () -> FormFields.PHONE_NUMBER.convert("(212) 565-0000")); @@ -79,34 +76,34 @@ public void testXsEppE164PhoneNumber_localizedNumber_fails() { } @Test - public void testXsEppE164PhoneNumber_appliesXsTokenTransform() { + void testXsEppE164PhoneNumber_appliesXsTokenTransform() { assertThat(FormFields.PHONE_NUMBER.convert(" +1.2125650000 \r")).hasValue("+1.2125650000"); } @Test - public void testXsEppRoid_correctSyntax_validates() { + void testXsEppRoid_correctSyntax_validates() { assertThat(FormFields.ROID.convert("SH8013-REP")).hasValue("SH8013-REP"); } @Test - public void testXsEppRoid_lowerCase_validates() { + void testXsEppRoid_lowerCase_validates() { assertThat(FormFields.ROID.convert("sh8013-rep")).hasValue("sh8013-rep"); } @Test - public void testXsEppRoid_missingHyphen_fails() { + void testXsEppRoid_missingHyphen_fails() { FormFieldException thrown = assertThrows(FormFieldException.class, () -> FormFields.ROID.convert("SH8013REP")); assertThat(thrown).hasMessageThat().contains("Please enter a valid EPP ROID, e.g. SH8013-REP"); } @Test - public void testXsEppRoid_appliesXsTokenTransform() { + void testXsEppRoid_appliesXsTokenTransform() { assertThat(FormFields.ROID.convert("\n FOO-BAR \r")).hasValue("FOO-BAR"); } @Test - public void testNullness() { + void testNullness() { new NullPointerTester().testAllPublicStaticMethods(FormFields.class); } } diff --git a/core/src/test/java/google/registry/ui/server/ActionMembershipTest.java b/core/src/test/java/google/registry/ui/server/ActionMembershipTest.java index 080ea9caafa..0f71b0b5d05 100644 --- a/core/src/test/java/google/registry/ui/server/ActionMembershipTest.java +++ b/core/src/test/java/google/registry/ui/server/ActionMembershipTest.java @@ -23,15 +23,13 @@ import google.registry.ui.server.registrar.JsonGetAction; import io.github.classgraph.ClassGraph; import io.github.classgraph.ScanResult; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; -@RunWith(JUnit4.class) -public final class ActionMembershipTest { +/** Unit tests of action membership. */ +final class ActionMembershipTest { @Test - public void testAllActionsEitherHtmlOrJson() { + void testAllActionsEitherHtmlOrJson() { // All UI actions should serve valid HTML or JSON. There are three valid options: // 1. Extending HtmlAction to signal that we are serving an HTML page // 2. Extending JsonAction to show that we are serving JSON POST requests diff --git a/core/src/test/java/google/registry/ui/server/RegistrarFormFieldsTest.java b/core/src/test/java/google/registry/ui/server/RegistrarFormFieldsTest.java index 320a4bccb4d..faae2df227b 100644 --- a/core/src/test/java/google/registry/ui/server/RegistrarFormFieldsTest.java +++ b/core/src/test/java/google/registry/ui/server/RegistrarFormFieldsTest.java @@ -21,21 +21,19 @@ import google.registry.testing.CertificateSamples; import google.registry.ui.forms.FormFieldException; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link RegistrarFormFields}. */ -@RunWith(JUnit4.class) -public class RegistrarFormFieldsTest { +class RegistrarFormFieldsTest { + @Test - public void testValidCertificate_doesntThrowError() { + void testValidCertificate_doesntThrowError() { assertThat(RegistrarFormFields.CLIENT_CERTIFICATE_FIELD.convert(CertificateSamples.SAMPLE_CERT)) .hasValue(CertificateSamples.SAMPLE_CERT); } @Test - public void testBadCertificate_throwsFfe() { + void testBadCertificate_throwsFfe() { FormFieldException thrown = assertThrows( FormFieldException.class, @@ -48,7 +46,7 @@ public void testBadCertificate_throwsFfe() { } @Test - public void testValidCertificateHash_doesntThrowError() { + void testValidCertificateHash_doesntThrowError() { assertThat( RegistrarFormFields.CLIENT_CERTIFICATE_HASH_FIELD.convert( CertificateSamples.SAMPLE_CERT_HASH)) @@ -56,7 +54,7 @@ public void testValidCertificateHash_doesntThrowError() { } @Test - public void testBadCertificateHash_throwsFfe() { + void testBadCertificateHash_throwsFfe() { FormFieldException thrown = assertThrows( FormFieldException.class, diff --git a/core/src/test/java/google/registry/ui/server/SendEmailUtilsTest.java b/core/src/test/java/google/registry/ui/server/SendEmailUtilsTest.java index e54cea54012..8ef57c61469 100644 --- a/core/src/test/java/google/registry/ui/server/SendEmailUtilsTest.java +++ b/core/src/test/java/google/registry/ui/server/SendEmailUtilsTest.java @@ -26,14 +26,11 @@ import google.registry.util.SendEmailService; import javax.mail.MessagingException; import javax.mail.internet.InternetAddress; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; /** Unit tests for {@link SendEmailUtils}. */ -@RunWith(JUnit4.class) -public class SendEmailUtilsTest { +class SendEmailUtilsTest { private final SendEmailService emailService = mock(SendEmailService.class); private SendEmailUtils sendEmailUtils; @@ -48,7 +45,7 @@ private void setRecipients(ImmutableList recipients) throws Exception { } @Test - public void testSuccess_sendToOneAddress() throws Exception { + void testSuccess_sendToOneAddress() throws Exception { setRecipients(ImmutableList.of("johnny@fakesite.tld")); assertThat(sendEmailUtils.hasRecipients()).isTrue(); assertThat( @@ -60,7 +57,7 @@ public void testSuccess_sendToOneAddress() throws Exception { } @Test - public void testSuccess_sendToMultipleAddresses() throws Exception { + void testSuccess_sendToMultipleAddresses() throws Exception { setRecipients(ImmutableList.of("foo@example.com", "bar@example.com")); assertThat(sendEmailUtils.hasRecipients()).isTrue(); assertThat( @@ -72,7 +69,7 @@ public void testSuccess_sendToMultipleAddresses() throws Exception { } @Test - public void testSuccess_ignoresMalformedEmailAddress() throws Exception { + void testSuccess_ignoresMalformedEmailAddress() throws Exception { setRecipients(ImmutableList.of("foo@example.com", "1iñvalidemail")); assertThat(sendEmailUtils.hasRecipients()).isTrue(); assertThat( @@ -84,7 +81,7 @@ public void testSuccess_ignoresMalformedEmailAddress() throws Exception { } @Test - public void testFailure_noAddresses() throws Exception { + void testFailure_noAddresses() throws Exception { setRecipients(ImmutableList.of()); assertThat(sendEmailUtils.hasRecipients()).isFalse(); assertThat( @@ -96,7 +93,7 @@ public void testFailure_noAddresses() throws Exception { } @Test - public void testFailure_onlyGivenMalformedAddress() throws Exception { + void testFailure_onlyGivenMalformedAddress() throws Exception { setRecipients(ImmutableList.of("1iñvalidemail")); assertThat(sendEmailUtils.hasRecipients()).isTrue(); assertThat( @@ -108,7 +105,7 @@ public void testFailure_onlyGivenMalformedAddress() throws Exception { } @Test - public void testFailure_exceptionThrownDuringSend() throws Exception { + void testFailure_exceptionThrownDuringSend() throws Exception { setRecipients(ImmutableList.of("foo@example.com")); assertThat(sendEmailUtils.hasRecipients()).isTrue(); doThrow(new RuntimeException(new MessagingException("expected"))) @@ -123,7 +120,7 @@ public void testFailure_exceptionThrownDuringSend() throws Exception { } @Test - public void testAdditionalRecipients() throws Exception { + void testAdditionalRecipients() throws Exception { setRecipients(ImmutableList.of("foo@example.com")); assertThat(sendEmailUtils.hasRecipients()).isTrue(); assertThat( @@ -136,7 +133,7 @@ public void testAdditionalRecipients() throws Exception { } @Test - public void testOnlyAdditionalRecipients() throws Exception { + void testOnlyAdditionalRecipients() throws Exception { setRecipients(ImmutableList.of()); assertThat(sendEmailUtils.hasRecipients()).isFalse(); assertThat( diff --git a/core/src/test/java/google/registry/ui/server/registrar/ConsoleOteSetupActionTest.java b/core/src/test/java/google/registry/ui/server/registrar/ConsoleOteSetupActionTest.java index 003dba3a429..23ebb4a70f7 100644 --- a/core/src/test/java/google/registry/ui/server/registrar/ConsoleOteSetupActionTest.java +++ b/core/src/test/java/google/registry/ui/server/registrar/ConsoleOteSetupActionTest.java @@ -37,7 +37,7 @@ import google.registry.request.auth.AuthenticatedRegistrarAccessor; import google.registry.request.auth.UserAuthInfo; import google.registry.security.XsrfTokenManager; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.DeterministicStringGenerator; import google.registry.testing.FakeClock; import google.registry.testing.FakeResponse; @@ -62,8 +62,8 @@ public final class ConsoleOteSetupActionTest { @RegisterExtension - public final AppEngineRule appEngineRule = - AppEngineRule.builder().withDatastoreAndCloudSql().build(); + public final AppEngineExtension appEngineRule = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension @Order(value = Integer.MAX_VALUE) diff --git a/core/src/test/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorActionTest.java b/core/src/test/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorActionTest.java index 4c17625bc16..ed2238289e6 100644 --- a/core/src/test/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorActionTest.java +++ b/core/src/test/java/google/registry/ui/server/registrar/ConsoleRegistrarCreatorActionTest.java @@ -38,7 +38,7 @@ import google.registry.request.auth.AuthenticatedRegistrarAccessor; import google.registry.request.auth.UserAuthInfo; import google.registry.security.XsrfTokenManager; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.DeterministicStringGenerator; import google.registry.testing.FakeClock; import google.registry.testing.FakeResponse; @@ -63,7 +63,8 @@ final class ConsoleRegistrarCreatorActionTest { @RegisterExtension - final AppEngineRule appEngineRule = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineExtension appEngineRule = + AppEngineExtension.builder().withDatastoreAndCloudSql().build(); @RegisterExtension @Order(value = Integer.MAX_VALUE) diff --git a/core/src/test/java/google/registry/ui/server/registrar/ConsoleUiActionTest.java b/core/src/test/java/google/registry/ui/server/registrar/ConsoleUiActionTest.java index 8167265f908..7cfde56056c 100644 --- a/core/src/test/java/google/registry/ui/server/registrar/ConsoleUiActionTest.java +++ b/core/src/test/java/google/registry/ui/server/registrar/ConsoleUiActionTest.java @@ -34,26 +34,23 @@ import google.registry.request.auth.AuthenticatedRegistrarAccessor; import google.registry.request.auth.UserAuthInfo; import google.registry.security.XsrfTokenManager; -import google.registry.testing.AppEngineRule; +import google.registry.testing.AppEngineExtension; import google.registry.testing.FakeClock; import google.registry.testing.FakeResponse; import google.registry.testing.UserInfo; import java.util.Optional; import javax.servlet.http.HttpServletRequest; -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.RegisterExtension; /** Unit tests for {@link ConsoleUiAction}. */ -@RunWith(JUnit4.class) -public class ConsoleUiActionTest { +class ConsoleUiActionTest { - @Rule - public final AppEngineRule appEngineRule = - AppEngineRule.builder() + @RegisterExtension + final AppEngineExtension appEngineExtension = + AppEngineExtension.builder() .withDatastoreAndCloudSql() .withUserService(UserInfo.create("marla.singer@example.com", "12345")) .build(); @@ -63,8 +60,8 @@ public class ConsoleUiActionTest { private final ConsoleUiAction action = new ConsoleUiAction(); private final User user = new User("marla.singer@example.com", "gmail.com", "12345"); - @Before - public void setUp() { + @BeforeEach + void beforeEach() { action.enabled = true; action.logoFilename = "logo.png"; action.productName = "Nomulus"; @@ -93,47 +90,47 @@ public void setUp() { RegistrarConsoleMetrics.consoleRequestMetric.reset(); } - @After - public void tearDown() { + @AfterEach + void afterEach() { assertThat(RegistrarConsoleMetrics.consoleRequestMetric).hasNoOtherValues(); } - public void assertMetric(String clientId, String explicitClientId, String roles, String status) { + void assertMetric(String clientId, String explicitClientId, String roles, String status) { assertThat(RegistrarConsoleMetrics.consoleRequestMetric) .hasValueForLabels(1, clientId, explicitClientId, roles, status); RegistrarConsoleMetrics.consoleRequestMetric.reset(clientId, explicitClientId, roles, status); } @Test - public void testWebPage_disallowsIframe() { + void testWebPage_disallowsIframe() { action.run(); assertThat(response.getHeaders()).containsEntry("X-Frame-Options", "SAMEORIGIN"); assertMetric("TheRegistrar", "false", "[OWNER]", "SUCCESS"); } @Test - public void testWebPage_setsHtmlUtf8ContentType() { + void testWebPage_setsHtmlUtf8ContentType() { action.run(); assertThat(response.getContentType()).isEqualTo(MediaType.HTML_UTF_8); assertMetric("TheRegistrar", "false", "[OWNER]", "SUCCESS"); } @Test - public void testWebPage_containsUserNickname() { + void testWebPage_containsUserNickname() { action.run(); assertThat(response.getPayload()).contains("marla.singer"); assertMetric("TheRegistrar", "false", "[OWNER]", "SUCCESS"); } @Test - public void testWebPage_containsGoogleAnalyticsId() { + void testWebPage_containsGoogleAnalyticsId() { action.run(); assertThat(response.getPayload()).contains("gtag('config', 'sampleId')"); assertMetric("TheRegistrar", "false", "[OWNER]", "SUCCESS"); } @Test - public void testUserHasAccessAsTheRegistrar_showsRegistrarConsole() { + void testUserHasAccessAsTheRegistrar_showsRegistrarConsole() { action.run(); assertThat(response.getPayload()).contains("Registrar Console"); assertThat(response.getPayload()).contains("reg-content-and-footer"); @@ -141,7 +138,7 @@ public void testUserHasAccessAsTheRegistrar_showsRegistrarConsole() { } @Test - public void testConsoleDisabled_showsDisabledPage() { + void testConsoleDisabled_showsDisabledPage() { action.enabled = false; action.run(); assertThat(response.getPayload()).contains("

Console is disabled

"); @@ -149,7 +146,7 @@ public void testConsoleDisabled_showsDisabledPage() { } @Test - public void testUserDoesntHaveAccessToAnyRegistrar_showsWhoAreYouPage() { + void testUserDoesntHaveAccessToAnyRegistrar_showsWhoAreYouPage() { action.registrarAccessor = AuthenticatedRegistrarAccessor.createForTesting(ImmutableSetMultimap.of()); action.run(); @@ -160,7 +157,7 @@ public void testUserDoesntHaveAccessToAnyRegistrar_showsWhoAreYouPage() { } @Test - public void testNoUser_redirect() { + void testNoUser_redirect() { when(request.getRequestURI()).thenReturn("/test"); action.authResult = AuthResult.NOT_AUTHENTICATED; action.run(); @@ -169,7 +166,7 @@ public void testNoUser_redirect() { } @Test - public void testNoUserInformationAtAll_redirectToRoot() { + void testNoUserInformationAtAll_redirectToRoot() { when(request.getRequestURI()).thenThrow(new IllegalArgumentException()); action.authResult = AuthResult.NOT_AUTHENTICATED; action.run(); @@ -178,7 +175,7 @@ public void testNoUserInformationAtAll_redirectToRoot() { } @Test - public void testSettingClientId_notAllowed_showsNeedPermissionPage() { + void testSettingClientId_notAllowed_showsNeedPermissionPage() { // Behaves the same way if fakeRegistrar exists, but we don't have access to it action.paramClientId = Optional.of("fakeRegistrar"); action.run(); @@ -189,7 +186,7 @@ public void testSettingClientId_notAllowed_showsNeedPermissionPage() { } @Test - public void testSettingClientId_allowed_showsRegistrarConsole() { + void testSettingClientId_allowed_showsRegistrarConsole() { action.paramClientId = Optional.of("NewRegistrar"); action.run(); assertThat(response.getPayload()).contains("Registrar Console"); @@ -199,7 +196,7 @@ public void testSettingClientId_allowed_showsRegistrarConsole() { } @Test - public void testUserHasAccessAsTheRegistrar_showsClientIdChooser() { + void testUserHasAccessAsTheRegistrar_showsClientIdChooser() { action.run(); assertThat(response.getPayload()).contains("