From bdebf7c325fd3d54ec8181ef1ac2f385bf2e20ff Mon Sep 17 00:00:00 2001 From: Ben McIlwain Date: Thu, 23 Jul 2020 15:43:59 -0400 Subject: [PATCH] Upgrade most of remaining tests from JUnit 4 to JUnit 5 (#708) --- .../google/registry/beam/BeamUtilsTest.java | 21 +- .../beam/initsql/CommitLogTransformsTest.java | 1 + .../beam/invoicing/BillingEventTest.java | 39 ++- .../beam/invoicing/InvoicingUtilsTest.java | 13 +- .../bigquery/BigqueryConnectionTest.java | 31 -- .../registry/bigquery/BigqueryUtilsTest.java | 34 +-- .../bigquery/CheckedBigqueryTest.java | 17 +- .../registry/config/RegistryConfigTest.java | 10 +- .../config/RegistryEnvironmentTest.java | 9 +- .../cron/CommitLogFanoutActionTest.java | 15 +- .../registry/cron/TldFanoutActionTest.java | 51 ++-- .../documentation/FlowDocumentationTest.java | 9 +- .../documentation/FlowExceptionsTest.java | 9 +- .../MarkdownDocumentationFormatterTest.java | 68 ++--- .../groups/DirectoryGroupsConnectionTest.java | 46 ++- .../keyring/api/ComparatorKeyringTest.java | 57 ++-- .../keyring/kms/KmsConnectionImplTest.java | 34 +-- .../inputs/ChildEntityInputTest.java | 281 +++++++++--------- .../inputs/CommitLogManifestInputTest.java | 31 +- .../inputs/EppResourceInputsTest.java | 46 ++- .../model/rde/RdeNamingUtilsTest.java | 18 +- .../registry/model/rde/RdeRevisionTest.java | 53 ++-- .../model/registry/RegistriesTest.java | 25 +- .../label/GenrulePremiumListTest.java | 15 +- .../label/GenruleReservedListTest.java | 15 +- .../registry/label/ReservedListTest.java | 63 ++-- .../backend/BackendRequestComponentTest.java | 11 +- .../module/backend/BackendServletTest.java | 15 +- .../FrontendRequestComponentTest.java | 11 +- .../module/frontend/FrontendServletTest.java | 15 +- .../pubapi/PubApiRequestComponentTest.java | 11 +- .../module/pubapi/PubApiServletTest.java | 15 +- .../tools/ToolsRequestComponentTest.java | 11 +- .../module/tools/ToolsServletTest.java | 9 +- .../whitebox/CheckApiMetricTest.java | 15 +- .../monitoring/whitebox/EppMetricTest.java | 21 +- .../HibernateSchemaExporterTest.java | 38 +-- .../persistence/PersistenceXmlTest.java | 20 +- .../google/registry/persistence/VKeyTest.java | 18 +- .../DummyJpaTransactionManagerTest.java | 9 +- .../reporting/ReportingModuleTest.java | 33 +- .../billing/BillingEmailUtilsTest.java | 19 +- .../billing/CopyDetailReportsActionTest.java | 34 +-- .../billing/GenerateInvoicesActionTest.java | 27 +- .../billing/PublishInvoicesActionTest.java | 27 +- .../ActivityReportingQueryBuilderTest.java | 11 +- .../icann/IcannHttpReporterTest.java | 61 ++-- .../icann/IcannReportingModuleTest.java | 9 +- .../icann/IcannReportingStagerTest.java | 39 ++- .../IcannReportingStagingActionTest.java | 48 ++- .../icann/IcannReportingUploadActionTest.java | 45 ++- ...TransactionsReportingQueryBuilderTest.java | 11 +- .../GenerateSpec11ReportActionTest.java | 21 +- .../spec11/PublishSpec11ReportActionTest.java | 29 +- .../spec11/Spec11EmailUtilsTest.java | 39 ++- ...pec11RegistrarThreatMatchesParserTest.java | 23 +- .../registry/request/JsonResponseTest.java | 17 +- .../registry/request/RequestHandlerTest.java | 67 ++--- .../registry/request/RequestModuleTest.java | 23 +- .../request/RequestParametersTest.java | 93 +++--- .../registry/request/ResponseImplTest.java | 13 +- .../google/registry/request/RouterTest.java | 27 +- .../registry/request/auth/AuthTest.java | 9 +- .../AuthenticatedRegistrarAccessorTest.java | 76 ++--- .../LegacyAuthenticationMechanismTest.java | 55 ++-- .../auth/RequestAuthenticatorTest.java | 69 ++--- .../ConsoleRegistrarCreatorActionTest.java | 5 +- 67 files changed, 974 insertions(+), 1186 deletions(-) delete mode 100644 core/src/test/java/google/registry/bigquery/BigqueryConnectionTest.java diff --git a/core/src/test/java/google/registry/beam/BeamUtilsTest.java b/core/src/test/java/google/registry/beam/BeamUtilsTest.java index 5b1514223..e01349cea 100644 --- a/core/src/test/java/google/registry/beam/BeamUtilsTest.java +++ b/core/src/test/java/google/registry/beam/BeamUtilsTest.java @@ -22,14 +22,11 @@ import org.apache.avro.Schema; import org.apache.avro.generic.GenericData; import org.apache.avro.generic.GenericRecord; import org.apache.beam.sdk.io.gcp.bigquery.SchemaAndRecord; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** Unit tests for {@link BeamUtils} */ -@RunWith(JUnit4.class) -public class BeamUtilsTest { +class BeamUtilsTest { private static final String GENERIC_SCHEMA = "{\"name\": \"AnObject\", " @@ -41,8 +38,8 @@ public class BeamUtilsTest { private SchemaAndRecord schemaAndRecord; - @Before - public void initializeRecord() { + @BeforeEach + void beforeEach() { // Create a record with a given JSON schema. GenericRecord record = new GenericData.Record(new Schema.Parser().parse(GENERIC_SCHEMA)); record.put("aString", "hello world"); @@ -51,26 +48,26 @@ public class BeamUtilsTest { } @Test - public void testExtractField_fieldExists_returnsExpectedStringValues() { + void testExtractField_fieldExists_returnsExpectedStringValues() { assertThat(BeamUtils.extractField(schemaAndRecord.getRecord(), "aString")) .isEqualTo("hello world"); assertThat(BeamUtils.extractField(schemaAndRecord.getRecord(), "aFloat")).isEqualTo("2.54"); } @Test - public void testExtractField_fieldDoesntExist_returnsNull() { + void testExtractField_fieldDoesntExist_returnsNull() { schemaAndRecord.getRecord().put("aFloat", null); assertThat(BeamUtils.extractField(schemaAndRecord.getRecord(), "aFloat")).isEqualTo("null"); assertThat(BeamUtils.extractField(schemaAndRecord.getRecord(), "missing")).isEqualTo("null"); } @Test - public void testCheckFieldsNotNull_noExceptionIfAllPresent() { + void testCheckFieldsNotNull_noExceptionIfAllPresent() { BeamUtils.checkFieldsNotNull(ImmutableList.of("aString", "aFloat"), schemaAndRecord); } @Test - public void testCheckFieldsNotNull_fieldMissing_throwsException() { + void testCheckFieldsNotNull_fieldMissing_throwsException() { IllegalStateException expected = assertThrows( IllegalStateException.class, diff --git a/core/src/test/java/google/registry/beam/initsql/CommitLogTransformsTest.java b/core/src/test/java/google/registry/beam/initsql/CommitLogTransformsTest.java index 9d2b9215f..941a1df99 100644 --- a/core/src/test/java/google/registry/beam/initsql/CommitLogTransformsTest.java +++ b/core/src/test/java/google/registry/beam/initsql/CommitLogTransformsTest.java @@ -55,6 +55,7 @@ import org.junit.runners.JUnit4; // a wrapper. @RunWith(JUnit4.class) public class CommitLogTransformsTest implements Serializable { + private static final DateTime START_TIME = DateTime.parse("2000-01-01T00:00:00.0Z"); @Rule public final transient TemporaryFolder temporaryFolder = new TemporaryFolder(); diff --git a/core/src/test/java/google/registry/beam/invoicing/BillingEventTest.java b/core/src/test/java/google/registry/beam/invoicing/BillingEventTest.java index a351d1f95..c46683cdf 100644 --- a/core/src/test/java/google/registry/beam/invoicing/BillingEventTest.java +++ b/core/src/test/java/google/registry/beam/invoicing/BillingEventTest.java @@ -29,14 +29,11 @@ import org.apache.avro.Schema; import org.apache.avro.generic.GenericData; import org.apache.avro.generic.GenericRecord; import org.apache.beam.sdk.io.gcp.bigquery.SchemaAndRecord; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** Unit tests for {@link BillingEvent} */ -@RunWith(JUnit4.class) -public class BillingEventTest { +class BillingEventTest { private static final String BILLING_EVENT_SCHEMA = "{\"name\": \"BillingEvent\", " @@ -60,8 +57,8 @@ public class BillingEventTest { private SchemaAndRecord schemaAndRecord; - @Before - public void initializeRecord() { + @BeforeEach + void beforeEach() { // Create a record with a given JSON schema. schemaAndRecord = new SchemaAndRecord(createRecord(), null); } @@ -86,7 +83,7 @@ public class BillingEventTest { } @Test - public void testParseBillingEventFromRecord_success() { + void testParseBillingEventFromRecord_success() { BillingEvent event = BillingEvent.parseFromRecord(schemaAndRecord); assertThat(event.id()).isEqualTo(1); assertThat(event.billingTime()) @@ -107,7 +104,7 @@ public class BillingEventTest { } @Test - public void testParseBillingEventFromRecord_sunriseCreate_reducedPrice_success() { + void testParseBillingEventFromRecord_sunriseCreate_reducedPrice_success() { schemaAndRecord.getRecord().put("flags", "SUNRISE"); BillingEvent event = BillingEvent.parseFromRecord(schemaAndRecord); assertThat(event.amount()).isEqualTo(17.43); @@ -115,7 +112,7 @@ public class BillingEventTest { } @Test - public void testParseBillingEventFromRecord_anchorTenant_zeroPrice_success() { + void testParseBillingEventFromRecord_anchorTenant_zeroPrice_success() { schemaAndRecord.getRecord().put("flags", "SUNRISE ANCHOR_TENANT"); BillingEvent event = BillingEvent.parseFromRecord(schemaAndRecord); assertThat(event.amount()).isZero(); @@ -123,13 +120,13 @@ public class BillingEventTest { } @Test - public void testParseBillingEventFromRecord_nullValue_throwsException() { + void testParseBillingEventFromRecord_nullValue_throwsException() { schemaAndRecord.getRecord().put("tld", null); assertThrows(IllegalStateException.class, () -> BillingEvent.parseFromRecord(schemaAndRecord)); } @Test - public void testConvertBillingEvent_toCsv() { + void testConvertBillingEvent_toCsv() { BillingEvent event = BillingEvent.parseFromRecord(schemaAndRecord); assertThat(event.toCsv()) .isEqualTo( @@ -138,7 +135,7 @@ public class BillingEventTest { } @Test - public void testConvertBillingEvent_nonNullPoNumber_toCsv() { + void testConvertBillingEvent_nonNullPoNumber_toCsv() { GenericRecord record = createRecord(); record.put("poNumber", "905610"); BillingEvent event = BillingEvent.parseFromRecord(new SchemaAndRecord(record, null)); @@ -149,13 +146,13 @@ public class BillingEventTest { } @Test - public void testGenerateBillingEventFilename() { + void testGenerateBillingEventFilename() { BillingEvent event = BillingEvent.parseFromRecord(schemaAndRecord); assertThat(event.toFilename("2017-10")).isEqualTo("invoice_details_2017-10_myRegistrar_test"); } @Test - public void testGetInvoiceGroupingKey_fromBillingEvent() { + void testGetInvoiceGroupingKey_fromBillingEvent() { BillingEvent event = BillingEvent.parseFromRecord(schemaAndRecord); InvoiceGroupingKey invoiceKey = event.getInvoiceGroupingKey(); assertThat(invoiceKey.startDate()).isEqualTo("2017-10-01"); @@ -169,7 +166,7 @@ public class BillingEventTest { } @Test - public void test_nonNullPoNumber() { + void test_nonNullPoNumber() { GenericRecord record = createRecord(); record.put("poNumber", "905610"); BillingEvent event = BillingEvent.parseFromRecord(new SchemaAndRecord(record, null)); @@ -179,7 +176,7 @@ public class BillingEventTest { } @Test - public void testConvertInvoiceGroupingKey_toCsv() { + void testConvertInvoiceGroupingKey_toCsv() { BillingEvent event = BillingEvent.parseFromRecord(schemaAndRecord); InvoiceGroupingKey invoiceKey = event.getInvoiceGroupingKey(); assertThat(invoiceKey.toCsv(3L)) @@ -189,7 +186,7 @@ public class BillingEventTest { } @Test - public void testInvoiceGroupingKeyCoder_deterministicSerialization() throws IOException { + void testInvoiceGroupingKeyCoder_deterministicSerialization() throws IOException { InvoiceGroupingKey invoiceKey = BillingEvent.parseFromRecord(schemaAndRecord).getInvoiceGroupingKey(); InvoiceGroupingKeyCoder coder = new InvoiceGroupingKeyCoder(); @@ -200,7 +197,7 @@ public class BillingEventTest { } @Test - public void testGetDetailReportHeader() { + void testGetDetailReportHeader() { assertThat(BillingEvent.getHeader()) .isEqualTo( "id,billingTime,eventTime,registrarId,billingId,poNumber,tld,action," @@ -208,7 +205,7 @@ public class BillingEventTest { } @Test - public void testGetOverallInvoiceHeader() { + void testGetOverallInvoiceHeader() { assertThat(InvoiceGroupingKey.invoiceHeader()) .isEqualTo("StartDate,EndDate,ProductAccountKey,Amount,AmountCurrency,BillingProductCode," + "SalesChannel,LineItemType,UsageGroupingKey,Quantity,Description,UnitPrice," diff --git a/core/src/test/java/google/registry/beam/invoicing/InvoicingUtilsTest.java b/core/src/test/java/google/registry/beam/invoicing/InvoicingUtilsTest.java index 226476afc..5902d4cc1 100644 --- a/core/src/test/java/google/registry/beam/invoicing/InvoicingUtilsTest.java +++ b/core/src/test/java/google/registry/beam/invoicing/InvoicingUtilsTest.java @@ -25,16 +25,13 @@ import org.apache.beam.sdk.io.FileBasedSink; import org.apache.beam.sdk.options.ValueProvider; import org.apache.beam.sdk.options.ValueProvider.StaticValueProvider; import org.apache.beam.sdk.transforms.SerializableFunction; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link InvoicingUtils}. */ -@RunWith(JUnit4.class) -public class InvoicingUtilsTest { +class InvoicingUtilsTest { @Test - public void testDestinationFunction_generatesProperFileParams() { + void testDestinationFunction_generatesProperFileParams() { SerializableFunction destinationFunction = InvoicingUtils.makeDestinationFunction("my/directory", StaticValueProvider.of("2017-10")); @@ -53,7 +50,7 @@ public class InvoicingUtilsTest { } @Test - public void testEmptyDestinationParams() { + void testEmptyDestinationParams() { assertThat(InvoicingUtils.makeEmptyDestinationParams("my/directory")) .isEqualTo( new Params() @@ -63,7 +60,7 @@ public class InvoicingUtilsTest { /** Asserts that the instantiated sql template matches a golden expected file. */ @Test - public void testMakeQueryProvider() { + void testMakeQueryProvider() { ValueProvider queryProvider = InvoicingUtils.makeQueryProvider(StaticValueProvider.of("2017-10"), "my-project-id"); assertThat(queryProvider.get()).isEqualTo(loadFile("billing_events_test.sql")); diff --git a/core/src/test/java/google/registry/bigquery/BigqueryConnectionTest.java b/core/src/test/java/google/registry/bigquery/BigqueryConnectionTest.java deleted file mode 100644 index 2e7e5e7d3..000000000 --- a/core/src/test/java/google/registry/bigquery/BigqueryConnectionTest.java +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2017 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.bigquery; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; - -/** Unit tests for {@link BigqueryConnection}. */ -@RunWith(JUnit4.class) -public class BigqueryConnectionTest { - - @Test - public void testNothing() { - // Placeholder test class for now. - // TODO(b/16569089): figure out a good way for testing our Bigquery usage overall - maybe unit - // tests here, maybe end-to-end testing. - } -} diff --git a/core/src/test/java/google/registry/bigquery/BigqueryUtilsTest.java b/core/src/test/java/google/registry/bigquery/BigqueryUtilsTest.java index 9616517ca..bf92a3cfc 100644 --- a/core/src/test/java/google/registry/bigquery/BigqueryUtilsTest.java +++ b/core/src/test/java/google/registry/bigquery/BigqueryUtilsTest.java @@ -27,20 +27,18 @@ import com.google.api.services.bigquery.model.JobReference; import java.util.concurrent.TimeUnit; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link BigqueryUtils}. */ -@RunWith(JUnit4.class) -public class BigqueryUtilsTest { +class BigqueryUtilsTest { + private static final DateTime DATE_0 = DateTime.parse("2014-07-17T20:35:42Z"); private static final DateTime DATE_1 = DateTime.parse("2014-07-17T20:35:42.1Z"); private static final DateTime DATE_2 = DateTime.parse("2014-07-17T20:35:42.12Z"); private static final DateTime DATE_3 = DateTime.parse("2014-07-17T20:35:42.123Z"); @Test - public void test_toBigqueryTimestampString() { + void test_toBigqueryTimestampString() { assertThat(toBigqueryTimestampString(START_OF_TIME)).isEqualTo("1970-01-01 00:00:00.000"); assertThat(toBigqueryTimestampString(DATE_0)).isEqualTo("2014-07-17 20:35:42.000"); assertThat(toBigqueryTimestampString(DATE_1)).isEqualTo("2014-07-17 20:35:42.100"); @@ -50,7 +48,7 @@ public class BigqueryUtilsTest { } @Test - public void test_toBigqueryTimestampString_convertsToUtc() { + void test_toBigqueryTimestampString_convertsToUtc() { assertThat(toBigqueryTimestampString(START_OF_TIME.withZone(DateTimeZone.forOffsetHours(5)))) .isEqualTo("1970-01-01 00:00:00.000"); assertThat(toBigqueryTimestampString(DateTime.parse("1970-01-01T00:00:00-0500"))) @@ -58,13 +56,13 @@ public class BigqueryUtilsTest { } @Test - public void test_fromBigqueryTimestampString_startAndEndOfTime() { + void test_fromBigqueryTimestampString_startAndEndOfTime() { assertThat(fromBigqueryTimestampString("1970-01-01 00:00:00 UTC")).isEqualTo(START_OF_TIME); assertThat(fromBigqueryTimestampString("294247-01-10 04:00:54.775 UTC")).isEqualTo(END_OF_TIME); } @Test - public void test_fromBigqueryTimestampString_trailingZerosOkay() { + void test_fromBigqueryTimestampString_trailingZerosOkay() { assertThat(fromBigqueryTimestampString("2014-07-17 20:35:42 UTC")).isEqualTo(DATE_0); assertThat(fromBigqueryTimestampString("2014-07-17 20:35:42.0 UTC")).isEqualTo(DATE_0); assertThat(fromBigqueryTimestampString("2014-07-17 20:35:42.00 UTC")).isEqualTo(DATE_0); @@ -78,27 +76,27 @@ public class BigqueryUtilsTest { } @Test - public void testFailure_fromBigqueryTimestampString_nonUtcTimeZone() { + void testFailure_fromBigqueryTimestampString_nonUtcTimeZone() { assertThrows( IllegalArgumentException.class, () -> fromBigqueryTimestampString("2014-01-01 01:01:01 +05:00")); } @Test - public void testFailure_fromBigqueryTimestampString_noTimeZone() { + void testFailure_fromBigqueryTimestampString_noTimeZone() { assertThrows( IllegalArgumentException.class, () -> fromBigqueryTimestampString("2014-01-01 01:01:01")); } @Test - public void testFailure_fromBigqueryTimestampString_tooManyMillisecondDigits() { + void testFailure_fromBigqueryTimestampString_tooManyMillisecondDigits() { assertThrows( IllegalArgumentException.class, () -> fromBigqueryTimestampString("2014-01-01 01:01:01.1234 UTC")); } @Test - public void test_toBigqueryTimestamp_timeunitConversion() { + void test_toBigqueryTimestamp_timeunitConversion() { assertThat(toBigqueryTimestamp(1234567890L, TimeUnit.SECONDS)) .isEqualTo("1234567890.000000"); assertThat(toBigqueryTimestamp(1234567890123L, TimeUnit.MILLISECONDS)) @@ -110,14 +108,14 @@ public class BigqueryUtilsTest { } @Test - public void test_toBigqueryTimestamp_timeunitConversionForZero() { + void test_toBigqueryTimestamp_timeunitConversionForZero() { assertThat(toBigqueryTimestamp(0L, TimeUnit.SECONDS)).isEqualTo("0.000000"); assertThat(toBigqueryTimestamp(0L, TimeUnit.MILLISECONDS)).isEqualTo("0.000000"); assertThat(toBigqueryTimestamp(0L, TimeUnit.MICROSECONDS)).isEqualTo("0.000000"); } @Test - public void test_toBigqueryTimestamp_datetimeConversion() { + void test_toBigqueryTimestamp_datetimeConversion() { assertThat(toBigqueryTimestamp(START_OF_TIME)).isEqualTo("0.000000"); assertThat(toBigqueryTimestamp(DATE_0)).isEqualTo("1405629342.000000"); assertThat(toBigqueryTimestamp(DATE_1)).isEqualTo("1405629342.100000"); @@ -127,18 +125,18 @@ public class BigqueryUtilsTest { } @Test - public void test_toJobReferenceString_normalSucceeds() { + void test_toJobReferenceString_normalSucceeds() { assertThat(toJobReferenceString(new JobReference().setProjectId("foo").setJobId("bar"))) .isEqualTo("foo:bar"); } @Test - public void test_toJobReferenceString_emptyReferenceSucceeds() { + void test_toJobReferenceString_emptyReferenceSucceeds() { assertThat(toJobReferenceString(new JobReference())).isEqualTo("null:null"); } @Test - public void test_toJobReferenceString_nullThrowsNpe() { + void test_toJobReferenceString_nullThrowsNpe() { assertThrows(NullPointerException.class, () -> toJobReferenceString(null)); } } diff --git a/core/src/test/java/google/registry/bigquery/CheckedBigqueryTest.java b/core/src/test/java/google/registry/bigquery/CheckedBigqueryTest.java index 161511a7c..7334b9e73 100644 --- a/core/src/test/java/google/registry/bigquery/CheckedBigqueryTest.java +++ b/core/src/test/java/google/registry/bigquery/CheckedBigqueryTest.java @@ -29,15 +29,12 @@ import com.google.api.services.bigquery.model.TableFieldSchema; import com.google.api.services.bigquery.model.TableReference; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -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.ArgumentCaptor; /** Unit tests for {@link CheckedBigquery}. */ -@RunWith(JUnit4.class) -public class CheckedBigqueryTest { +class CheckedBigqueryTest { private final Bigquery bigquery = mock(Bigquery.class); private final Bigquery.Datasets bigqueryDatasets = mock(Bigquery.Datasets.class); @@ -48,8 +45,8 @@ public class CheckedBigqueryTest { private CheckedBigquery checkedBigquery; - @Before - public void before() throws Exception { + @BeforeEach + void beforeEach() throws Exception { when(bigquery.datasets()).thenReturn(bigqueryDatasets); when(bigqueryDatasets.insert(eq("Project-Id"), any(Dataset.class))) .thenReturn(bigqueryDatasetsInsert); @@ -70,7 +67,7 @@ public class CheckedBigqueryTest { } @Test - public void testSuccess_datastoreCreation() throws Exception { + void testSuccess_datastoreCreation() throws Exception { checkedBigquery.ensureDataSetExists("Project-Id", "Dataset-Id"); ArgumentCaptor datasetArg = ArgumentCaptor.forClass(Dataset.class); @@ -83,7 +80,7 @@ public class CheckedBigqueryTest { } @Test - public void testSuccess_datastoreAndTableCreation() throws Exception { + void testSuccess_datastoreAndTableCreation() throws Exception { checkedBigquery.ensureDataSetAndTableExist("Project-Id", "Dataset2", "Table2"); ArgumentCaptor datasetArg = ArgumentCaptor.forClass(Dataset.class); diff --git a/core/src/test/java/google/registry/config/RegistryConfigTest.java b/core/src/test/java/google/registry/config/RegistryConfigTest.java index 23718252f..49d988d29 100644 --- a/core/src/test/java/google/registry/config/RegistryConfigTest.java +++ b/core/src/test/java/google/registry/config/RegistryConfigTest.java @@ -18,15 +18,13 @@ import static com.google.common.truth.Truth.assertThat; import static google.registry.config.RegistryConfig.CONFIG_SETTINGS; import static google.registry.config.RegistryConfig.ConfigModule.provideReservedTermsExportDisclaimer; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; -@RunWith(JUnit4.class) -public class RegistryConfigTest { +/** Unit tests for {@link RegistryConfig}. */ +class RegistryConfigTest { @Test - public void test_reservedTermsExportDisclaimer_isPrependedWithOctothorpes() { + void test_reservedTermsExportDisclaimer_isPrependedWithOctothorpes() { assertThat(provideReservedTermsExportDisclaimer(CONFIG_SETTINGS.get())) .isEqualTo("# Disclaimer line 1.\n" + "# Line 2 is this 1."); } diff --git a/core/src/test/java/google/registry/config/RegistryEnvironmentTest.java b/core/src/test/java/google/registry/config/RegistryEnvironmentTest.java index b9b812c7e..b5434c09e 100644 --- a/core/src/test/java/google/registry/config/RegistryEnvironmentTest.java +++ b/core/src/test/java/google/registry/config/RegistryEnvironmentTest.java @@ -14,16 +14,13 @@ package google.registry.config; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link RegistryEnvironment}. */ -@RunWith(JUnit4.class) -public class RegistryEnvironmentTest { +class RegistryEnvironmentTest { @Test - public void testGet() { + void testGet() { RegistryEnvironment.get(); } } diff --git a/core/src/test/java/google/registry/cron/CommitLogFanoutActionTest.java b/core/src/test/java/google/registry/cron/CommitLogFanoutActionTest.java index 1c07f48df..d88d18256 100644 --- a/core/src/test/java/google/registry/cron/CommitLogFanoutActionTest.java +++ b/core/src/test/java/google/registry/cron/CommitLogFanoutActionTest.java @@ -26,20 +26,17 @@ import google.registry.util.TaskQueueUtils; import java.util.ArrayList; import java.util.List; import java.util.Optional; -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 CommitLogFanoutAction}. */ -@RunWith(JUnit4.class) -public class CommitLogFanoutActionTest { +class CommitLogFanoutActionTest { private static final String ENDPOINT = "/the/servlet"; private static final String QUEUE = "the-queue"; - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngineRule = AppEngineRule.builder() .withDatastoreAndCloudSql() .withTaskQueue( @@ -55,7 +52,7 @@ public class CommitLogFanoutActionTest { .build(); @Test - public void testSuccess() { + void testSuccess() { CommitLogFanoutAction action = new CommitLogFanoutAction(); action.taskQueueUtils = new TaskQueueUtils(new Retrier(null, 1)); action.endpoint = ENDPOINT; diff --git a/core/src/test/java/google/registry/cron/TldFanoutActionTest.java b/core/src/test/java/google/registry/cron/TldFanoutActionTest.java index 37412639d..264f803e1 100644 --- a/core/src/test/java/google/registry/cron/TldFanoutActionTest.java +++ b/core/src/test/java/google/registry/cron/TldFanoutActionTest.java @@ -39,22 +39,19 @@ import google.registry.util.TaskQueueUtils; import java.util.List; import java.util.Optional; import java.util.stream.Stream; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link TldFanoutAction}. */ -@RunWith(JUnit4.class) -public class TldFanoutActionTest { +class TldFanoutActionTest { private static final String ENDPOINT = "/the/servlet"; private static final String QUEUE = "the-queue"; private final FakeResponse response = new FakeResponse(); - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder() .withDatastoreAndCloudSql() .withTaskQueue( @@ -96,8 +93,8 @@ public class TldFanoutActionTest { action.run(); } - @Before - public void before() { + @BeforeEach + void beforeEach() { createTlds("com", "net", "org", "example"); persistResource(Registry.get("example").asBuilder().setTldType(TldType.TEST).build()); } @@ -123,36 +120,36 @@ public class TldFanoutActionTest { } @Test - public void testSuccess_methodPostIsDefault() { + void testSuccess_methodPostIsDefault() { run(getParamsMap("runInEmpty", "")); assertTasksEnqueued(QUEUE, new TaskMatcher().method("POST")); } @Test - public void testFailure_noTlds() { + void testFailure_noTlds() { assertThrows(IllegalArgumentException.class, () -> run(getParamsMap())); } @Test - public void testSuccess_runInEmpty() { + void testSuccess_runInEmpty() { run(getParamsMap("runInEmpty", "")); assertTaskWithoutTld(); } @Test - public void testSuccess_forEachRealTld() { + void testSuccess_forEachRealTld() { run(getParamsMap("forEachRealTld", "")); assertTasks("com", "net", "org"); } @Test - public void testSuccess_forEachTestTld() { + void testSuccess_forEachTestTld() { run(getParamsMap("forEachTestTld", "")); assertTasks("example"); } @Test - public void testSuccess_forEachTestTldAndForEachRealTld() { + void testSuccess_forEachTestTldAndForEachRealTld() { run(getParamsMap( "forEachTestTld", "", "forEachRealTld", "")); @@ -160,13 +157,13 @@ public class TldFanoutActionTest { } @Test - public void testSuccess_runEverywhere() { + void testSuccess_runEverywhere() { run(getParamsMap("forEachTestTld", "", "forEachRealTld", "")); assertTasks("com", "net", "org", "example"); } @Test - public void testSuccess_excludeRealTlds() { + void testSuccess_excludeRealTlds() { run(getParamsMap( "forEachRealTld", "", "exclude", "com,net")); @@ -174,7 +171,7 @@ public class TldFanoutActionTest { } @Test - public void testSuccess_excludeTestTlds() { + void testSuccess_excludeTestTlds() { run(getParamsMap( "forEachTestTld", "", "exclude", "example")); @@ -182,7 +179,7 @@ public class TldFanoutActionTest { } @Test - public void testSuccess_excludeNonexistentTlds() { + void testSuccess_excludeNonexistentTlds() { run(getParamsMap( "forEachTestTld", "", "forEachRealTld", "", @@ -191,7 +188,7 @@ public class TldFanoutActionTest { } @Test - public void testFailure_runInEmptyAndTest() { + void testFailure_runInEmptyAndTest() { assertThrows( IllegalArgumentException.class, () -> @@ -202,7 +199,7 @@ public class TldFanoutActionTest { } @Test - public void testFailure_runInEmptyAndReal() { + void testFailure_runInEmptyAndReal() { assertThrows( IllegalArgumentException.class, () -> @@ -213,7 +210,7 @@ public class TldFanoutActionTest { } @Test - public void testFailure_runInEmptyAndExclude() { + void testFailure_runInEmptyAndExclude() { assertThrows( IllegalArgumentException.class, () -> @@ -224,14 +221,14 @@ public class TldFanoutActionTest { } @Test - public void testSuccess_additionalArgsFlowThroughToPostParams() { + void testSuccess_additionalArgsFlowThroughToPostParams() { run(getParamsMap("forEachTestTld", "", "newkey", "newval")); assertTasksEnqueued(QUEUE, new TaskMatcher().url("/the/servlet").param("newkey", "newval")); } @Test - public void testSuccess_returnHttpResponse() { + void testSuccess_returnHttpResponse() { run(getParamsMap("forEachRealTld", "", "endpoint", "/the/servlet")); List taskList = @@ -250,7 +247,7 @@ public class TldFanoutActionTest { } @Test - public void testSuccess_returnHttpResponse_runInEmpty() { + void testSuccess_returnHttpResponse_runInEmpty() { run(getParamsMap("runInEmpty", "", "endpoint", "/the/servlet")); List taskList = diff --git a/core/src/test/java/google/registry/documentation/FlowDocumentationTest.java b/core/src/test/java/google/registry/documentation/FlowDocumentationTest.java index 2e6787693..ed80b9fce 100644 --- a/core/src/test/java/google/registry/documentation/FlowDocumentationTest.java +++ b/core/src/test/java/google/registry/documentation/FlowDocumentationTest.java @@ -22,13 +22,10 @@ import com.google.common.base.Joiner; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Tests to ensure that generated flow documentation matches the expected documentation. */ -@RunWith(JUnit4.class) -public class FlowDocumentationTest { +class FlowDocumentationTest { private static final Path GOLDEN_MARKDOWN_FILEPATH = getProjectRoot().resolve("docs/flows.md"); private static final String UPDATE_COMMAND = "./gradlew :core:flowDocsTool"; @@ -43,7 +40,7 @@ public class FlowDocumentationTest { ""); @Test - public void testGeneratedMatchesGolden() throws IOException { + void testGeneratedMatchesGolden() throws IOException { // Read the markdown file. Path goldenMarkdownPath = GOLDEN_MARKDOWN_FILEPATH; diff --git a/core/src/test/java/google/registry/documentation/FlowExceptionsTest.java b/core/src/test/java/google/registry/documentation/FlowExceptionsTest.java index 3d79cc218..16b0a2e2f 100644 --- a/core/src/test/java/google/registry/documentation/FlowExceptionsTest.java +++ b/core/src/test/java/google/registry/documentation/FlowExceptionsTest.java @@ -21,9 +21,7 @@ import com.google.common.flogger.FluentLogger; import google.registry.documentation.FlowDocumentation.ErrorCase; import java.io.IOException; import java.util.Set; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** * Test to ensure accurate documentation of flow exceptions. @@ -47,13 +45,12 @@ import org.junit.runners.JUnit4; * removing the javadoc tag. */ @SuppressWarnings("javadoc") -@RunWith(JUnit4.class) -public class FlowExceptionsTest { +class FlowExceptionsTest { private static final FluentLogger logger = FluentLogger.forEnclosingClass(); @Test - public void testExceptionCorrespondence() throws IOException { + void testExceptionCorrespondence() throws IOException { DocumentationGenerator docGenerator = new DocumentationGenerator(); Set possibleErrors = Sets.newHashSet(docGenerator.getAllErrors()); Set mismatchingFlows = Sets.newHashSet(); diff --git a/core/src/test/java/google/registry/documentation/MarkdownDocumentationFormatterTest.java b/core/src/test/java/google/registry/documentation/MarkdownDocumentationFormatterTest.java index b3d2ee73f..58b0cdd46 100644 --- a/core/src/test/java/google/registry/documentation/MarkdownDocumentationFormatterTest.java +++ b/core/src/test/java/google/registry/documentation/MarkdownDocumentationFormatterTest.java @@ -18,15 +18,13 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertThrows; import java.util.Arrays; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Test conversion of javadocs to markdown. */ -@RunWith(JUnit4.class) -public class MarkdownDocumentationFormatterTest { +class MarkdownDocumentationFormatterTest { + @Test - public void testHtmlSanitization() { + void testHtmlSanitization() { assertThat( MarkdownDocumentationFormatter.fixHtml( "First.

Second. < > & &squot; "")) @@ -38,55 +36,55 @@ public class MarkdownDocumentationFormatterTest { } @Test - public void testDedents() { - assertThat(MarkdownDocumentationFormatter.fixHtml( - "First line\n\n

Second line.\n Third line.")) + void testDedents() { + assertThat( + MarkdownDocumentationFormatter.fixHtml("First line\n\n

Second line.\n Third line.")) .isEqualTo("First line\n\nSecond line.\nThird line."); } @Test - public void testUnknownSequences() { + void testUnknownSequences() { assertThrows( IllegalArgumentException.class, () -> MarkdownDocumentationFormatter.fixHtml("&blech;")); } @Test - public void testParagraphFormatting() { + void testParagraphFormatting() { String[] words = {"first", "second", "third", "really-really-long-word", "more", "stuff"}; String formatted = MarkdownDocumentationFormatter.formatParagraph(Arrays.asList(words), 16); assertThat(formatted).isEqualTo("first second\nthird\nreally-really-long-word\nmore stuff\n"); } @Test - public void testReflow() { + void testReflow() { String input = "This is the very first line.\n" - + " \n" // add a little blank space to this line just to make things interesting. - + "This is the second paragraph. Aint\n" - + "it sweet?\n" - + "\n" - + "This is our third and final paragraph.\n" - + "It is multi-line and ends with no blank\n" - + "line."; + + " \n" // add a little blank space to this line just to make things interesting. + + "This is the second paragraph. Aint\n" + + "it sweet?\n" + + "\n" + + "This is our third and final paragraph.\n" + + "It is multi-line and ends with no blank\n" + + "line."; String expected = "This is the very\n" - + "first line.\n" - + "\n" - + "This is the\n" - + "second\n" - + "paragraph. Aint\n" - + "it sweet?\n" - + "\n" - + "This is our\n" - + "third and final\n" - + "paragraph. It is\n" - + "multi-line and\n" - + "ends with no\n" - + "blank line.\n"; + + "first line.\n" + + "\n" + + "This is the\n" + + "second\n" + + "paragraph. Aint\n" + + "it sweet?\n" + + "\n" + + "This is our\n" + + "third and final\n" + + "paragraph. It is\n" + + "multi-line and\n" + + "ends with no\n" + + "blank line.\n"; - assertThat(MarkdownDocumentationFormatter.reflow(input, 16)).isEqualTo(expected); - } + assertThat(MarkdownDocumentationFormatter.reflow(input, 16)).isEqualTo(expected); + } - public MarkdownDocumentationFormatterTest() {} + MarkdownDocumentationFormatterTest() {} } diff --git a/core/src/test/java/google/registry/groups/DirectoryGroupsConnectionTest.java b/core/src/test/java/google/registry/groups/DirectoryGroupsConnectionTest.java index d0bb23163..85a11d634 100644 --- a/core/src/test/java/google/registry/groups/DirectoryGroupsConnectionTest.java +++ b/core/src/test/java/google/registry/groups/DirectoryGroupsConnectionTest.java @@ -49,16 +49,12 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import google.registry.groups.GroupsConnection.Role; import java.util.Set; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +/** Unit tests for {@link DirectoryGroupsConnection}. */ +class DirectoryGroupsConnectionTest { -/** - * Unit tests for {@link DirectoryGroupsConnection}. - */ -@RunWith(JUnit4.class) -public class DirectoryGroupsConnectionTest { private final Directory directory = mock(Directory.class); private final Groupssettings groupsSettings = mock(Groupssettings.class); private final Directory.Members members = mock(Directory.Members.class); @@ -75,8 +71,8 @@ public class DirectoryGroupsConnectionTest { private DirectoryGroupsConnection connection; private Member expectedOwner = new Member(); - @Before - public void init() throws Exception { + @BeforeEach + void beforeEach() throws Exception { when(directory.members()).thenReturn(members); when(members.insert(anyString(), any(Member.class))).thenReturn(membersInsert); when(members.get(anyString(), anyString())).thenReturn(membersGet); @@ -94,12 +90,12 @@ public class DirectoryGroupsConnectionTest { } @Test - public void test_addMemberToGroup_succeeds() throws Exception { + void test_addMemberToGroup_succeeds() throws Exception { runAddMemberTest(); } @Test - public void test_addMemberToGroup_isIdempotent_whenMemberAlreadyExists() throws Exception { + void test_addMemberToGroup_isIdempotent_whenMemberAlreadyExists() throws Exception { Member expected = runAddMemberTest(); when(membersInsert.execute()) .thenThrow(makeResponseException(SC_CONFLICT, "Member already exists.")); @@ -109,14 +105,14 @@ public class DirectoryGroupsConnectionTest { } @Test - public void test_addMemberToGroup_handlesExceptionThrownByDirectoryService() throws Exception { + void test_addMemberToGroup_handlesExceptionThrownByDirectoryService() throws Exception { when(membersInsert.execute()).thenThrow( makeResponseException(SC_INTERNAL_SERVER_ERROR, "Could not contact Directory server.")); assertThrows(GoogleJsonResponseException.class, this::runAddMemberTest); } @Test - public void test_addMemberToGroup_handlesMemberKeyNotFoundException() throws Exception { + void test_addMemberToGroup_handlesMemberKeyNotFoundException() throws Exception { when(membersInsert.execute()).thenThrow( makeResponseException(SC_NOT_FOUND, "Resource Not Found: memberKey")); RuntimeException thrown = @@ -131,7 +127,7 @@ public class DirectoryGroupsConnectionTest { } @Test - public void test_addMemberToGroup_createsGroupWhenNonexistent() throws Exception { + void test_addMemberToGroup_createsGroupWhenNonexistent() throws Exception { Member expected = new Member(); expected.setEmail("tim@example.com"); expected.setRole("MEMBER"); @@ -157,12 +153,12 @@ public class DirectoryGroupsConnectionTest { } @Test - public void test_createGroup_succeeds() throws Exception { + void test_createGroup_succeeds() throws Exception { runCreateGroupTest(); } @Test - public void test_createGroup_isIdempotent_whenGroupAlreadyExists() throws Exception { + void test_createGroup_isIdempotent_whenGroupAlreadyExists() throws Exception { Group expected = runCreateGroupTest(); when(groupsInsert.execute()) .thenThrow(makeResponseException(SC_CONFLICT, "Entity already exists.")); @@ -173,14 +169,14 @@ public class DirectoryGroupsConnectionTest { } @Test - public void test_createGroup_handlesExceptionThrownByDirectoryService() throws Exception { + void test_createGroup_handlesExceptionThrownByDirectoryService() throws Exception { when(groupsInsert.execute()).thenThrow( makeResponseException(SC_INTERNAL_SERVER_ERROR, "Could not contact Directory server.")); assertThrows(GoogleJsonResponseException.class, this::runCreateGroupTest); } @Test - public void test_getMembersOfGroup_succeeds() throws Exception { + void test_getMembersOfGroup_succeeds() throws Exception { Member member1 = new Member(); member1.setEmail("john@example.com"); Member member2 = new Member(); @@ -208,7 +204,7 @@ public class DirectoryGroupsConnectionTest { } @Test - public void test_getMembersOfNonexistentGroup_returnsEmptySet() throws Exception { + void test_getMembersOfNonexistentGroup_returnsEmptySet() throws Exception { when(members.list("nonexistent_group@fake.notreal")).thenReturn(membersList); when(membersList.setRoles("MEMBER")).thenReturn(membersList); when(membersList.execute()) @@ -217,7 +213,7 @@ public class DirectoryGroupsConnectionTest { } @Test - public void test_isMemberOfSupportGroup_userInGroup_True() throws Exception { + void test_isMemberOfSupportGroup_userInGroup_True() throws Exception { when(members.get("support@domain-registry.example", "user@example.com")).thenReturn(membersGet); when(membersGet.execute()).thenReturn(new Member()); assertThat(connection.isMemberOfGroup("user@example.com", "support@domain-registry.example")) @@ -225,7 +221,7 @@ public class DirectoryGroupsConnectionTest { } @Test - public void test_isMemberOfSupportGroup_userExistButNotInGroup_returnsFalse() throws Exception { + void test_isMemberOfSupportGroup_userExistButNotInGroup_returnsFalse() throws Exception { when(members.get("support@domain-registry.example", "user@example.com")) .thenThrow(makeResponseException(0, "Resource Not Found: memberKey")); when(membersGet.execute()).thenReturn(new Member()); @@ -234,7 +230,7 @@ public class DirectoryGroupsConnectionTest { } @Test - public void test_isMemberOfSupportGroup_userDoesntExist_returnsFalse() throws Exception { + void test_isMemberOfSupportGroup_userDoesntExist_returnsFalse() throws Exception { when(members.get("support@domain-registry.example", "user@example.com")) .thenThrow(makeResponseException(0, "Missing required field: memberKey")); when(membersGet.execute()).thenReturn(new Member()); @@ -243,7 +239,7 @@ public class DirectoryGroupsConnectionTest { } @Test - public void test_isMemberOfSupportGroup_otherError_throws() throws Exception { + void test_isMemberOfSupportGroup_otherError_throws() throws Exception { when(members.get("support@domain-registry.example", "user@example.com")) .thenThrow(makeResponseException(0, "some error")); when(membersGet.execute()).thenReturn(new Member()); diff --git a/core/src/test/java/google/registry/keyring/api/ComparatorKeyringTest.java b/core/src/test/java/google/registry/keyring/api/ComparatorKeyringTest.java index 76baed168..22fe6b64c 100644 --- a/core/src/test/java/google/registry/keyring/api/ComparatorKeyringTest.java +++ b/core/src/test/java/google/registry/keyring/api/ComparatorKeyringTest.java @@ -30,15 +30,12 @@ import org.bouncycastle.bcpg.PublicKeyPacket; import org.bouncycastle.openpgp.PGPKeyPair; import org.bouncycastle.openpgp.PGPPrivateKey; import org.bouncycastle.openpgp.PGPPublicKey; -import org.junit.After; -import org.junit.Before; -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; /** Unit tests for {@link ComparatorKeyring}. */ -@RunWith(JUnit4.class) -public class ComparatorKeyringTest { +class ComparatorKeyringTest { private static final String PUBLIC_KEY_FINGERPRINT = "fingerprint"; private static final String PUBLIC_KEY_TO_STRING = @@ -79,18 +76,18 @@ public class ComparatorKeyringTest { private final TestLogHandler testLogHandler = new TestLogHandler(); - @Before - public void setUp() { + @BeforeEach + void beforeEach() { LoggerConfig.getConfig(ComparatorKeyring.class).addHandler(testLogHandler); } - @After - public void tearDown() { + @AfterEach + void afterEach() { LoggerConfig.getConfig(ComparatorKeyring.class).removeHandler(testLogHandler); } @Test - public void testPublicKeyToString() throws Exception { + void testPublicKeyToString() throws Exception { assertThat( ComparatorKeyring.stringify( mockPublicKey(false, false))) @@ -98,7 +95,7 @@ public class ComparatorKeyringTest { } @Test - public void testPublicKeyEquals() throws Exception { + void testPublicKeyEquals() throws Exception { assertThat( ComparatorKeyring.compare( mockPublicKey(false, false), @@ -107,7 +104,7 @@ public class ComparatorKeyringTest { } @Test - public void testPublicKeyDifferFingerprint_notEqual() throws Exception { + void testPublicKeyDifferFingerprint_notEqual() throws Exception { assertThat( ComparatorKeyring.compare( mockPublicKey(false, false), @@ -116,7 +113,7 @@ public class ComparatorKeyringTest { } @Test - public void testPublicKeyDifferEncoded_notEqual() throws Exception { + void testPublicKeyDifferEncoded_notEqual() throws Exception { assertThat( ComparatorKeyring.compare( mockPublicKey(false, false), @@ -125,7 +122,7 @@ public class ComparatorKeyringTest { } @Test - public void testPrivateKeyToString() throws Exception { + void testPrivateKeyToString() throws Exception { assertThat( ComparatorKeyring.stringify( mockPrivateKey(false, false, false, false))) @@ -133,7 +130,7 @@ public class ComparatorKeyringTest { } @Test - public void testPrivateKeyEquals() throws Exception { + void testPrivateKeyEquals() throws Exception { assertThat( ComparatorKeyring.compare( mockPrivateKey(false, false, false, false), @@ -142,7 +139,7 @@ public class ComparatorKeyringTest { } @Test - public void testPrivateKeyDifferId_notEquals() throws Exception { + void testPrivateKeyDifferId_notEquals() throws Exception { assertThat( ComparatorKeyring.compare( mockPrivateKey(false, false, false, false), @@ -151,7 +148,7 @@ public class ComparatorKeyringTest { } @Test - public void testPrivateKeyDifferBcpgFormat_notEquals() throws Exception { + void testPrivateKeyDifferBcpgFormat_notEquals() throws Exception { assertThat( ComparatorKeyring.compare( mockPrivateKey(false, false, false, false), @@ -160,7 +157,7 @@ public class ComparatorKeyringTest { } @Test - public void testPrivateKeyDifferBcpgEncoding_notEquals() throws Exception { + void testPrivateKeyDifferBcpgEncoding_notEquals() throws Exception { assertThat( ComparatorKeyring.compare( mockPrivateKey(false, false, false, false), @@ -169,7 +166,7 @@ public class ComparatorKeyringTest { } @Test - public void testPrivateKeyDifferPublicKeyEncoding_notEquals() throws Exception { + void testPrivateKeyDifferPublicKeyEncoding_notEquals() throws Exception { assertThat( ComparatorKeyring.compare( mockPrivateKey(false, false, false, false), @@ -178,7 +175,7 @@ public class ComparatorKeyringTest { } @Test - public void testKeyPairToString() throws Exception { + void testKeyPairToString() throws Exception { assertThat( ComparatorKeyring.stringify( new PGPKeyPair( @@ -188,7 +185,7 @@ public class ComparatorKeyringTest { } @Test - public void testKeyPairEquals() throws Exception { + void testKeyPairEquals() throws Exception { assertThat( ComparatorKeyring.compare( new PGPKeyPair( @@ -201,7 +198,7 @@ public class ComparatorKeyringTest { } @Test - public void testKeyPairDifferPublicKey_notEqual() throws Exception { + void testKeyPairDifferPublicKey_notEqual() throws Exception { assertThat( ComparatorKeyring.compare( new PGPKeyPair( @@ -214,7 +211,7 @@ public class ComparatorKeyringTest { } @Test - public void testKeyPairDifferPrivateKey_notEqual() throws Exception { + void testKeyPairDifferPrivateKey_notEqual() throws Exception { assertThat( ComparatorKeyring.compare( new PGPKeyPair( @@ -232,7 +229,7 @@ public class ComparatorKeyringTest { // We will fully test a single method just to make sure everything is "connected" correctly. @Test - public void testRdeSigningKey_actualThrows() throws Exception { + void testRdeSigningKey_actualThrows() throws Exception { Keyring actualKeyring = mock(Keyring.class); Keyring secondKeyring = mock(Keyring.class); PGPKeyPair keyPair = @@ -252,7 +249,7 @@ public class ComparatorKeyringTest { } @Test - public void testRdeSigningKey_secondThrows() throws Exception { + void testRdeSigningKey_secondThrows() throws Exception { Keyring actualKeyring = mock(Keyring.class); Keyring secondKeyring = mock(Keyring.class); PGPKeyPair keyPair = @@ -272,7 +269,7 @@ public class ComparatorKeyringTest { } @Test - public void testRdeSigningKey_bothThrow() { + void testRdeSigningKey_bothThrow() { Keyring actualKeyring = mock(Keyring.class); Keyring secondKeyring = mock(Keyring.class); when(actualKeyring.getRdeSigningKey()).thenThrow(new KeyringException("message")); @@ -285,7 +282,7 @@ public class ComparatorKeyringTest { } @Test - public void testRdeSigningKey_same() throws Exception { + void testRdeSigningKey_same() throws Exception { Keyring actualKeyring = mock(Keyring.class); Keyring secondKeyring = mock(Keyring.class); PGPKeyPair keyPair = @@ -306,7 +303,7 @@ public class ComparatorKeyringTest { } @Test - public void testRdeSigningKey_different() throws Exception { + void testRdeSigningKey_different() throws Exception { Keyring actualKeyring = mock(Keyring.class); Keyring secondKeyring = mock(Keyring.class); PGPKeyPair keyPair = diff --git a/core/src/test/java/google/registry/keyring/kms/KmsConnectionImplTest.java b/core/src/test/java/google/registry/keyring/kms/KmsConnectionImplTest.java index dd63838d7..0d0ae8eda 100644 --- a/core/src/test/java/google/registry/keyring/kms/KmsConnectionImplTest.java +++ b/core/src/test/java/google/registry/keyring/kms/KmsConnectionImplTest.java @@ -38,21 +38,20 @@ import google.registry.testing.FakeClock; import google.registry.testing.FakeSleeper; import google.registry.util.Retrier; import java.io.ByteArrayInputStream; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; -@RunWith(JUnit4.class) -public class KmsConnectionImplTest { - - @Rule public final MockitoRule mocks = MockitoJUnit.rule(); +/** Unit tests for {@link KmsConnectionImpl}. */ +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) +class KmsConnectionImplTest { @Mock private CloudKMS kms; @Mock private CloudKMS.Projects kmsProjects; @@ -91,8 +90,8 @@ public class KmsConnectionImplTest { private final Retrier retrier = new Retrier(new FakeSleeper(new FakeClock()), 3); - @Before - public void setUp() throws Exception { + @BeforeEach + void beforeEach() throws Exception { when(kms.projects()).thenReturn(kmsProjects); when(kmsProjects.locations()).thenReturn(kmsLocations); when(kmsLocations.keyRings()).thenReturn(kmsKeyRings); @@ -123,7 +122,7 @@ public class KmsConnectionImplTest { } @Test - public void test_encrypt_createsKeyRingIfNotFound() throws Exception { + void test_encrypt_createsKeyRingIfNotFound() throws Exception { when(kmsKeyRingsGet.execute()).thenThrow(createNotFoundException()); new KmsConnectionImpl("foo", "bar", retrier, kms).encrypt("key", "moo".getBytes(UTF_8)); @@ -142,7 +141,7 @@ public class KmsConnectionImplTest { } @Test - public void test_encrypt_newCryptoKey() throws Exception { + void test_encrypt_newCryptoKey() throws Exception { when(kmsCryptoKeysGet.execute()).thenThrow(createNotFoundException()); new KmsConnectionImpl("foo", "bar", retrier, kms).encrypt("key", "moo".getBytes(UTF_8)); @@ -163,10 +162,9 @@ public class KmsConnectionImplTest { } @Test - public void test_encrypt() throws Exception { + void test_encrypt() throws Exception { new KmsConnectionImpl("foo", "bar", retrier, kms).encrypt("key", "moo".getBytes(UTF_8)); - verify(kmsCryptoKeyVersions).create(cryptoKeyName.capture(), cryptoKeyVersion.capture()); assertThat(cryptoKeyName.getValue()) .isEqualTo("projects/foo/locations/global/keyRings/bar/cryptoKeys/key"); @@ -188,7 +186,7 @@ public class KmsConnectionImplTest { } @Test - public void test_decrypt() throws Exception { + void test_decrypt() throws Exception { when(kmsCryptoKeysDecrypt.execute()) .thenReturn(new DecryptResponse().encodePlaintext("moo".getBytes(UTF_8))); 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 4563a95a2..c94bca929 100644 --- a/core/src/test/java/google/registry/mapreduce/inputs/ChildEntityInputTest.java +++ b/core/src/test/java/google/registry/mapreduce/inputs/ChildEntityInputTest.java @@ -50,95 +50,90 @@ import java.util.Set; import org.joda.money.Money; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Tests {@link ChildEntityInput} */ -@RunWith(JUnit4.class) -public class ChildEntityInputTest { +class ChildEntityInputTest { private static final DateTime now = DateTime.now(DateTimeZone.UTC); - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); - DomainBase domainA; - DomainBase domainB; - HistoryEntry domainHistoryEntryA; - HistoryEntry domainHistoryEntryB; - HistoryEntry contactHistoryEntry; - BillingEvent.OneTime oneTimeA; - BillingEvent.OneTime oneTimeB; - BillingEvent.Recurring recurringA; - BillingEvent.Recurring recurringB; + private DomainBase domainA; + private DomainBase domainB; + private HistoryEntry domainHistoryEntryA; + private HistoryEntry domainHistoryEntryB; + private HistoryEntry contactHistoryEntry; + private BillingEvent.OneTime oneTimeA; + private BillingEvent.OneTime oneTimeB; + private BillingEvent.Recurring recurringA; + private BillingEvent.Recurring recurringB; private void setupResources() { createTld("tld"); ContactResource contact = persistEppResourceInFirstBucket(newContactResource("contact1234")); domainA = persistEppResourceInFirstBucket(newDomainBase("a.tld", contact)); - domainHistoryEntryA = persistResource( - new HistoryEntry.Builder() - .setParent(domainA) - .setModificationTime(now) - .build()); - contactHistoryEntry = persistResource( - new HistoryEntry.Builder() - .setParent(contact) - .setModificationTime(now) - .build()); - oneTimeA = persistResource( - new BillingEvent.OneTime.Builder() - .setParent(domainHistoryEntryA) - .setReason(Reason.CREATE) - .setFlags(ImmutableSet.of(BillingEvent.Flag.ANCHOR_TENANT)) - .setPeriodYears(2) - .setCost(Money.of(USD, 1)) - .setEventTime(now) - .setBillingTime(now.plusDays(5)) - .setClientId("TheRegistrar") - .setTargetId("a.tld") - .build()); - recurringA = persistResource( - new BillingEvent.Recurring.Builder() - .setParent(domainHistoryEntryA) - .setReason(Reason.RENEW) - .setEventTime(now.plusYears(1)) - .setRecurrenceEndTime(END_OF_TIME) - .setClientId("TheRegistrar") - .setTargetId("a.tld") - .build()); + domainHistoryEntryA = + persistResource( + new HistoryEntry.Builder().setParent(domainA).setModificationTime(now).build()); + contactHistoryEntry = + persistResource( + new HistoryEntry.Builder().setParent(contact).setModificationTime(now).build()); + oneTimeA = + persistResource( + new BillingEvent.OneTime.Builder() + .setParent(domainHistoryEntryA) + .setReason(Reason.CREATE) + .setFlags(ImmutableSet.of(BillingEvent.Flag.ANCHOR_TENANT)) + .setPeriodYears(2) + .setCost(Money.of(USD, 1)) + .setEventTime(now) + .setBillingTime(now.plusDays(5)) + .setClientId("TheRegistrar") + .setTargetId("a.tld") + .build()); + recurringA = + persistResource( + new BillingEvent.Recurring.Builder() + .setParent(domainHistoryEntryA) + .setReason(Reason.RENEW) + .setEventTime(now.plusYears(1)) + .setRecurrenceEndTime(END_OF_TIME) + .setClientId("TheRegistrar") + .setTargetId("a.tld") + .build()); } private void setupSecondDomainBases() { domainB = persistEppResourceInFirstBucket(newDomainBase("b.tld")); - domainHistoryEntryB = persistResource( - new HistoryEntry.Builder() - .setParent(domainB) - .setModificationTime(now) - .build()); - oneTimeB = persistResource( - new BillingEvent.OneTime.Builder() - .setParent(domainHistoryEntryA) - .setReason(Reason.CREATE) - .setFlags(ImmutableSet.of(BillingEvent.Flag.ANCHOR_TENANT)) - .setPeriodYears(2) - .setCost(Money.of(USD, 1)) - .setEventTime(now) - .setBillingTime(now.plusDays(5)) - .setClientId("TheRegistrar") - .setTargetId("a.tld") - .build()); - recurringB = persistResource( - new BillingEvent.Recurring.Builder() - .setParent(domainHistoryEntryA) - .setReason(Reason.RENEW) - .setEventTime(now.plusYears(1)) - .setRecurrenceEndTime(END_OF_TIME) - .setClientId("TheRegistrar") - .setTargetId("a.tld") - .build()); + domainHistoryEntryB = + persistResource( + new HistoryEntry.Builder().setParent(domainB).setModificationTime(now).build()); + oneTimeB = + persistResource( + new BillingEvent.OneTime.Builder() + .setParent(domainHistoryEntryA) + .setReason(Reason.CREATE) + .setFlags(ImmutableSet.of(BillingEvent.Flag.ANCHOR_TENANT)) + .setPeriodYears(2) + .setCost(Money.of(USD, 1)) + .setEventTime(now) + .setBillingTime(now.plusDays(5)) + .setClientId("TheRegistrar") + .setTargetId("a.tld") + .build()); + recurringB = + persistResource( + new BillingEvent.Recurring.Builder() + .setParent(domainHistoryEntryA) + .setReason(Reason.RENEW) + .setEventTime(now.plusYears(1)) + .setRecurrenceEndTime(END_OF_TIME) + .setClientId("TheRegistrar") + .setTargetId("a.tld") + .build()); } @SuppressWarnings("unchecked") @@ -154,15 +149,17 @@ public class ChildEntityInputTest { } @Test - public void testSuccess_childEntityReader_multipleParentsAndChildren() throws Exception { + void testSuccess_childEntityReader_multipleParentsAndChildren() throws Exception { setupResources(); setupSecondDomainBases(); Set seen = new HashSet<>(); - InputReader reader = EppResourceInputs.createChildEntityInput( - ImmutableSet.of(EppResource.class), - ImmutableSet.>of( - HistoryEntry.class, BillingEvent.OneTime.class, BillingEvent.Recurring.class)) - .createReaders().get(0); + InputReader reader = + EppResourceInputs.createChildEntityInput( + ImmutableSet.of(EppResource.class), + ImmutableSet.>of( + HistoryEntry.class, BillingEvent.OneTime.class, BillingEvent.Recurring.class)) + .createReaders() + .get(0); reader.beginShard(); reader.beginSlice(); for (int i = 0; i < 8; i++) { @@ -177,31 +174,34 @@ public class ChildEntityInputTest { seen.add(reader.next()); } } - assertThat(seen).containsExactly( - domainHistoryEntryA, - domainHistoryEntryB, - contactHistoryEntry, - oneTimeA, - recurringA, - oneTimeB, - recurringB); + assertThat(seen) + .containsExactly( + domainHistoryEntryA, + domainHistoryEntryB, + contactHistoryEntry, + oneTimeA, + recurringA, + oneTimeB, + recurringB); } @Test - public void testSuccess_childEntityInput_polymorphicBaseType() { + void testSuccess_childEntityInput_polymorphicBaseType() { createChildEntityInput(ImmutableSet.of(EppResource.class), ImmutableSet.of(BillingEvent.class)); } @Test - public void testSuccess_childEntityReader_multipleChildTypes() throws Exception { + void testSuccess_childEntityReader_multipleChildTypes() throws Exception { setupResources(); - InputReader reader = EppResourceInputs.createChildEntityInput( - ImmutableSet.of(EppResource.class), - ImmutableSet.>of( - HistoryEntry.class, BillingEvent.OneTime.class, BillingEvent.Recurring.class)) - .createReaders().get(0); - assertThat(getAllFromReader(reader)).containsExactly( - domainHistoryEntryA, contactHistoryEntry, oneTimeA, recurringA); + InputReader reader = + EppResourceInputs.createChildEntityInput( + ImmutableSet.of(EppResource.class), + ImmutableSet.>of( + HistoryEntry.class, BillingEvent.OneTime.class, BillingEvent.Recurring.class)) + .createReaders() + .get(0); + assertThat(getAllFromReader(reader)) + .containsExactly(domainHistoryEntryA, contactHistoryEntry, oneTimeA, recurringA); } private static Set getAllFromReader(InputReader reader) @@ -220,72 +220,85 @@ public class ChildEntityInputTest { } @Test - public void testSuccess_childEntityReader_filterParentTypes() throws Exception { + void testSuccess_childEntityReader_filterParentTypes() throws Exception { setupResources(); - InputReader reader = EppResourceInputs.createChildEntityInput( - ImmutableSet.>of(ContactResource.class), - ImmutableSet.>of( - HistoryEntry.class, BillingEvent.OneTime.class, BillingEvent.Recurring.class)) - .createReaders().get(0); + InputReader reader = + EppResourceInputs.createChildEntityInput( + ImmutableSet.>of(ContactResource.class), + ImmutableSet.>of( + HistoryEntry.class, BillingEvent.OneTime.class, BillingEvent.Recurring.class)) + .createReaders() + .get(0); assertThat(getAllFromReader(reader)).containsExactly(contactHistoryEntry); } @Test - public void testSuccess_childEntityReader_polymorphicChildFiltering() throws Exception { + void testSuccess_childEntityReader_polymorphicChildFiltering() throws Exception { setupResources(); - InputReader reader = EppResourceInputs.createChildEntityInput( - ImmutableSet.of(EppResource.class), - ImmutableSet.>of(BillingEvent.OneTime.class)) - .createReaders().get(0); + InputReader reader = + EppResourceInputs.createChildEntityInput( + ImmutableSet.of(EppResource.class), + ImmutableSet.>of(BillingEvent.OneTime.class)) + .createReaders() + .get(0); assertThat(getAllFromReader(reader)).containsExactly(oneTimeA); } @Test - public void testSuccess_childEntityReader_polymorphicChildClass() throws Exception { + void testSuccess_childEntityReader_polymorphicChildClass() throws Exception { setupResources(); - InputReader reader = EppResourceInputs.createChildEntityInput( - ImmutableSet.of(EppResource.class), - ImmutableSet.>of(BillingEvent.class)) - .createReaders().get(0); + InputReader reader = + EppResourceInputs.createChildEntityInput( + ImmutableSet.of(EppResource.class), + ImmutableSet.>of(BillingEvent.class)) + .createReaders() + .get(0); assertThat(getAllFromReader(reader)).containsExactly(oneTimeA, recurringA); } @Test - public void testSuccess_childEntityReader_noneReturned() throws Exception { + void testSuccess_childEntityReader_noneReturned() throws Exception { createTld("tld"); - InputReader reader = EppResourceInputs.createChildEntityInput( - ImmutableSet.>of(ContactResource.class), - ImmutableSet.>of( - BillingEvent.OneTime.class)).createReaders().get(0); + InputReader reader = + EppResourceInputs.createChildEntityInput( + ImmutableSet.>of(ContactResource.class), + ImmutableSet.>of(BillingEvent.OneTime.class)) + .createReaders() + .get(0); assertThat(getAllFromReader(reader)).isEmpty(); } @Test - public void testSuccess_childEntityReader_readerCountMatchesBucketCount() throws Exception { - assertThat(EppResourceInputs.createChildEntityInput( - ImmutableSet.>of(DomainBase.class), - ImmutableSet.>of( - BillingEvent.OneTime.class)).createReaders()).hasSize(3); + void testSuccess_childEntityReader_readerCountMatchesBucketCount() throws Exception { + assertThat( + EppResourceInputs.createChildEntityInput( + ImmutableSet.>of(DomainBase.class), + ImmutableSet.>of(BillingEvent.OneTime.class)) + .createReaders()) + .hasSize(3); } @Test - public void testSuccess_childEntityReader_oneReaderPerBucket() throws Exception { + void testSuccess_childEntityReader_oneReaderPerBucket() throws Exception { createTld("tld"); Set historyEntries = new HashSet<>(); for (int i = 1; i <= 3; i++) { DomainBase domain = persistSimpleResource(newDomainBase(i + ".tld")); - historyEntries.add(persistResource( - new HistoryEntry.Builder() - .setParent(domain) - .setModificationTime(now) - .setClientId(i + ".tld") - .build())); + historyEntries.add( + persistResource( + new HistoryEntry.Builder() + .setParent(domain) + .setModificationTime(now) + .setClientId(i + ".tld") + .build())); persistResource(EppResourceIndex.create(getBucketKey(i), Key.create(domain))); } Set seen = new HashSet<>(); - for (InputReader reader : EppResourceInputs.createChildEntityInput( - ImmutableSet.>of(DomainBase.class), - ImmutableSet.>of(HistoryEntry.class)).createReaders()) { + for (InputReader reader : + EppResourceInputs.createChildEntityInput( + ImmutableSet.>of(DomainBase.class), + ImmutableSet.>of(HistoryEntry.class)) + .createReaders()) { reader.beginShard(); reader.beginSlice(); seen.add(reader.next()); @@ -299,7 +312,7 @@ public class ChildEntityInputTest { } @Test - public void testSuccess_childEntityReader_survivesAcrossSerialization() throws Exception { + void testSuccess_childEntityReader_survivesAcrossSerialization() throws Exception { setupResources(); Set seen = new HashSet<>(); InputReader reader = 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 30103d07e..099dc3e53 100644 --- a/core/src/test/java/google/registry/mapreduce/inputs/CommitLogManifestInputTest.java +++ b/core/src/test/java/google/registry/mapreduce/inputs/CommitLogManifestInputTest.java @@ -30,14 +30,11 @@ import java.util.List; import java.util.NoSuchElementException; import java.util.Set; import org.joda.time.DateTime; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link CommitLogManifestInput}. */ -@RunWith(JUnit4.class) -public final class CommitLogManifestInputTest { +final class CommitLogManifestInputTest { private static final DateTime DATE_TIME_OLD = DateTime.parse("2015-12-19T12:00Z"); private static final DateTime DATE_TIME_OLD2 = DateTime.parse("2016-12-19T11:59Z"); @@ -47,19 +44,18 @@ public final class CommitLogManifestInputTest { private static final DateTime DATE_TIME_NEW = DateTime.parse("2016-12-19T12:01Z"); private static final DateTime DATE_TIME_NEW2 = DateTime.parse("2017-12-19T12:00Z"); - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @Test - public void testInputOlderThan_allFound() throws Exception { + void testInputOlderThan_allFound() throws Exception { Set> created = new HashSet<>(); for (int i = 1; i <= 3; i++) { created.add(createManifest(CommitLogBucket.getBucketKey(i), DATE_TIME_OLD)); } List> seen = new ArrayList<>(); Input> input = new CommitLogManifestInput(DATE_TIME_THRESHOLD); - for (InputReader> reader - : input.createReaders()) { + for (InputReader> reader : input.createReaders()) { reader.beginShard(); reader.beginSlice(); seen.add(reader.next()); @@ -73,7 +69,7 @@ public final class CommitLogManifestInputTest { } @Test - public void testInputOlderThan_skipsNew() throws Exception { + void testInputOlderThan_skipsNew() throws Exception { Set> old = new HashSet<>(); for (int i = 1; i <= 3; i++) { createManifest(CommitLogBucket.getBucketKey(i), DATE_TIME_NEW); @@ -83,8 +79,7 @@ public final class CommitLogManifestInputTest { } List> seen = new ArrayList<>(); Input> input = new CommitLogManifestInput(DATE_TIME_THRESHOLD); - for (InputReader> reader - : input.createReaders()) { + for (InputReader> reader : input.createReaders()) { reader.beginShard(); reader.beginSlice(); try { @@ -101,7 +96,7 @@ public final class CommitLogManifestInputTest { } @Test - public void testInputAll() throws Exception { + void testInputAll() throws Exception { Set> created = new HashSet<>(); for (int i = 1; i <= 3; i++) { created.add(createManifest(CommitLogBucket.getBucketKey(i), DATE_TIME_NEW)); @@ -111,8 +106,7 @@ public final class CommitLogManifestInputTest { } List> seen = new ArrayList<>(); Input> input = new CommitLogManifestInput(); - for (InputReader> reader - : input.createReaders()) { + for (InputReader> reader : input.createReaders()) { reader.beginShard(); reader.beginSlice(); try { @@ -129,8 +123,7 @@ public final class CommitLogManifestInputTest { } private static Key createManifest( - Key parent, - DateTime dateTime) { + Key parent, DateTime dateTime) { CommitLogManifest commitLogManifest = CommitLogManifest.create(parent, dateTime, null); DatastoreHelper.persistResource(commitLogManifest); return Key.create(commitLogManifest); 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 5bb47d38a..1521eee40 100644 --- a/core/src/test/java/google/registry/mapreduce/inputs/EppResourceInputsTest.java +++ b/core/src/test/java/google/registry/mapreduce/inputs/EppResourceInputsTest.java @@ -44,19 +44,16 @@ import java.io.ObjectOutputStream; import java.util.HashSet; import java.util.NoSuchElementException; import java.util.Set; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Tests {@link EppResourceInputs} */ -@RunWith(JUnit4.class) -public class EppResourceInputsTest { +class EppResourceInputsTest { private static final double EPSILON = 0.0001; - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @SuppressWarnings("unchecked") private T serializeAndDeserialize(T obj) throws Exception { @@ -71,12 +68,12 @@ public class EppResourceInputsTest { } @Test - public void testSuccess_keyInputType_polymorphicBaseType() { + void testSuccess_keyInputType_polymorphicBaseType() { createKeyInput(EppResource.class); } @Test - public void testFailure_keyInputType_noInheritanceBetweenTypes_eppResource() { + void testFailure_keyInputType_noInheritanceBetweenTypes_eppResource() { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, @@ -85,7 +82,7 @@ public class EppResourceInputsTest { } @Test - public void testFailure_entityInputType_noInheritanceBetweenTypes_eppResource() { + void testFailure_entityInputType_noInheritanceBetweenTypes_eppResource() { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, @@ -94,7 +91,7 @@ public class EppResourceInputsTest { } @Test - public void testFailure_entityInputType_noInheritanceBetweenTypes_subclasses() { + void testFailure_entityInputType_noInheritanceBetweenTypes_subclasses() { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, @@ -103,13 +100,13 @@ public class EppResourceInputsTest { } @Test - public void testReaderCountMatchesBucketCount() throws Exception { + void testReaderCountMatchesBucketCount() throws Exception { assertThat(createKeyInput(DomainBase.class).createReaders()).hasSize(3); assertThat(createEntityInput(DomainBase.class).createReaders()).hasSize(3); } @Test - public void testKeyInput_oneReaderPerBucket() throws Exception { + void testKeyInput_oneReaderPerBucket() throws Exception { createTld("tld"); Set> domains = new HashSet<>(); for (int i = 1; i <= 3; i++) { @@ -132,7 +129,7 @@ public class EppResourceInputsTest { } @Test - public void testEntityInput_oneReaderPerBucket() throws Exception { + void testEntityInput_oneReaderPerBucket() throws Exception { createTld("tld"); Set domains = new HashSet<>(); for (int i = 1; i <= 3; i++) { @@ -142,8 +139,7 @@ public class EppResourceInputsTest { persistResource(EppResourceIndex.create(getBucketKey(i), Key.create(domain))); } Set seen = new HashSet<>(); - for (InputReader reader - : createEntityInput(DomainBase.class).createReaders()) { + for (InputReader reader : createEntityInput(DomainBase.class).createReaders()) { reader.beginShard(); reader.beginSlice(); seen.add(reader.next()); @@ -157,7 +153,7 @@ public class EppResourceInputsTest { } @Test - public void testSuccess_keyReader_survivesAcrossSerialization() throws Exception { + void testSuccess_keyReader_survivesAcrossSerialization() throws Exception { createTld("tld"); DomainBase domainA = persistEppResourceInFirstBucket(newDomainBase("a.tld")); DomainBase domainB = persistEppResourceInFirstBucket(newDomainBase("b.tld")); @@ -181,15 +177,14 @@ public class EppResourceInputsTest { } @Test - public void testSuccess_entityReader_survivesAcrossSerialization() throws Exception { + void testSuccess_entityReader_survivesAcrossSerialization() throws Exception { createTld("tld"); DomainBase domainA = persistEppResourceInFirstBucket(newDomainBase("a.tld")); DomainBase domainB = persistEppResourceInFirstBucket(newDomainBase("b.tld")); // Should be ignored. We'll know if it isn't because the progress counts will be off. persistActiveContact("contact"); Set seen = new HashSet<>(); - InputReader reader = - createEntityInput(DomainBase.class).createReaders().get(0); + InputReader reader = createEntityInput(DomainBase.class).createReaders().get(0); reader.beginShard(); reader.beginSlice(); assertThat(reader.getProgress()).isWithin(EPSILON).of(0); @@ -208,15 +203,16 @@ public class EppResourceInputsTest { } @Test - public void testSuccess_entityReader_filtersOnMultipleTypes() throws Exception { + void testSuccess_entityReader_filtersOnMultipleTypes() throws Exception { createTld("tld"); DomainBase domain = persistEppResourceInFirstBucket(newDomainBase("a.tld")); HostResource host = persistEppResourceInFirstBucket(newHostResource("ns1.example.com")); persistEppResourceInFirstBucket(newContactResource("contact")); Set seen = new HashSet<>(); InputReader reader = - EppResourceInputs.createEntityInput( - DomainBase.class, HostResource.class).createReaders().get(0); + EppResourceInputs.createEntityInput(DomainBase.class, HostResource.class) + .createReaders() + .get(0); reader.beginShard(); reader.beginSlice(); assertThat(reader.getProgress()).isWithin(EPSILON).of(0); @@ -229,7 +225,7 @@ public class EppResourceInputsTest { } @Test - public void testSuccess_entityReader_noFilteringWhenUsingEppResource() throws Exception { + void testSuccess_entityReader_noFilteringWhenUsingEppResource() throws Exception { createTld("tld"); ContactResource contact = persistEppResourceInFirstBucket(newContactResource("contact")); // Specify the contact since persistActiveDomain{Application} creates a hidden one. diff --git a/core/src/test/java/google/registry/model/rde/RdeNamingUtilsTest.java b/core/src/test/java/google/registry/model/rde/RdeNamingUtilsTest.java index 338266db7..b5c8639ee 100644 --- a/core/src/test/java/google/registry/model/rde/RdeNamingUtilsTest.java +++ b/core/src/test/java/google/registry/model/rde/RdeNamingUtilsTest.java @@ -22,40 +22,38 @@ import static google.registry.model.rde.RdeNamingUtils.makeRydeFilename; import static org.junit.Assert.assertThrows; import org.joda.time.DateTime; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link RdeNamingUtils}. */ -@RunWith(JUnit4.class) -public class RdeNamingUtilsTest { +class RdeNamingUtilsTest { + @Test - public void testMakeRydeFilename_rdeDeposit() { + void testMakeRydeFilename_rdeDeposit() { assertThat(makeRydeFilename("numbness", DateTime.parse("1984-12-18TZ"), FULL, 1, 0)) .isEqualTo("numbness_1984-12-18_full_S1_R0"); } @Test - public void testMakeRydeFilename_brdaDeposit() { + void testMakeRydeFilename_brdaDeposit() { assertThat(makeRydeFilename("dreary", DateTime.parse("2000-12-18TZ"), THIN, 1, 0)) .isEqualTo("dreary_2000-12-18_thin_S1_R0"); } @Test - public void testMakeRydeFilename_revisionNumber() { + void testMakeRydeFilename_revisionNumber() { assertThat(makeRydeFilename("wretched", DateTime.parse("2000-12-18TZ"), THIN, 1, 123)) .isEqualTo("wretched_2000-12-18_thin_S1_R123"); } @Test - public void testMakeRydeFilename_timestampNotAtTheWitchingHour_throwsIae() { + void testMakeRydeFilename_timestampNotAtTheWitchingHour_throwsIae() { assertThrows( IllegalArgumentException.class, () -> makeRydeFilename("wretched", DateTime.parse("2000-12-18T04:20Z"), THIN, 1, 0)); } @Test - public void testMakePartialName() { + void testMakePartialName() { assertThat(makePartialName("unholy", DateTime.parse("2000-12-18TZ"), THIN)) .isEqualTo("unholy_2000-12-18_thin"); } 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 b686a6111..769bb5904 100644 --- a/core/src/test/java/google/registry/model/rde/RdeRevisionTest.java +++ b/core/src/test/java/google/registry/model/rde/RdeRevisionTest.java @@ -25,106 +25,95 @@ import static org.junit.Assert.assertThrows; import com.google.common.base.VerifyException; import google.registry.testing.AppEngineRule; import org.joda.time.DateTime; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link RdeRevision}. */ -@RunWith(JUnit4.class) public class RdeRevisionTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @Test - public void testGetNextRevision_objectDoesntExist_returnsZero() { - assertThat(getNextRevision("torment", DateTime.parse("1984-12-18TZ"), FULL)) - .isEqualTo(0); + void testGetNextRevision_objectDoesntExist_returnsZero() { + assertThat(getNextRevision("torment", DateTime.parse("1984-12-18TZ"), FULL)).isEqualTo(0); } @Test - public void testGetNextRevision_objectExistsAtZero_returnsOne() { + void testGetNextRevision_objectExistsAtZero_returnsOne() { save("sorrow", DateTime.parse("1984-12-18TZ"), FULL, 0); - assertThat(getNextRevision("sorrow", DateTime.parse("1984-12-18TZ"), FULL)) - .isEqualTo(1); + assertThat(getNextRevision("sorrow", DateTime.parse("1984-12-18TZ"), FULL)).isEqualTo(1); } @Test - public void testSaveRevision_objectDoesntExist_newRevisionIsZero_nextRevIsOne() { + void testSaveRevision_objectDoesntExist_newRevisionIsZero_nextRevIsOne() { tm().transact(() -> saveRevision("despondency", DateTime.parse("1984-12-18TZ"), FULL, 0)); - tm() - .transact( + tm().transact( () -> assertThat(getNextRevision("despondency", DateTime.parse("1984-12-18TZ"), FULL)) .isEqualTo(1)); } @Test - public void testSaveRevision_objectDoesntExist_newRevisionIsOne_throwsVe() { + void testSaveRevision_objectDoesntExist_newRevisionIsOne_throwsVe() { VerifyException thrown = assertThrows( VerifyException.class, () -> - tm() - .transact( + tm().transact( () -> saveRevision("despondency", DateTime.parse("1984-12-18TZ"), FULL, 1))); assertThat(thrown).hasMessageThat().contains("object missing"); } @Test - public void testSaveRevision_objectExistsAtZero_newRevisionIsZero_throwsVe() { + void testSaveRevision_objectExistsAtZero_newRevisionIsZero_throwsVe() { save("melancholy", DateTime.parse("1984-12-18TZ"), FULL, 0); VerifyException thrown = assertThrows( VerifyException.class, () -> - tm() - .transact( + tm().transact( () -> saveRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL, 0))); assertThat(thrown).hasMessageThat().contains("object already created"); } @Test - public void testSaveRevision_objectExistsAtZero_newRevisionIsOne_nextRevIsTwo() { + void testSaveRevision_objectExistsAtZero_newRevisionIsOne_nextRevIsTwo() { save("melancholy", DateTime.parse("1984-12-18TZ"), FULL, 0); tm().transact(() -> saveRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL, 1)); - tm() - .transact( + tm().transact( () -> assertThat(getNextRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL)) .isEqualTo(2)); } @Test - public void testSaveRevision_objectExistsAtZero_newRevisionIsTwo_throwsVe() { + void testSaveRevision_objectExistsAtZero_newRevisionIsTwo_throwsVe() { save("melancholy", DateTime.parse("1984-12-18TZ"), FULL, 0); VerifyException thrown = assertThrows( VerifyException.class, () -> - tm() - .transact( + tm().transact( () -> saveRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL, 2))); assertThat(thrown).hasMessageThat().contains("should be at 1 "); } @Test - public void testSaveRevision_negativeRevision_throwsIae() { + void testSaveRevision_negativeRevision_throwsIae() { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, () -> - tm() - .transact( + tm().transact( () -> saveRevision("melancholy", DateTime.parse("1984-12-18TZ"), FULL, -1))); assertThat(thrown).hasMessageThat().contains("Negative revision"); } @Test - public void testSaveRevision_callerNotInTransaction_throwsIse() { + void testSaveRevision_callerNotInTransaction_throwsIse() { IllegalStateException thrown = assertThrows( IllegalStateException.class, 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 8568cf1fc..872621733 100644 --- a/core/src/test/java/google/registry/model/registry/RegistriesTest.java +++ b/core/src/test/java/google/registry/model/registry/RegistriesTest.java @@ -24,30 +24,27 @@ import static org.junit.Assert.assertThrows; import com.google.common.net.InternetDomainName; import google.registry.model.registry.Registry.TldType; import google.registry.testing.AppEngineRule; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link Registries}. */ -@RunWith(JUnit4.class) -public class RegistriesTest { +class RegistriesTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); private void initTestTlds() { createTlds("foo", "a.b.c"); // Test a multipart tld. } @Test - public void testGetTlds() { + void testGetTlds() { initTestTlds(); assertThat(Registries.getTlds()).containsExactly("foo", "a.b.c"); } @Test - public void test_getTldEntities() { + void test_getTldEntities() { initTestTlds(); persistResource(newRegistry("testtld", "TESTTLD").asBuilder().setTldType(TldType.TEST).build()); assertThat(Registries.getTldEntitiesOfType(TldType.REAL)) @@ -57,25 +54,25 @@ public class RegistriesTest { } @Test - public void testGetTlds_withNoRegistriesPersisted_returnsEmptySet() { + void testGetTlds_withNoRegistriesPersisted_returnsEmptySet() { assertThat(Registries.getTlds()).isEmpty(); } @Test - public void testAssertTldExists_doesExist() { + void testAssertTldExists_doesExist() { initTestTlds(); Registries.assertTldExists("foo"); Registries.assertTldExists("a.b.c"); } @Test - public void testAssertTldExists_doesntExist() { + void testAssertTldExists_doesntExist() { initTestTlds(); assertThrows(IllegalArgumentException.class, () -> Registries.assertTldExists("baz")); } @Test - public void testFindTldForName() { + void testFindTldForName() { initTestTlds(); assertThat(Registries.findTldForName(InternetDomainName.from("example.foo")).get().toString()) .isEqualTo("foo"); 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 b482cb7a6..e31b5228a 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 @@ -24,23 +24,20 @@ import com.google.common.reflect.ClassPath.ResourceInfo; import google.registry.testing.AppEngineRule; import java.net.URL; import java.util.List; -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; /** Presubmit tests for {@link PremiumList} configuration files. */ -@RunWith(JUnit4.class) -public class GenrulePremiumListTest { +class GenrulePremiumListTest { private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private static final String LISTS_DIRECTORY = "google/registry/config/files/premium/"; - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @Test - public void testParse_allPremiumLists() throws Exception { + void testParse_allPremiumLists() throws Exception { ClassPath classpath = ClassPath.from(getClass().getClassLoader()); int numParsed = 0; for (ResourceInfo resource : classpath.getResources()) { 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 f8bdf60a6..0c56e7d24 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 @@ -24,23 +24,20 @@ import com.google.common.reflect.ClassPath.ResourceInfo; import google.registry.testing.AppEngineRule; import java.net.URL; import java.util.List; -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; /** Presubmit tests for {@link ReservedList} configuration files. */ -@RunWith(JUnit4.class) -public class GenruleReservedListTest { +class GenruleReservedListTest { private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private static final String LISTS_DIRECTORY = "google/registry/config/files/reserved/"; - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @Test - public void testParse_allReservedLists() throws Exception { + void testParse_allReservedLists() throws Exception { ClassPath classpath = ClassPath.from(getClass().getClassLoader()); int numParsed = 0; for (ResourceInfo resource : classpath.getResources()) { 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 725ae977a..9ebb00ba0 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 @@ -39,26 +39,22 @@ import google.registry.testing.AppEngineRule; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link ReservedList}. */ -@RunWith(JUnit4.class) -public class ReservedListTest { +class ReservedListTest { - @Rule - public final InjectRule inject = new InjectRule(); + @RegisterExtension final InjectRule inject = new InjectRule(); - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); - FakeClock clock = new FakeClock(DateTime.parse("2010-01-01T10:00:00Z")); + private FakeClock clock = new FakeClock(DateTime.parse("2010-01-01T10:00:00Z")); - @Before - public void before() { + @BeforeEach + void beforeEach() { inject.setStaticField(Ofy.class, "clock", clock); createTld("tld"); reservedListChecks.reset(); @@ -79,7 +75,7 @@ public class ReservedListTest { } @Test - public void testGetReservationTypes_allLabelsAreUnreserved_withNoReservedLists() { + void testGetReservationTypes_allLabelsAreUnreserved_withNoReservedLists() { assertThat(Registry.get("tld").getReservedLists()).isEmpty(); assertThat(getReservationTypes("doodle", "tld")).isEmpty(); assertThat(getReservationTypes("access", "tld")).isEmpty(); @@ -88,13 +84,13 @@ public class ReservedListTest { } @Test - public void testZeroReservedLists_doesNotCauseError() { + void testZeroReservedLists_doesNotCauseError() { assertThat(getReservationTypes("doodle", "tld")).isEmpty(); verifyUnreservedCheckCount(1); } @Test - public void testGetReservationTypes_twoLetterCodesAreAvailable() { + void testGetReservationTypes_twoLetterCodesAreAvailable() { for (String sld : ImmutableList.of("aa", "az", "zz", "91", "1n", "j5")) { assertThat(getReservationTypes(sld, "tld")).isEmpty(); } @@ -102,7 +98,7 @@ public class ReservedListTest { } @Test - public void testGetReservationTypes_singleCharacterDomainsAreAllowed() { + void testGetReservationTypes_singleCharacterDomainsAreAllowed() { // This isn't quite exhaustive but it's close. for (char c = 'a'; c <= 'z'; c++) { assertThat(getReservationTypes("" + c, "tld")).isEmpty(); @@ -111,7 +107,7 @@ public class ReservedListTest { } @Test - public void testGetReservationTypes_concatsMultipleListsCorrectly() { + void testGetReservationTypes_concatsMultipleListsCorrectly() { ReservedList rl1 = persistReservedList( "reserved1", "lol,FULLY_BLOCKED # yup", @@ -153,7 +149,7 @@ public class ReservedListTest { } @Test - public void testGetReservationTypes_returnsAllReservationTypesFromMultipleListsForTheSameLabel() { + void testGetReservationTypes_returnsAllReservationTypesFromMultipleListsForTheSameLabel() { ReservedList rl1 = persistReservedList("reserved1", "lol,NAME_COLLISION # yup", "cat,FULLY_BLOCKED"); ReservedList rl2 = @@ -167,9 +163,8 @@ public class ReservedListTest { assertThat(getReservationTypes("snowcrash", "tld")).containsExactly(FULLY_BLOCKED); } - @Test - public void testGetReservationTypes_worksAfterReservedListRemovedUsingSet() { + void testGetReservationTypes_worksAfterReservedListRemovedUsingSet() { ReservedList rl1 = persistReservedList( "reserved1", "lol,FULLY_BLOCKED", "cat,FULLY_BLOCKED"); ReservedList rl2 = persistReservedList( @@ -202,7 +197,7 @@ public class ReservedListTest { } @Test - public void testGetReservationTypes_combinesMultipleLists() { + void testGetReservationTypes_combinesMultipleLists() { ReservedList rl1 = persistReservedList( "reserved1", "lol,NAME_COLLISION", "roflcopter,ALLOWED_IN_SUNRISE"); ReservedList rl2 = persistReservedList("reserved2", "lol,FULLY_BLOCKED"); @@ -233,7 +228,7 @@ public class ReservedListTest { } @Test - public void testSave() { + void testSave() { ReservedList rl = persistReservedList("tld-reserved", "lol,FULLY_BLOCKED # yup"); createTld("tld"); persistResource(Registry.get("tld").asBuilder().setReservedLists(rl).build()); @@ -241,7 +236,7 @@ public class ReservedListTest { } @Test - public void testSave_commentsArePersistedCorrectly() { + void testSave_commentsArePersistedCorrectly() { ReservedList reservedList = persistReservedList( "reserved", "trombone,FULLY_BLOCKED # yup", @@ -266,20 +261,20 @@ public class ReservedListTest { } @Test - public void testIsInUse_returnsTrueWhenInUse() { + void testIsInUse_returnsTrueWhenInUse() { ReservedList rl = persistReservedList("reserved", "trombone,FULLY_BLOCKED"); persistResource(Registry.get("tld").asBuilder().setReservedLists(ImmutableSet.of(rl)).build()); assertThat(rl.isInUse()).isTrue(); } @Test - public void testIsInUse_returnsFalseWhenNotInUse() { + void testIsInUse_returnsFalseWhenNotInUse() { ReservedList rl = persistReservedList("reserved", "trombone,FULLY_BLOCKED"); assertThat(rl.isInUse()).isFalse(); } @Test - public void testSetFromInputLines() { + void testSetFromInputLines() { ReservedList reservedList = persistReservedList("reserved", "trombone,FULLY_BLOCKED"); assertThat(ReservedList.get("reserved").get().getReservedListEntries()).hasSize(1); reservedList = reservedList.asBuilder() @@ -290,7 +285,7 @@ public class ReservedListTest { } @Test - public void testAsBuilderReturnsIdenticalReservedList() { + void testAsBuilderReturnsIdenticalReservedList() { ReservedList original = persistReservedList("tld-reserved-cloning", "trombone,FULLY_BLOCKED"); ReservedList clone = original.asBuilder().build(); assertThat(clone.getName()).isEqualTo("tld-reserved-cloning"); @@ -301,7 +296,7 @@ public class ReservedListTest { } @Test - public void testSave_badSyntax() { + void testSave_badSyntax() { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, @@ -310,13 +305,13 @@ public class ReservedListTest { } @Test - public void testSave_badReservationType() { + void testSave_badReservationType() { assertThrows( IllegalArgumentException.class, () -> persistReservedList("tld", "lol,FULLY_BLOCKZ # yup")); } @Test - public void testParse_cannotIncludeDuplicateLabels() { + void testParse_cannotIncludeDuplicateLabels() { ReservedList rl = new ReservedList.Builder().setName("blah").build(); IllegalStateException thrown = assertThrows( @@ -336,7 +331,7 @@ public class ReservedListTest { } @Test - public void testValidation_labelMustBeLowercase() { + void testValidation_labelMustBeLowercase() { Exception e = assertThrows( IllegalArgumentException.class, @@ -345,7 +340,7 @@ public class ReservedListTest { } @Test - public void testValidation_labelMustBePunyCoded() { + void testValidation_labelMustBePunyCoded() { Exception e = assertThrows( IllegalArgumentException.class, diff --git a/core/src/test/java/google/registry/module/backend/BackendRequestComponentTest.java b/core/src/test/java/google/registry/module/backend/BackendRequestComponentTest.java index 9c2e0cc4c..d33aa1994 100644 --- a/core/src/test/java/google/registry/module/backend/BackendRequestComponentTest.java +++ b/core/src/test/java/google/registry/module/backend/BackendRequestComponentTest.java @@ -19,23 +19,20 @@ import static com.google.common.truth.Truth.assertThat; import google.registry.request.Action; import google.registry.request.RouterDisplayHelper; import google.registry.testing.GoldenFileTestHelper; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link BackendRequestComponent}. */ -@RunWith(JUnit4.class) -public class BackendRequestComponentTest { +class BackendRequestComponentTest { @Test - public void testRoutingMap() { + void testRoutingMap() { GoldenFileTestHelper.assertThatRoutesFromComponent(BackendRequestComponent.class) .describedAs("backend routing map") .isEqualToGolden(BackendRequestComponentTest.class, "backend_routing.txt"); } @Test - public void testRoutingService() { + void testRoutingService() { assertThat( RouterDisplayHelper.extractHumanReadableRoutesWithWrongService( BackendRequestComponent.class, Action.Service.BACKEND)) 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 c8909b616..e74cedddb 100644 --- a/core/src/test/java/google/registry/module/backend/BackendServletTest.java +++ b/core/src/test/java/google/registry/module/backend/BackendServletTest.java @@ -21,24 +21,21 @@ import static org.mockito.Mockito.when; import google.registry.testing.AppEngineRule; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -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 BackendServlet}. */ -@RunWith(JUnit4.class) -public class BackendServletTest { +class BackendServletTest { - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().withLocalModules().build(); private final HttpServletRequest req = mock(HttpServletRequest.class); private final HttpServletResponse rsp = mock(HttpServletResponse.class); @Test - public void testService_unknownPath_returnsNotFound() throws Exception { + void testService_unknownPath_returnsNotFound() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getRequestURI()).thenReturn("/lol"); new BackendServlet().service(req, rsp); diff --git a/core/src/test/java/google/registry/module/frontend/FrontendRequestComponentTest.java b/core/src/test/java/google/registry/module/frontend/FrontendRequestComponentTest.java index fceac597b..c94a77cf6 100644 --- a/core/src/test/java/google/registry/module/frontend/FrontendRequestComponentTest.java +++ b/core/src/test/java/google/registry/module/frontend/FrontendRequestComponentTest.java @@ -19,23 +19,20 @@ import static com.google.common.truth.Truth.assertThat; import google.registry.request.Action; import google.registry.request.RouterDisplayHelper; import google.registry.testing.GoldenFileTestHelper; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link FrontendRequestComponent}. */ -@RunWith(JUnit4.class) -public class FrontendRequestComponentTest { +class FrontendRequestComponentTest { @Test - public void testRoutingMap() { + void testRoutingMap() { GoldenFileTestHelper.assertThatRoutesFromComponent(FrontendRequestComponent.class) .describedAs("frontend routing map") .isEqualToGolden(FrontendRequestComponentTest.class, "frontend_routing.txt"); } @Test - public void testRoutingService() { + void testRoutingService() { assertThat( RouterDisplayHelper.extractHumanReadableRoutesWithWrongService( FrontendRequestComponent.class, Action.Service.DEFAULT)) 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 25bcac1c9..6d2b72cd5 100644 --- a/core/src/test/java/google/registry/module/frontend/FrontendServletTest.java +++ b/core/src/test/java/google/registry/module/frontend/FrontendServletTest.java @@ -21,24 +21,21 @@ import static org.mockito.Mockito.when; import google.registry.testing.AppEngineRule; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -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 FrontendServlet}. */ -@RunWith(JUnit4.class) -public class FrontendServletTest { +class FrontendServletTest { - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().withLocalModules().build(); private final HttpServletRequest req = mock(HttpServletRequest.class); private final HttpServletResponse rsp = mock(HttpServletResponse.class); @Test - public void testService_unknownPath_returnNotFound() throws Exception { + void testService_unknownPath_returnNotFound() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getRequestURI()).thenReturn("/lol"); new FrontendServlet().service(req, rsp); diff --git a/core/src/test/java/google/registry/module/pubapi/PubApiRequestComponentTest.java b/core/src/test/java/google/registry/module/pubapi/PubApiRequestComponentTest.java index 82de15828..9e5b6ef86 100644 --- a/core/src/test/java/google/registry/module/pubapi/PubApiRequestComponentTest.java +++ b/core/src/test/java/google/registry/module/pubapi/PubApiRequestComponentTest.java @@ -19,23 +19,20 @@ import static com.google.common.truth.Truth.assertThat; import google.registry.request.Action; import google.registry.request.RouterDisplayHelper; import google.registry.testing.GoldenFileTestHelper; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link PubApiRequestComponent}. */ -@RunWith(JUnit4.class) -public class PubApiRequestComponentTest { +class PubApiRequestComponentTest { @Test - public void testRoutingMap() { + void testRoutingMap() { GoldenFileTestHelper.assertThatRoutesFromComponent(PubApiRequestComponent.class) .describedAs("pubapi routing map") .isEqualToGolden(PubApiRequestComponentTest.class, "pubapi_routing.txt"); } @Test - public void testRoutingService() { + void testRoutingService() { assertThat( RouterDisplayHelper.extractHumanReadableRoutesWithWrongService( PubApiRequestComponent.class, Action.Service.PUBAPI)) 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 eea1675cb..5d013601e 100644 --- a/core/src/test/java/google/registry/module/pubapi/PubApiServletTest.java +++ b/core/src/test/java/google/registry/module/pubapi/PubApiServletTest.java @@ -21,24 +21,21 @@ import static org.mockito.Mockito.when; import google.registry.testing.AppEngineRule; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -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 PubApiServlet}. */ -@RunWith(JUnit4.class) -public class PubApiServletTest { +class PubApiServletTest { - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().withLocalModules().build(); private final HttpServletRequest req = mock(HttpServletRequest.class); private final HttpServletResponse rsp = mock(HttpServletResponse.class); @Test - public void testService_unknownPath_returnNotFound() throws Exception { + void testService_unknownPath_returnNotFound() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getRequestURI()).thenReturn("/lol"); new PubApiServlet().service(req, rsp); diff --git a/core/src/test/java/google/registry/module/tools/ToolsRequestComponentTest.java b/core/src/test/java/google/registry/module/tools/ToolsRequestComponentTest.java index 938921fb9..554bf4373 100644 --- a/core/src/test/java/google/registry/module/tools/ToolsRequestComponentTest.java +++ b/core/src/test/java/google/registry/module/tools/ToolsRequestComponentTest.java @@ -19,23 +19,20 @@ import static com.google.common.truth.Truth.assertThat; import google.registry.request.Action; import google.registry.request.RouterDisplayHelper; import google.registry.testing.GoldenFileTestHelper; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link ToolsRequestComponent}. */ -@RunWith(JUnit4.class) -public class ToolsRequestComponentTest { +class ToolsRequestComponentTest { @Test - public void testRoutingMap() { + void testRoutingMap() { GoldenFileTestHelper.assertThatRoutesFromComponent(ToolsRequestComponent.class) .describedAs("tools routing map") .isEqualToGolden(ToolsRequestComponentTest.class, "tools_routing.txt"); } @Test - public void testRoutingService() { + void testRoutingService() { assertThat( RouterDisplayHelper.extractHumanReadableRoutesWithWrongService( ToolsRequestComponent.class, Action.Service.TOOLS)) diff --git a/core/src/test/java/google/registry/module/tools/ToolsServletTest.java b/core/src/test/java/google/registry/module/tools/ToolsServletTest.java index 33cbed819..865f473b5 100644 --- a/core/src/test/java/google/registry/module/tools/ToolsServletTest.java +++ b/core/src/test/java/google/registry/module/tools/ToolsServletTest.java @@ -20,19 +20,16 @@ import static org.mockito.Mockito.when; 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 ToolsServlet}. */ -@RunWith(JUnit4.class) -public class ToolsServletTest { +class ToolsServletTest { private final HttpServletRequest req = mock(HttpServletRequest.class); private final HttpServletResponse rsp = mock(HttpServletResponse.class); @Test - public void testService_unknownPath_returnsNotFound() throws Exception { + void testService_unknownPath_returnsNotFound() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getRequestURI()).thenReturn("/lol"); new ToolsServlet().service(req, rsp); diff --git a/core/src/test/java/google/registry/monitoring/whitebox/CheckApiMetricTest.java b/core/src/test/java/google/registry/monitoring/whitebox/CheckApiMetricTest.java index 0a1793f50..19d12028a 100644 --- a/core/src/test/java/google/registry/monitoring/whitebox/CheckApiMetricTest.java +++ b/core/src/test/java/google/registry/monitoring/whitebox/CheckApiMetricTest.java @@ -19,26 +19,23 @@ import static com.google.common.truth.Truth.assertThat; import google.registry.monitoring.whitebox.CheckApiMetric.Status; import google.registry.testing.FakeClock; import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** Unit tests for {@link CheckApiMetric}. */ -@RunWith(JUnit4.class) -public class CheckApiMetricTest { +class CheckApiMetricTest { private static final DateTime START_TIME = DateTime.parse("2000-01-01T00:00:00.0Z"); private final FakeClock clock = new FakeClock(START_TIME); private CheckApiMetric.Builder metricBuilder; - @Before - public void setup() { + @BeforeEach + void beforeEach() { metricBuilder = CheckApiMetric.builder(clock); } @Test - public void testSuccess_timestampsAreSet() { + void testSuccess_timestampsAreSet() { clock.advanceOneMilli(); CheckApiMetric metric = metricBuilder.status(Status.SUCCESS).build(); 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 a03829d07..960218103 100644 --- a/core/src/test/java/google/registry/monitoring/whitebox/EppMetricTest.java +++ b/core/src/test/java/google/registry/monitoring/whitebox/EppMetricTest.java @@ -21,20 +21,17 @@ import static google.registry.testing.DatastoreHelper.createTlds; import com.google.common.collect.ImmutableSet; import google.registry.testing.AppEngineRule; import google.registry.testing.FakeClock; -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 EppMetric}. */ -@RunWith(JUnit4.class) -public class EppMetricTest { +class EppMetricTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @Test - public void test_invalidTld_isRecordedAsInvalid() { + void test_invalidTld_isRecordedAsInvalid() { EppMetric metric = EppMetric.builderForRequest(new FakeClock()) .setTlds(ImmutableSet.of("notarealtld")) @@ -43,7 +40,7 @@ public class EppMetricTest { } @Test - public void test_validTld_isRecorded() { + void test_validTld_isRecorded() { createTld("example"); EppMetric metric = EppMetric.builderForRequest(new FakeClock()).setTlds(ImmutableSet.of("example")).build(); @@ -51,7 +48,7 @@ public class EppMetricTest { } @Test - public void test_multipleTlds_areRecordedAsVarious() { + void test_multipleTlds_areRecordedAsVarious() { createTlds("foo", "bar"); EppMetric metric = EppMetric.builderForRequest(new FakeClock()) @@ -61,7 +58,7 @@ public class EppMetricTest { } @Test - public void test_zeroTlds_areRecordedAsAbsent() { + void test_zeroTlds_areRecordedAsAbsent() { EppMetric metric = EppMetric.builderForRequest(new FakeClock()).setTlds(ImmutableSet.of()).build(); assertThat(metric.getTld()).isEmpty(); diff --git a/core/src/test/java/google/registry/persistence/HibernateSchemaExporterTest.java b/core/src/test/java/google/registry/persistence/HibernateSchemaExporterTest.java index 5893a14d4..c50f248d9 100644 --- a/core/src/test/java/google/registry/persistence/HibernateSchemaExporterTest.java +++ b/core/src/test/java/google/registry/persistence/HibernateSchemaExporterTest.java @@ -21,40 +21,42 @@ import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; +import java.nio.file.Path; import javax.persistence.Entity; import javax.persistence.Id; import org.joda.money.CurrencyUnit; -import org.junit.BeforeClass; -import org.junit.ClassRule; -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.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; /** Unit tests for {@link HibernateSchemaExporter}. */ -@RunWith(JUnit4.class) -public class HibernateSchemaExporterTest { - @ClassRule - public static final PostgreSQLContainer database = +@Testcontainers +class HibernateSchemaExporterTest { + + @Container + private static final PostgreSQLContainer database = new PostgreSQLContainer(NomulusPostgreSql.getDockerTag()); private static HibernateSchemaExporter exporter; - @Rule public final TemporaryFolder tempFolder = new TemporaryFolder(); + @SuppressWarnings("WeakerAccess") + @TempDir + Path tmpDir; - @BeforeClass - public static void init() { + @BeforeAll + static void beforeAll() { exporter = HibernateSchemaExporter.create( database.getJdbcUrl(), database.getUsername(), database.getPassword()); } @Test - public void export_succeeds() throws IOException { - File sqlFile = tempFolder.newFile(); - exporter.export(ImmutableList.of(TestEntity.class), sqlFile); + void export_succeeds() throws IOException { + File sqlFile = Files.createFile(tmpDir.resolve("tempfile.dat")).toFile(); + exporter.export(ImmutableList.of(HibernateSchemaTestEntity.class), sqlFile); assertThat(Files.readAllBytes(sqlFile.toPath())) .isEqualTo( ("\n" @@ -67,7 +69,7 @@ public class HibernateSchemaExporterTest { } @Entity(name = "TestEntity") // Override entity name to avoid the nested class reference. - private static class TestEntity { + private static class HibernateSchemaTestEntity { @Id String name; CurrencyUnit cu; diff --git a/core/src/test/java/google/registry/persistence/PersistenceXmlTest.java b/core/src/test/java/google/registry/persistence/PersistenceXmlTest.java index b700729e4..2d48a914a 100644 --- a/core/src/test/java/google/registry/persistence/PersistenceXmlTest.java +++ b/core/src/test/java/google/registry/persistence/PersistenceXmlTest.java @@ -16,26 +16,20 @@ package google.registry.persistence; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.collect.ImmutableSet.toImmutableSet; +import static com.google.common.truth.Truth.assertWithMessage; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; -import com.google.common.truth.Expect; import java.util.Collections; import javax.persistence.AttributeConverter; import javax.persistence.Entity; -import org.junit.ClassRule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests to verify persistence.xml is valid. */ -@RunWith(JUnit4.class) -public class PersistenceXmlTest { - - @ClassRule public static final Expect expect = Expect.create(); +class PersistenceXmlTest { @Test - public void verifyClassTags_containOnlyRequiredClasses() { + void verifyClassTags_containOnlyRequiredClasses() { ImmutableList managedClassed = PersistenceXmlUtility.getManagedClasses(); ImmutableList unnecessaryClasses = @@ -51,13 +45,11 @@ public class PersistenceXmlTest { .filter(clazz -> Collections.frequency(managedClassed, clazz) > 1) .collect(toImmutableSet()); - expect - .withMessage("Found duplicate tags defined in persistence.xml.") + assertWithMessage("Found duplicate tags defined in persistence.xml.") .that(duplicateClasses) .isEmpty(); - expect - .withMessage( + assertWithMessage( "Found unnecessary tags defined in persistence.xml. Only entity class and" + " implementation of AttributeConverter are required to be added in" + " persistence.xml.") diff --git a/core/src/test/java/google/registry/persistence/VKeyTest.java b/core/src/test/java/google/registry/persistence/VKeyTest.java index 713b5b3ff..1b8ef8e09 100644 --- a/core/src/test/java/google/registry/persistence/VKeyTest.java +++ b/core/src/test/java/google/registry/persistence/VKeyTest.java @@ -18,25 +18,21 @@ import static com.google.common.truth.Truth.assertThat; import com.googlecode.objectify.Key; import google.registry.testing.AppEngineRule; import google.registry.testing.TestObject; -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; -@RunWith(JUnit4.class) -public class VKeyTest { +/** Unit tests for {@link VKey}. */ +class VKeyTest { - @Rule - public final AppEngineRule appEngineRule = + @RegisterExtension + final AppEngineRule appEngineRule = AppEngineRule.builder() .withDatastoreAndCloudSql() .withOfyTestEntities(TestObject.class) .build(); - public VKeyTest() {} - @Test - public void testOptionalAccessors() { + void testOptionalAccessors() { VKey key = VKey.create(TestObject.class, "foo", Key.create(TestObject.create("foo"))); assertThat(key.maybeGetSqlKey().isPresent()).isTrue(); diff --git a/core/src/test/java/google/registry/persistence/transaction/DummyJpaTransactionManagerTest.java b/core/src/test/java/google/registry/persistence/transaction/DummyJpaTransactionManagerTest.java index c0831cd04..c0c9d3232 100644 --- a/core/src/test/java/google/registry/persistence/transaction/DummyJpaTransactionManagerTest.java +++ b/core/src/test/java/google/registry/persistence/transaction/DummyJpaTransactionManagerTest.java @@ -17,16 +17,13 @@ package google.registry.persistence.transaction; import static google.registry.persistence.transaction.TransactionManagerFactory.jpaTm; import static org.junit.Assert.assertThrows; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** JUnit test for {@link DummyJpaTransactionManager} */ -@RunWith(JUnit4.class) -public class DummyJpaTransactionManagerTest { +class DummyJpaTransactionManagerTest { @Test - public void throwsExceptionWhenAnyMethodIsInvoked() { + void throwsExceptionWhenAnyMethodIsInvoked() { assertThrows(UnsupportedOperationException.class, () -> jpaTm().transact(() -> null)); assertThrows(UnsupportedOperationException.class, () -> jpaTm().getTransactionTime()); } diff --git a/core/src/test/java/google/registry/reporting/ReportingModuleTest.java b/core/src/test/java/google/registry/reporting/ReportingModuleTest.java index 34ab0587c..d1050f923 100644 --- a/core/src/test/java/google/registry/reporting/ReportingModuleTest.java +++ b/core/src/test/java/google/registry/reporting/ReportingModuleTest.java @@ -28,38 +28,35 @@ import javax.servlet.http.HttpServletRequest; import org.joda.time.DateTime; import org.joda.time.LocalDate; import org.joda.time.YearMonth; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** Unit tests for {@link ReportingModule}. */ -@RunWith(JUnit4.class) -public class ReportingModuleTest { +class ReportingModuleTest { private HttpServletRequest req = mock(HttpServletRequest.class); private Clock clock; - @Before - public void setUp() { + @BeforeEach + void beforeEach() { clock = new FakeClock(DateTime.parse("2017-07-01TZ")); } @Test - public void testEmptyYearMonthParameter_returnsEmptyYearMonthOptional() { + void testEmptyYearMonthParameter_returnsEmptyYearMonthOptional() { when(req.getParameter("yearMonth")).thenReturn(""); Truth8.assertThat(ReportingModule.provideYearMonthOptional(req)).isEmpty(); } @Test - public void testValidYearMonthParameter_returnsThatMonth() { + void testValidYearMonthParameter_returnsThatMonth() { when(req.getParameter("yearMonth")).thenReturn("2017-05"); Truth8.assertThat(ReportingModule.provideYearMonthOptional(req)) .hasValue(new YearMonth(2017, 5)); } @Test - public void testInvalidYearMonthParameter_throwsException() { + void testInvalidYearMonthParameter_throwsException() { when(req.getParameter("yearMonth")).thenReturn("201705"); BadRequestException thrown = assertThrows( @@ -70,13 +67,13 @@ public class ReportingModuleTest { } @Test - public void testEmptyYearMonth_returnsLastMonth() { + void testEmptyYearMonth_returnsLastMonth() { assertThat(ReportingModule.provideYearMonth(Optional.empty(), new LocalDate(2017, 1, 6))) .isEqualTo(new YearMonth(2016, 12)); } @Test - public void testGivenYearMonth_returnsThatMonth() { + void testGivenYearMonth_returnsThatMonth() { assertThat( ReportingModule.provideYearMonth( Optional.of(new YearMonth(2017, 5)), new LocalDate(2017, 7, 6))) @@ -84,20 +81,20 @@ public class ReportingModuleTest { } @Test - public void testEmptyDateParameter_returnsEmptyDateOptional() { + void testEmptyDateParameter_returnsEmptyDateOptional() { when(req.getParameter("date")).thenReturn(""); Truth8.assertThat(ReportingModule.provideDateOptional(req)).isEmpty(); } @Test - public void testValidDateParameter_returnsThatDate() { + void testValidDateParameter_returnsThatDate() { when(req.getParameter("date")).thenReturn("2017-05-13"); Truth8.assertThat(ReportingModule.provideDateOptional(req)) .hasValue(new LocalDate(2017, 5, 13)); } @Test - public void testInvalidDateParameter_throwsException() { + void testInvalidDateParameter_throwsException() { when(req.getParameter("date")).thenReturn("20170513"); BadRequestException thrown = assertThrows(BadRequestException.class, () -> ReportingModule.provideDateOptional(req)); @@ -107,13 +104,13 @@ public class ReportingModuleTest { } @Test - public void testEmptyDate_returnsToday() { + void testEmptyDate_returnsToday() { when(req.getParameter("date")).thenReturn(null); assertThat(ReportingModule.provideDate(req, clock)).isEqualTo(new LocalDate(2017, 7, 1)); } @Test - public void testGivenDate_returnsThatDate() { + void testGivenDate_returnsThatDate() { when(req.getParameter("date")).thenReturn("2017-07-02"); assertThat(ReportingModule.provideDate(req, clock)).isEqualTo(new LocalDate(2017, 7, 2)); } diff --git a/core/src/test/java/google/registry/reporting/billing/BillingEmailUtilsTest.java b/core/src/test/java/google/registry/reporting/billing/BillingEmailUtilsTest.java index 67bd03c8c..25f97699a 100644 --- a/core/src/test/java/google/registry/reporting/billing/BillingEmailUtilsTest.java +++ b/core/src/test/java/google/registry/reporting/billing/BillingEmailUtilsTest.java @@ -35,23 +35,20 @@ import java.nio.charset.StandardCharsets; import javax.mail.MessagingException; import javax.mail.internet.InternetAddress; import org.joda.time.YearMonth; -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.ArgumentCaptor; /** Unit tests for {@link google.registry.reporting.billing.BillingEmailUtils}. */ -@RunWith(JUnit4.class) -public class BillingEmailUtilsTest { +class BillingEmailUtilsTest { private SendEmailService emailService; private BillingEmailUtils emailUtils; private GcsUtils gcsUtils; private ArgumentCaptor contentCaptor; - @Before - public void setUp() throws Exception { + @BeforeEach + void beforeEach() throws Exception { emailService = mock(SendEmailService.class); gcsUtils = mock(GcsUtils.class); when(gcsUtils.openInputStream(new GcsFilename("test-bucket", "results/REG-INV-2017-10.csv"))) @@ -74,7 +71,7 @@ public class BillingEmailUtilsTest { } @Test - public void testSuccess_emailOverallInvoice() throws MessagingException { + void testSuccess_emailOverallInvoice() throws MessagingException { emailUtils.emailOverallInvoice(); verify(emailService).sendEmail(contentCaptor.capture()); @@ -98,7 +95,7 @@ public class BillingEmailUtilsTest { } @Test - public void testFailure_emailsAlert() throws MessagingException { + void testFailure_emailsAlert() throws MessagingException { doThrow(new RuntimeException(new MessagingException("expected"))) .doNothing() .when(emailService) @@ -116,7 +113,7 @@ public class BillingEmailUtilsTest { } @Test - public void testSuccess_sendAlertEmail() throws MessagingException { + void testSuccess_sendAlertEmail() throws MessagingException { emailUtils.sendAlertEmail("Alert!"); verify(emailService).sendEmail(contentCaptor.capture()); validateAlertMessage(contentCaptor.getValue(), "Alert!"); 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 9f4e6e8a1..9c2d3fa1c 100644 --- a/core/src/test/java/google/registry/reporting/billing/CopyDetailReportsActionTest.java +++ b/core/src/test/java/google/registry/reporting/billing/CopyDetailReportsActionTest.java @@ -41,18 +41,15 @@ import google.registry.testing.FakeResponse; import google.registry.testing.FakeSleeper; import google.registry.util.Retrier; import java.io.IOException; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link google.registry.reporting.billing.CopyDetailReportsAction}. */ -@RunWith(JUnit4.class) -public class CopyDetailReportsActionTest { +class CopyDetailReportsActionTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); private final GcsService gcsService = GcsServiceFactory.createGcsService(); private final GcsUtils gcsUtils = new GcsUtils(gcsService, 1024); @@ -62,8 +59,8 @@ public class CopyDetailReportsActionTest { private BillingEmailUtils emailUtils; private CopyDetailReportsAction action; - @Before - public void setUp() { + @BeforeEach + void beforeEach() { persistResource(loadRegistrar("TheRegistrar").asBuilder().setDriveFolderId("0B-12345").build()); persistResource(loadRegistrar("NewRegistrar").asBuilder().setDriveFolderId("0B-54321").build()); response = new FakeResponse(); @@ -81,7 +78,7 @@ public class CopyDetailReportsActionTest { } @Test - public void testSuccess() throws IOException { + void testSuccess() throws IOException { writeGcsFile( gcsService, new GcsFilename("test-bucket", "results/invoice_details_2017-10_TheRegistrar_test.csv"), @@ -112,7 +109,7 @@ public class CopyDetailReportsActionTest { } @Test - public void testSuccess_nonDetailReportFiles_notSent() throws IOException{ + void testSuccess_nonDetailReportFiles_notSent() throws IOException { writeGcsFile( gcsService, new GcsFilename("test-bucket", "results/invoice_details_2017-10_TheRegistrar_hello.csv"), @@ -137,7 +134,7 @@ public class CopyDetailReportsActionTest { } @Test - public void testSuccess_transientIOException_retries() throws IOException { + void testSuccess_transientIOException_retries() throws IOException { writeGcsFile( gcsService, new GcsFilename("test-bucket", "results/invoice_details_2017-10_TheRegistrar_hello.csv"), @@ -159,7 +156,7 @@ public class CopyDetailReportsActionTest { } @Test - public void testFail_tooManyFailures_sendsAlertEmail_continues() throws IOException { + void testFail_tooManyFailures_sendsAlertEmail_continues() throws IOException { writeGcsFile( gcsService, new GcsFilename("test-bucket", "results/invoice_details_2017-10_TheRegistrar_hello.csv"), @@ -202,7 +199,7 @@ public class CopyDetailReportsActionTest { } @Test - public void testFail_registrarDoesntExist_doesntCopy() throws IOException { + void testFail_registrarDoesntExist_doesntCopy() throws IOException { writeGcsFile( gcsService, new GcsFilename("test-bucket", "results/invoice_details_2017-10_notExistent_hello.csv"), @@ -212,12 +209,11 @@ public class CopyDetailReportsActionTest { } @Test - public void testFail_noRegistrarFolderId_doesntCopy() throws IOException { + void testFail_noRegistrarFolderId_doesntCopy() throws IOException { persistResource(loadRegistrar("TheRegistrar").asBuilder().setDriveFolderId(null).build()); writeGcsFile( gcsService, - new GcsFilename( - "test-bucket", "results/invoice_details_2017-10_TheRegistrar_hello.csv"), + new GcsFilename("test-bucket", "results/invoice_details_2017-10_TheRegistrar_hello.csv"), "hola,mundo\n3,4".getBytes(UTF_8)); action.run(); verifyNoInteractions(driveConnection); 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 d63330df9..93c4a1802 100644 --- a/core/src/test/java/google/registry/reporting/billing/GenerateInvoicesActionTest.java +++ b/core/src/test/java/google/registry/reporting/billing/GenerateInvoicesActionTest.java @@ -36,18 +36,15 @@ import google.registry.testing.FakeResponse; import google.registry.testing.TaskQueueHelper.TaskMatcher; import java.io.IOException; import org.joda.time.YearMonth; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link google.registry.reporting.billing.GenerateInvoicesAction}. */ -@RunWith(JUnit4.class) -public class GenerateInvoicesActionTest { +class GenerateInvoicesActionTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withTaskQueue().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withTaskQueue().build(); private Dataflow dataflow; private Projects projects; @@ -55,10 +52,10 @@ public class GenerateInvoicesActionTest { private Launch launch; private FakeResponse response; private BillingEmailUtils emailUtils; - GenerateInvoicesAction action; + private GenerateInvoicesAction action; - @Before - public void setUp() throws IOException { + @BeforeEach + void beforeEach() throws IOException { dataflow = mock(Dataflow.class); projects = mock(Projects.class); templates = mock(Templates.class); @@ -77,7 +74,7 @@ public class GenerateInvoicesActionTest { } @Test - public void testLaunchTemplateJob_withPublish() throws Exception { + void testLaunchTemplateJob_withPublish() throws Exception { action = new GenerateInvoicesAction( "test-project", @@ -113,7 +110,7 @@ public class GenerateInvoicesActionTest { } @Test - public void testLaunchTemplateJob_withoutPublish() throws Exception { + void testLaunchTemplateJob_withoutPublish() throws Exception { action = new GenerateInvoicesAction( "test-project", @@ -142,7 +139,7 @@ public class GenerateInvoicesActionTest { } @Test - public void testCaughtIOException() throws IOException { + void testCaughtIOException() throws IOException { when(launch.execute()).thenThrow(new IOException("expected")); action = new GenerateInvoicesAction( 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 c93feb570..b5b4c8886 100644 --- a/core/src/test/java/google/registry/reporting/billing/PublishInvoicesActionTest.java +++ b/core/src/test/java/google/registry/reporting/billing/PublishInvoicesActionTest.java @@ -35,15 +35,12 @@ import google.registry.testing.FakeResponse; import google.registry.testing.TaskQueueHelper.TaskMatcher; import java.io.IOException; import org.joda.time.YearMonth; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link PublishInvoicesAction}. */ -@RunWith(JUnit4.class) -public class PublishInvoicesActionTest { +class PublishInvoicesActionTest { private Get get; private BillingEmailUtils emailUtils; @@ -52,11 +49,11 @@ public class PublishInvoicesActionTest { private FakeResponse response; private PublishInvoicesAction uploadAction; - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withTaskQueue().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withTaskQueue().build(); - @Before - public void setUp() throws IOException { + @BeforeEach + void beforeEach() throws IOException { Dataflow dataflow = mock(Dataflow.class); Projects projects = mock(Projects.class); Jobs jobs = mock(Jobs.class); @@ -74,7 +71,7 @@ public class PublishInvoicesActionTest { } @Test - public void testJobDone_enqueuesCopyAction_emailsResults() { + void testJobDone_enqueuesCopyAction_emailsResults() { expectedJob.setCurrentState("JOB_STATE_DONE"); uploadAction.run(); assertThat(response.getStatus()).isEqualTo(SC_OK); @@ -88,7 +85,7 @@ public class PublishInvoicesActionTest { } @Test - public void testJobFailed_returnsNonRetriableResponse() { + void testJobFailed_returnsNonRetriableResponse() { expectedJob.setCurrentState("JOB_STATE_FAILED"); uploadAction.run(); assertThat(response.getStatus()).isEqualTo(SC_NO_CONTENT); @@ -96,14 +93,14 @@ public class PublishInvoicesActionTest { } @Test - public void testJobIndeterminate_returnsRetriableResponse() { + void testJobIndeterminate_returnsRetriableResponse() { expectedJob.setCurrentState("JOB_STATE_RUNNING"); uploadAction.run(); assertThat(response.getStatus()).isEqualTo(SC_NOT_MODIFIED); } @Test - public void testIOException_returnsFailureMessage() throws IOException { + void testIOException_returnsFailureMessage() throws IOException { when(get.execute()).thenThrow(new IOException("expected")); uploadAction.run(); assertThat(response.getStatus()).isEqualTo(SC_INTERNAL_SERVER_ERROR); diff --git a/core/src/test/java/google/registry/reporting/icann/ActivityReportingQueryBuilderTest.java b/core/src/test/java/google/registry/reporting/icann/ActivityReportingQueryBuilderTest.java index 6469da854..679174291 100644 --- a/core/src/test/java/google/registry/reporting/icann/ActivityReportingQueryBuilderTest.java +++ b/core/src/test/java/google/registry/reporting/icann/ActivityReportingQueryBuilderTest.java @@ -19,13 +19,10 @@ import static com.google.common.truth.Truth.assertThat; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.joda.time.YearMonth; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link ActivityReportingQueryBuilder}. */ -@RunWith(JUnit4.class) -public class ActivityReportingQueryBuilderTest { +class ActivityReportingQueryBuilderTest { private final YearMonth yearMonth = new YearMonth(2017, 9); @@ -39,7 +36,7 @@ public class ActivityReportingQueryBuilderTest { } @Test - public void testAggregateQueryMatch() { + void testAggregateQueryMatch() { ActivityReportingQueryBuilder queryBuilder = getQueryBuilder(); assertThat(queryBuilder.getReportQuery(yearMonth)) .isEqualTo( @@ -48,7 +45,7 @@ public class ActivityReportingQueryBuilderTest { } @Test - public void testIntermediaryQueryMatch() { + void testIntermediaryQueryMatch() { ImmutableList expectedQueryNames = ImmutableList.of( ActivityReportingQueryBuilder.REGISTRAR_OPERATING_STATUS, 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 b9db61ec7..f3ff338ce 100644 --- a/core/src/test/java/google/registry/reporting/icann/IcannHttpReporterTest.java +++ b/core/src/test/java/google/registry/reporting/icann/IcannHttpReporterTest.java @@ -33,17 +33,12 @@ import google.registry.testing.AppEngineRule; import java.io.IOException; import java.util.List; import java.util.Map; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; -/** - * Unit tests for {@link IcannHttpReporter}. - */ -@RunWith(JUnit4.class) -public class IcannHttpReporterTest { +/** Unit tests for {@link IcannHttpReporter}. */ +class IcannHttpReporterTest { private static final ByteSource IIRDEA_GOOD_XML = ReportingTestData.loadBytes("iirdea_good.xml"); private static final ByteSource IIRDEA_BAD_XML = ReportingTestData.loadBytes("iirdea_bad.xml"); @@ -51,32 +46,32 @@ public class IcannHttpReporterTest { private MockLowLevelHttpRequest mockRequest; - @Rule - public AppEngineRule appEngineRule = - new AppEngineRule.Builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + AppEngineRule appEngineRule = new AppEngineRule.Builder().withDatastoreAndCloudSql().build(); - private MockHttpTransport createMockTransport (final ByteSource iirdeaResponse) { + private MockHttpTransport createMockTransport(final ByteSource iirdeaResponse) { return new MockHttpTransport() { @Override public LowLevelHttpRequest buildRequest(String method, String url) { - mockRequest = new MockLowLevelHttpRequest() { - @Override - public LowLevelHttpResponse execute() throws IOException { - MockLowLevelHttpResponse response = new MockLowLevelHttpResponse(); - response.setStatusCode(200); - response.setContentType(PLAIN_TEXT_UTF_8.toString()); - response.setContent(iirdeaResponse.read()); - return response; - } - }; + mockRequest = + new MockLowLevelHttpRequest() { + @Override + public LowLevelHttpResponse execute() throws IOException { + MockLowLevelHttpResponse response = new MockLowLevelHttpResponse(); + response.setStatusCode(200); + response.setContentType(PLAIN_TEXT_UTF_8.toString()); + response.setContent(iirdeaResponse.read()); + return response; + } + }; mockRequest.setUrl(url); return mockRequest; } }; } - @Before - public void setUp() { + @BeforeEach + void beforeEach() { createTld("test"); createTld("xn--abc123"); } @@ -91,7 +86,7 @@ public class IcannHttpReporterTest { } @Test - public void testSuccess() throws Exception { + void testSuccess() throws Exception { IcannHttpReporter reporter = createReporter(); reporter.send(FAKE_PAYLOAD, "test-transactions-201706.csv"); @@ -105,7 +100,7 @@ public class IcannHttpReporterTest { } @Test - public void testSuccess_internationalTld() throws Exception { + void testSuccess_internationalTld() throws Exception { IcannHttpReporter reporter = createReporter(); reporter.send(FAKE_PAYLOAD, "xn--abc123-transactions-201706.csv"); @@ -119,14 +114,14 @@ public class IcannHttpReporterTest { } @Test - public void testFail_BadIirdeaResponse() throws Exception { + void testFail_BadIirdeaResponse() throws Exception { IcannHttpReporter reporter = createReporter(); reporter.httpTransport = createMockTransport(IIRDEA_BAD_XML); assertThat(reporter.send(FAKE_PAYLOAD, "test-transactions-201706.csv")).isFalse(); } @Test - public void testFail_invalidFilename_nonSixDigitYearMonth() { + void testFail_invalidFilename_nonSixDigitYearMonth() { IcannHttpReporter reporter = createReporter(); IllegalArgumentException thrown = assertThrows( @@ -140,7 +135,7 @@ public class IcannHttpReporterTest { } @Test - public void testFail_invalidFilename_notActivityOrTransactions() { + void testFail_invalidFilename_notActivityOrTransactions() { IcannHttpReporter reporter = createReporter(); IllegalArgumentException thrown = assertThrows( @@ -153,7 +148,7 @@ public class IcannHttpReporterTest { } @Test - public void testFail_invalidFilename_invalidTldName() { + void testFail_invalidFilename_invalidTldName() { IcannHttpReporter reporter = createReporter(); IllegalArgumentException thrown = assertThrows( @@ -167,7 +162,7 @@ public class IcannHttpReporterTest { } @Test - public void testFail_invalidFilename_tldDoesntExist() { + void testFail_invalidFilename_tldDoesntExist() { IcannHttpReporter reporter = createReporter(); IllegalArgumentException thrown = assertThrows( diff --git a/core/src/test/java/google/registry/reporting/icann/IcannReportingModuleTest.java b/core/src/test/java/google/registry/reporting/icann/IcannReportingModuleTest.java index c8dee5a6a..2d535bc61 100644 --- a/core/src/test/java/google/registry/reporting/icann/IcannReportingModuleTest.java +++ b/core/src/test/java/google/registry/reporting/icann/IcannReportingModuleTest.java @@ -19,16 +19,13 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import javax.servlet.http.HttpServletRequest; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link google.registry.reporting.icann.IcannReportingModule}. */ -@RunWith(JUnit4.class) -public class IcannReportingModuleTest { +class IcannReportingModuleTest { @Test - public void testProvideReportTypes() { + void testProvideReportTypes() { HttpServletRequest req = mock(HttpServletRequest.class); when(req.getParameter("reportTypes")).thenReturn(null); 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 2a71f91e6..3870c1fef 100644 --- a/core/src/test/java/google/registry/reporting/icann/IcannReportingStagerTest.java +++ b/core/src/test/java/google/registry/reporting/icann/IcannReportingStagerTest.java @@ -38,23 +38,20 @@ import google.registry.testing.FakeResponse; import java.util.concurrent.Executor; import java.util.concurrent.TimeUnit; import org.joda.time.YearMonth; -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 google.registry.reporting.icann.IcannReportingStager}. */ -@RunWith(JUnit4.class) -public class IcannReportingStagerTest { +class IcannReportingStagerTest { - BigqueryConnection bigquery = mock(BigqueryConnection.class); + private BigqueryConnection bigquery = mock(BigqueryConnection.class); FakeResponse response = new FakeResponse(); - GcsService gcsService = GcsServiceFactory.createGcsService(); - YearMonth yearMonth = new YearMonth(2017, 6); - String subdir = "icann/monthly/2017-06"; + private GcsService gcsService = GcsServiceFactory.createGcsService(); + private YearMonth yearMonth = new YearMonth(2017, 6); + private String subdir = "icann/monthly/2017-06"; - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().withLocalModules().build(); private IcannReportingStager createStager() { @@ -74,16 +71,17 @@ public class IcannReportingStagerTest { private void setUpBigquery() { when(bigquery.query(any(String.class), any(DestinationTable.class))).thenReturn(fakeFuture()); - DestinationTable.Builder tableBuilder = new DestinationTable.Builder() - .datasetId("testdataset") - .type(TableType.TABLE) - .name("tablename") - .overwrite(true); + DestinationTable.Builder tableBuilder = + new DestinationTable.Builder() + .datasetId("testdataset") + .type(TableType.TABLE) + .name("tablename") + .overwrite(true); when(bigquery.buildDestinationTable(any(String.class))).thenReturn(tableBuilder); } @Test - public void testRunSuccess_activityReport() throws Exception { + void testRunSuccess_activityReport() throws Exception { setUpBigquery(); ImmutableTable activityReportTable = new ImmutableTable.Builder() @@ -113,7 +111,7 @@ public class IcannReportingStagerTest { } @Test - public void testRunSuccess_transactionsReport() throws Exception { + void testRunSuccess_transactionsReport() throws Exception { setUpBigquery(); /* The fake table result looks like: @@ -157,7 +155,7 @@ public class IcannReportingStagerTest { } @Test - public void testRunSuccess_createAndUploadManifest() throws Exception { + void testRunSuccess_createAndUploadManifest() throws Exception { IcannReportingStager stager = createStager(); ImmutableList filenames = ImmutableList.of("fooTld-transactions-201706.csv", "barTld-activity-201706.csv"); @@ -204,4 +202,3 @@ public class IcannReportingStagerTest { }; } } - 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 8b464fc97..3d96225fe 100644 --- a/core/src/test/java/google/registry/reporting/icann/IcannReportingStagingActionTest.java +++ b/core/src/test/java/google/registry/reporting/icann/IcannReportingStagingActionTest.java @@ -39,28 +39,25 @@ import google.registry.util.SendEmailService; import java.util.Optional; import javax.mail.internet.InternetAddress; import org.joda.time.YearMonth; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link google.registry.reporting.icann.IcannReportingStagingAction}. */ -@RunWith(JUnit4.class) -public class IcannReportingStagingActionTest { +class IcannReportingStagingActionTest { - FakeResponse response = new FakeResponse(); - IcannReportingStager stager = mock(IcannReportingStager.class); - YearMonth yearMonth = new YearMonth(2017, 6); - String subdir = "default/dir"; - IcannReportingStagingAction action; + private FakeResponse response = new FakeResponse(); + private IcannReportingStager stager = mock(IcannReportingStager.class); + private YearMonth yearMonth = new YearMonth(2017, 6); + private String subdir = "default/dir"; + private IcannReportingStagingAction action; - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().withLocalModules().withTaskQueue().build(); - @Before - public void setUp() throws Exception { + @BeforeEach + void beforeEach() throws Exception { action = new IcannReportingStagingAction(); action.yearMonth = yearMonth; action.overrideSubdir = Optional.of(subdir); @@ -84,7 +81,7 @@ public class IcannReportingStagingActionTest { } @Test - public void testActivityReportingMode_onlyStagesActivityReports() throws Exception { + void testActivityReportingMode_onlyStagesActivityReports() throws Exception { action.reportTypes = ImmutableSet.of(ReportType.ACTIVITY); action.run(); verify(stager).stageReports(yearMonth, subdir, ReportType.ACTIVITY); @@ -100,7 +97,7 @@ public class IcannReportingStagingActionTest { } @Test - public void testAbsentReportingMode_stagesBothReports() throws Exception { + void testAbsentReportingMode_stagesBothReports() throws Exception { action.run(); verify(stager).stageReports(yearMonth, subdir, ReportType.ACTIVITY); verify(stager).stageReports(yearMonth, subdir, ReportType.TRANSACTIONS); @@ -116,7 +113,7 @@ public class IcannReportingStagingActionTest { } @Test - public void testRetryOnBigqueryException() throws Exception { + void testRetryOnBigqueryException() throws Exception { when(stager.stageReports(yearMonth, subdir, ReportType.TRANSACTIONS)) .thenThrow(new BigqueryJobFailureException("Expected failure", null, null, null)) .thenReturn(ImmutableList.of("c", "d")); @@ -135,7 +132,7 @@ public class IcannReportingStagingActionTest { } @Test - public void testEmailEng_onMoreThanRetriableFailure() throws Exception { + void testEmailEng_onMoreThanRetriableFailure() throws Exception { action.reportTypes = ImmutableSet.of(ReportType.ACTIVITY); when(stager.stageReports(yearMonth, subdir, ReportType.ACTIVITY)) .thenThrow(new BigqueryJobFailureException("Expected failure", null, null, null)); @@ -160,25 +157,22 @@ public class IcannReportingStagingActionTest { } @Test - public void testEmptySubDir_returnsDefaultSubdir() { + void testEmptySubDir_returnsDefaultSubdir() { action.overrideSubdir = Optional.empty(); assertThat(action.getSubdir(new YearMonth(2017, 6))).isEqualTo("icann/monthly/2017-06"); } @Test - public void testGivenSubdir_returnsManualSubdir() { + void testGivenSubdir_returnsManualSubdir() { action.overrideSubdir = Optional.of("manual/dir"); assertThat(action.getSubdir(new YearMonth(2017, 6))).isEqualTo("manual/dir"); } @Test - public void testInvalidSubdir_throwsException() { + void testInvalidSubdir_throwsException() { action.overrideSubdir = Optional.of("/whoops"); BadRequestException thrown = - assertThrows( - BadRequestException.class, - () -> - action.getSubdir(new YearMonth(2017, 6))); + assertThrows(BadRequestException.class, () -> action.getSubdir(new YearMonth(2017, 6))); assertThat(thrown) .hasMessageThat() .contains("subdir must not start or end with a \"/\", got /whoops instead."); 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 4b02a1d46..a8cc85012 100644 --- a/core/src/test/java/google/registry/reporting/icann/IcannReportingUploadActionTest.java +++ b/core/src/test/java/google/registry/reporting/icann/IcannReportingUploadActionTest.java @@ -50,18 +50,15 @@ import java.util.logging.Level; import java.util.logging.Logger; import javax.mail.internet.InternetAddress; import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link google.registry.reporting.icann.IcannReportingUploadAction} */ -@RunWith(JUnit4.class) -public class IcannReportingUploadActionTest { +class IcannReportingUploadActionTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.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); @@ -89,8 +86,8 @@ public class IcannReportingUploadActionTest { return action; } - @Before - public void before() throws Exception { + @BeforeEach + void beforeEach() throws Exception { createTlds("tld", "foo"); writeGcsFile( gcsService, @@ -129,7 +126,7 @@ public class IcannReportingUploadActionTest { } @Test - public void testSuccess() throws Exception { + void testSuccess() throws Exception { IcannReportingUploadAction action = createAction(); action.run(); verify(mockReporter).send(PAYLOAD_SUCCESS, "foo-activity-200606.csv"); @@ -152,7 +149,7 @@ public class IcannReportingUploadActionTest { } @Test - public void testSuccess_january() throws Exception { + void testSuccess_january() throws Exception { clock.setTo(DateTime.parse("2006-01-22T00:30:00Z")); persistResource( Cursor.create( @@ -189,7 +186,7 @@ public class IcannReportingUploadActionTest { } @Test - public void testSuccess_advancesCursor() throws Exception { + void testSuccess_advancesCursor() throws Exception { writeGcsFile( gcsService, new GcsFilename("basin/icann/monthly/2006-06", "tld-activity-200606.csv"), @@ -207,7 +204,7 @@ public class IcannReportingUploadActionTest { } @Test - public void testSuccess_noUploadsNeeded() throws Exception { + void testSuccess_noUploadsNeeded() throws Exception { clock.setTo(DateTime.parse("2006-5-01T00:30:00Z")); IcannReportingUploadAction action = createAction(); action.run(); @@ -223,7 +220,7 @@ public class IcannReportingUploadActionTest { } @Test - public void testSuccess_withRetry() throws Exception { + void testSuccess_withRetry() throws Exception { IcannReportingUploadAction action = createAction(); when(mockReporter.send(PAYLOAD_SUCCESS, "tld-transactions-200606.csv")) .thenThrow(new IOException("Expected exception.")) @@ -248,7 +245,7 @@ public class IcannReportingUploadActionTest { } @Test - public void testFailure_quicklySkipsOverNonRetryableUploadException() throws Exception { + void testFailure_quicklySkipsOverNonRetryableUploadException() throws Exception { runTest_nonRetryableException( new IOException( "A report for that month already exists, the cut-off date already" @@ -256,13 +253,13 @@ public class IcannReportingUploadActionTest { } @Test - public void testFailure_quicklySkipsOverIpAllowListException() throws Exception { + void testFailure_quicklySkipsOverIpAllowListException() throws Exception { runTest_nonRetryableException( new IOException("Your IP address 25.147.130.158 is not allowed to connect")); } @Test - public void testFailure_cursorIsNotAdvancedForward() throws Exception { + void testFailure_cursorIsNotAdvancedForward() throws Exception { runTest_nonRetryableException( new IOException("Your IP address 25.147.130.158 is not allowed to connect")); ofy().clearSessionCache(); @@ -275,7 +272,7 @@ public class IcannReportingUploadActionTest { } @Test - public void testNotRunIfCursorDateIsAfterToday() throws Exception { + void testNotRunIfCursorDateIsAfterToday() throws Exception { clock.setTo(DateTime.parse("2006-05-01T00:30:00Z")); IcannReportingUploadAction action = createAction(); action.run(); @@ -316,7 +313,7 @@ public class IcannReportingUploadActionTest { } @Test - public void testFail_fileNotFound() throws Exception { + void testFail_fileNotFound() throws Exception { clock.setTo(DateTime.parse("2006-01-22T00:30:00Z")); persistResource( Cursor.create( @@ -332,7 +329,7 @@ public class IcannReportingUploadActionTest { } @Test - public void testWarning_fileNotStagedYet() throws Exception { + void testWarning_fileNotStagedYet() throws Exception { persistResource( Cursor.create( CursorType.ICANN_UPLOAD_ACTIVITY, DateTime.parse("2006-08-01TZ"), Registry.get("foo"))); @@ -349,7 +346,7 @@ public class IcannReportingUploadActionTest { } @Test - public void testFailure_lockIsntAvailable() throws Exception { + void testFailure_lockIsntAvailable() throws Exception { IcannReportingUploadAction action = createAction(); action.lockHandler = new FakeLockHandler(false); ServiceUnavailableException thrown = @@ -360,7 +357,7 @@ public class IcannReportingUploadActionTest { } @Test - public void testSuccess_nullCursorsInitiatedToFirstOfNextMonth() throws Exception { + void testSuccess_nullCursorsInitiatedToFirstOfNextMonth() throws Exception { createTlds("new"); IcannReportingUploadAction action = createAction(); diff --git a/core/src/test/java/google/registry/reporting/icann/TransactionsReportingQueryBuilderTest.java b/core/src/test/java/google/registry/reporting/icann/TransactionsReportingQueryBuilderTest.java index fcbc7d757..275f00b05 100644 --- a/core/src/test/java/google/registry/reporting/icann/TransactionsReportingQueryBuilderTest.java +++ b/core/src/test/java/google/registry/reporting/icann/TransactionsReportingQueryBuilderTest.java @@ -19,13 +19,10 @@ import static com.google.common.truth.Truth.assertThat; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.joda.time.YearMonth; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link ActivityReportingQueryBuilder}. */ -@RunWith(JUnit4.class) -public class TransactionsReportingQueryBuilderTest { +class TransactionsReportingQueryBuilderTest { private final YearMonth yearMonth = new YearMonth(2017, 9); @@ -36,7 +33,7 @@ public class TransactionsReportingQueryBuilderTest { } @Test - public void testAggregateQueryMatch() { + void testAggregateQueryMatch() { TransactionsReportingQueryBuilder queryBuilder = getQueryBuilder(); assertThat(queryBuilder.getReportQuery(yearMonth)) .isEqualTo( @@ -45,7 +42,7 @@ public class TransactionsReportingQueryBuilderTest { } @Test - public void testIntermediaryQueryMatch() { + void testIntermediaryQueryMatch() { ImmutableList expectedQueryNames = ImmutableList.of( TransactionsReportingQueryBuilder.TRANSACTIONS_REPORT_AGGREGATION, 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 f68542b68..fb702a8c7 100644 --- a/core/src/test/java/google/registry/reporting/spec11/GenerateSpec11ReportActionTest.java +++ b/core/src/test/java/google/registry/reporting/spec11/GenerateSpec11ReportActionTest.java @@ -36,18 +36,15 @@ import google.registry.testing.FakeResponse; import google.registry.testing.TaskQueueHelper.TaskMatcher; import java.io.IOException; import org.joda.time.LocalDate; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link google.registry.reporting.spec11.GenerateSpec11ReportAction}. */ -@RunWith(JUnit4.class) -public class GenerateSpec11ReportActionTest { +class GenerateSpec11ReportActionTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withTaskQueue().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withTaskQueue().build(); private FakeResponse response; private Dataflow dataflow; @@ -57,8 +54,8 @@ public class GenerateSpec11ReportActionTest { private GenerateSpec11ReportAction action; - @Before - public void setUp() throws IOException { + @BeforeEach + void beforeEach() throws IOException { response = new FakeResponse(); dataflow = mock(Dataflow.class); @@ -79,7 +76,7 @@ public class GenerateSpec11ReportActionTest { } @Test - public void testLaunch_success() throws IOException { + void testLaunch_success() throws IOException { action = new GenerateSpec11ReportAction( "test", diff --git a/core/src/test/java/google/registry/reporting/spec11/PublishSpec11ReportActionTest.java b/core/src/test/java/google/registry/reporting/spec11/PublishSpec11ReportActionTest.java index dd09b63b7..aba11bdf7 100644 --- a/core/src/test/java/google/registry/reporting/spec11/PublishSpec11ReportActionTest.java +++ b/core/src/test/java/google/registry/reporting/spec11/PublishSpec11ReportActionTest.java @@ -41,14 +41,11 @@ import google.registry.testing.FakeResponse; import java.io.IOException; import java.util.Optional; import org.joda.time.LocalDate; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** Unit tests for {@link PublishSpec11ReportAction}. */ -@RunWith(JUnit4.class) -public class PublishSpec11ReportActionTest { +class PublishSpec11ReportActionTest { private final LocalDate date = new LocalDate(2018, 6, 5); @@ -63,8 +60,8 @@ public class PublishSpec11ReportActionTest { private FakeResponse response; private PublishSpec11ReportAction publishAction; - @Before - public void setUp() throws Exception { + @BeforeEach + void beforeEach() throws Exception { dataflow = mock(Dataflow.class); projects = mock(Projects.class); jobs = mock(Jobs.class); @@ -91,7 +88,7 @@ public class PublishSpec11ReportActionTest { } @Test - public void testJobDone_emailsOnlyMonthlyResultsOnSecondOfMonth() throws Exception { + void testJobDone_emailsOnlyMonthlyResultsOnSecondOfMonth() throws Exception { LocalDate secondOfMonth = date.withDayOfMonth(2); when(parser.getRegistrarThreatMatches(secondOfMonth)).thenReturn(sampleThreatMatches()); expectedJob.setCurrentState("JOB_STATE_DONE"); @@ -117,7 +114,7 @@ public class PublishSpec11ReportActionTest { } @Test - public void testJobFailed_returnsNonRetriableResponse() { + void testJobFailed_returnsNonRetriableResponse() { expectedJob.setCurrentState("JOB_STATE_FAILED"); publishAction.run(); assertThat(response.getStatus()).isEqualTo(SC_NO_CONTENT); @@ -128,7 +125,7 @@ public class PublishSpec11ReportActionTest { } @Test - public void testJobIndeterminate_returnsRetriableResponse() { + void testJobIndeterminate_returnsRetriableResponse() { expectedJob.setCurrentState("JOB_STATE_RUNNING"); publishAction.run(); assertThat(response.getStatus()).isEqualTo(SC_NOT_MODIFIED); @@ -136,7 +133,7 @@ public class PublishSpec11ReportActionTest { } @Test - public void testIOException_returnsFailureMessage() throws IOException { + void testIOException_returnsFailureMessage() throws IOException { when(get.execute()).thenThrow(new IOException("expected")); publishAction.run(); assertThat(response.getStatus()).isEqualTo(SC_INTERNAL_SERVER_ERROR); @@ -149,7 +146,7 @@ public class PublishSpec11ReportActionTest { } @Test - public void testJobDone_onlyDailyResults() throws Exception { + void testJobDone_onlyDailyResults() throws Exception { LocalDate yesterday = date.minusDays(1); when(parser.getPreviousDateWithMatches(date)).thenReturn(Optional.of(yesterday)); when(parser.getRegistrarThreatMatches(date)).thenReturn(sampleThreatMatches()); @@ -167,7 +164,7 @@ public class PublishSpec11ReportActionTest { } @Test - public void testJobDone_multipleEntriesWithSameEmail() throws Exception { + void testJobDone_multipleEntriesWithSameEmail() throws Exception { LocalDate yesterday = date.minusDays(1); when(parser.getPreviousDateWithMatches(date)).thenReturn(Optional.of(yesterday)); when(parser.getRegistrarThreatMatches(yesterday)).thenReturn(ImmutableSet.of()); @@ -200,7 +197,7 @@ public class PublishSpec11ReportActionTest { } @Test - public void testJobDone_noDifferentResults() throws Exception { + void testJobDone_noDifferentResults() throws Exception { LocalDate yesterday = date.minusDays(1); when(parser.getPreviousDateWithMatches(date)).thenReturn(Optional.of(yesterday)); when(parser.getRegistrarThreatMatches(date)).thenReturn(sampleThreatMatches()); @@ -218,7 +215,7 @@ public class PublishSpec11ReportActionTest { } @Test - public void testJobDone_failsDueToNoPreviousResults() { + void testJobDone_failsDueToNoPreviousResults() { when(parser.getPreviousDateWithMatches(date)).thenReturn(Optional.empty()); expectedJob.setCurrentState("JOB_STATE_DONE"); publishAction.run(); 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 7dfa3737b..956d4c47a 100644 --- a/core/src/test/java/google/registry/reporting/spec11/Spec11EmailUtilsTest.java +++ b/core/src/test/java/google/registry/reporting/spec11/Spec11EmailUtilsTest.java @@ -47,16 +47,13 @@ import java.util.Optional; import javax.mail.MessagingException; import javax.mail.internet.InternetAddress; import org.joda.time.LocalDate; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.mockito.ArgumentCaptor; /** Unit tests for {@link Spec11EmailUtils}. */ -@RunWith(JUnit4.class) -public class Spec11EmailUtilsTest { +class Spec11EmailUtilsTest { private static final ImmutableList FAKE_RESOURCES = ImmutableList.of("foo"); private static final String DAILY_EMAIL_FORMAT = @@ -95,8 +92,8 @@ public class Spec11EmailUtilsTest { + " domains are added to these lists.

If you have any questions regarding this" + " notice, please contact abuse@test.com.

"; - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); private SendEmailService emailService; private Spec11EmailUtils emailUtils; @@ -107,8 +104,8 @@ public class Spec11EmailUtilsTest { private DomainBase aDomain; private DomainBase bDomain; - @Before - public void setUp() throws Exception { + @BeforeEach + void beforeEach() throws Exception { emailService = mock(SendEmailService.class); parser = mock(Spec11RegistrarThreatMatchesParser.class); when(parser.getRegistrarThreatMatches(date)).thenReturn(sampleThreatMatches()); @@ -131,7 +128,7 @@ public class Spec11EmailUtilsTest { } @Test - public void testSuccess_emailMonthlySpec11Reports() throws Exception { + void testSuccess_emailMonthlySpec11Reports() throws Exception { emailUtils.emailSpec11Reports( date, Spec11EmailSoyInfo.MONTHLY_SPEC_11_EMAIL, @@ -169,7 +166,7 @@ public class Spec11EmailUtilsTest { } @Test - public void testSuccess_emailDailySpec11Reports() throws Exception { + void testSuccess_emailDailySpec11Reports() throws Exception { emailUtils.emailSpec11Reports( date, Spec11EmailSoyInfo.DAILY_SPEC_11_EMAIL, @@ -207,14 +204,12 @@ public class Spec11EmailUtilsTest { } @Test - public void testSuccess_skipsInactiveDomain() throws Exception { + void testSuccess_skipsInactiveDomain() throws Exception { // CLIENT_HOLD and SERVER_HOLD mean no DNS so we don't need to email it out persistResource( - ofy().load().entity(aDomain).now().asBuilder().addStatusValue(SERVER_HOLD) - .build()); + ofy().load().entity(aDomain).now().asBuilder().addStatusValue(SERVER_HOLD).build()); persistResource( - ofy().load().entity(bDomain).now().asBuilder().addStatusValue(CLIENT_HOLD) - .build()); + ofy().load().entity(bDomain).now().asBuilder().addStatusValue(CLIENT_HOLD).build()); emailUtils.emailSpec11Reports( date, Spec11EmailSoyInfo.MONTHLY_SPEC_11_EMAIL, @@ -242,7 +237,7 @@ public class Spec11EmailUtilsTest { } @Test - public void testOneFailure_sendsAlert() throws Exception { + void testOneFailure_sendsAlert() throws Exception { // If there is one failure, we should still send the other message and then an alert email LinkedHashSet matches = new LinkedHashSet<>(); matches.add(getMatchA()); @@ -297,7 +292,7 @@ public class Spec11EmailUtilsTest { } @Test - public void testSuccess_sendAlertEmail() throws Exception { + void testSuccess_sendAlertEmail() throws Exception { emailUtils.sendAlertEmail("Spec11 Pipeline Alert: 2018-07", "Alert!"); verify(emailService).sendEmail(contentCaptor.capture()); validateMessage( @@ -311,7 +306,7 @@ public class Spec11EmailUtilsTest { } @Test - public void testSuccess_useWhoisAbuseEmailIfAvailable() 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() @@ -330,7 +325,7 @@ public class Spec11EmailUtilsTest { } @Test - public void testFailure_badClientId() { + void testFailure_badClientId() { RuntimeException thrown = assertThrows( RuntimeException.class, diff --git a/core/src/test/java/google/registry/reporting/spec11/Spec11RegistrarThreatMatchesParserTest.java b/core/src/test/java/google/registry/reporting/spec11/Spec11RegistrarThreatMatchesParserTest.java index 2b40195d7..9f68ba30b 100644 --- a/core/src/test/java/google/registry/reporting/spec11/Spec11RegistrarThreatMatchesParserTest.java +++ b/core/src/test/java/google/registry/reporting/spec11/Spec11RegistrarThreatMatchesParserTest.java @@ -30,14 +30,11 @@ import java.io.ByteArrayInputStream; import java.nio.charset.StandardCharsets; import org.joda.time.LocalDate; import org.json.JSONObject; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; /** Unit tests for {@link Spec11RegistrarThreatMatchesParser}. */ -@RunWith(JUnit4.class) -public class Spec11RegistrarThreatMatchesParserTest { +class Spec11RegistrarThreatMatchesParserTest { private static final String TODAY = "2018-07-21"; private static final String YESTERDAY = "2018-07-20"; @@ -46,31 +43,31 @@ public class Spec11RegistrarThreatMatchesParserTest { private final Spec11RegistrarThreatMatchesParser parser = new Spec11RegistrarThreatMatchesParser(gcsUtils, "test-bucket"); - @Before - public void setUp() { + @BeforeEach + void beforeEach() { setupFile("spec11_fake_report", TODAY); } @Test - public void testSuccess_retrievesReport() throws Exception { + void testSuccess_retrievesReport() throws Exception { assertThat(parser.getRegistrarThreatMatches(LocalDate.parse(TODAY))) .isEqualTo(sampleThreatMatches()); } @Test - public void testFindPrevious_exists() throws Exception { + void testFindPrevious_exists() throws Exception { setupFile("spec11_fake_report_previous_day", YESTERDAY); assertThat(parser.getPreviousDateWithMatches(LocalDate.parse(TODAY))) .hasValue(LocalDate.parse(YESTERDAY)); } @Test - public void testFindPrevious_notFound() { + void testFindPrevious_notFound() { assertThat(parser.getPreviousDateWithMatches(LocalDate.parse(TODAY))).isEmpty(); } @Test - public void testFindPrevious_olderThanYesterdayFound() throws Exception { + void testFindPrevious_olderThanYesterdayFound() throws Exception { setupFile("spec11_fake_report_previous_day", "2018-07-14"); assertThat(parser.getPreviousDateWithMatches(LocalDate.parse(TODAY))) @@ -78,7 +75,7 @@ public class Spec11RegistrarThreatMatchesParserTest { } @Test - public void testSuccess_ignoreExtraFields() throws Exception { + void testSuccess_ignoreExtraFields() throws Exception { ThreatMatch objectWithExtraFields = ThreatMatch.fromJSON( new JSONObject( diff --git a/core/src/test/java/google/registry/request/JsonResponseTest.java b/core/src/test/java/google/registry/request/JsonResponseTest.java index 7c95c78de..679bfdd75 100644 --- a/core/src/test/java/google/registry/request/JsonResponseTest.java +++ b/core/src/test/java/google/registry/request/JsonResponseTest.java @@ -21,25 +21,22 @@ import com.google.common.collect.ImmutableMap; import google.registry.testing.FakeResponse; import java.util.Map; import org.json.simple.JSONValue; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link JsonResponse}. */ -@RunWith(JUnit4.class) -public class JsonResponseTest { +class JsonResponseTest { - FakeResponse fakeResponse = new FakeResponse(); - JsonResponse jsonResponse = new JsonResponse(fakeResponse); + private FakeResponse fakeResponse = new FakeResponse(); + private JsonResponse jsonResponse = new JsonResponse(fakeResponse); @Test - public void testSetStatus() { + void testSetStatus() { jsonResponse.setStatus(666); assertThat(fakeResponse.getStatus()).isEqualTo(666); } @Test - public void testSetResponseValue() { + void testSetResponseValue() { ImmutableMap responseValues = ImmutableMap.of( "hello", "world", "goodbye", "cruel world"); @@ -53,7 +50,7 @@ public class JsonResponseTest { } @Test - public void testSetHeader() { + void testSetHeader() { jsonResponse.setHeader("header", "value"); Map headerMap = fakeResponse.getHeaders(); assertThat(headerMap.size()).isEqualTo(1); diff --git a/core/src/test/java/google/registry/request/RequestHandlerTest.java b/core/src/test/java/google/registry/request/RequestHandlerTest.java index 1f7c59b72..73d0add5f 100644 --- a/core/src/test/java/google/registry/request/RequestHandlerTest.java +++ b/core/src/test/java/google/registry/request/RequestHandlerTest.java @@ -42,19 +42,16 @@ import java.io.StringWriter; import java.util.Optional; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -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 RequestHandler}. */ -@RunWith(JUnit4.class) public final class RequestHandlerTest { - @Rule - public final AppEngineRule appEngine = + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder() .withDatastoreAndCloudSql() .withUserService(UserInfo.create("test@example.com", "test@example.com")) @@ -102,7 +99,7 @@ public final class RequestHandlerTest { @Action(service = Action.Service.DEFAULT, path = "/failAtConstruction", auth = AUTH_PUBLIC) public static final class FailAtConstructionTask implements Runnable { - public FailAtConstructionTask() { + FailAtConstructionTask() { throw new ServiceUnavailableException("Fail at construction"); } @@ -207,8 +204,8 @@ public final class RequestHandlerTest { private AuthResult providedAuthResult = null; private final User testUser = new User("test@example.com", "test@example.com"); - @Before - public void before() throws Exception { + @BeforeEach + void beforeEach() throws Exception { // Initialize here, not inline, so that we pick up the mocked UserService. handler = RequestHandler.createForTest( @@ -226,8 +223,8 @@ public final class RequestHandlerTest { handler.requestMetrics = requestMetrics; } - @After - public void after() { + @AfterEach + void afterEach() { verifyNoMoreInteractions(rsp, bumblebeeTask, slothTask, safeSlothTask, requestMetrics); } @@ -237,7 +234,7 @@ public final class RequestHandlerTest { } @Test - public void testHandleRequest_normalRequest_works() throws Exception { + void testHandleRequest_normalRequest_works() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getRequestURI()).thenReturn("/bumblebee"); when(requestAuthenticator.authorize(AUTH_PUBLIC.authSettings(), req)) @@ -251,7 +248,7 @@ public final class RequestHandlerTest { } @Test - public void testHandleRequest_multipleMethodMappings_works() throws Exception { + void testHandleRequest_multipleMethodMappings_works() throws Exception { when(req.getMethod()).thenReturn("POST"); when(req.getRequestURI()).thenReturn("/bumblebee"); when(requestAuthenticator.authorize(AUTH_PUBLIC.authSettings(), req)) @@ -264,7 +261,7 @@ public final class RequestHandlerTest { } @Test - public void testHandleRequest_prefixEnabled_subpathsWork() throws Exception { + void testHandleRequest_prefixEnabled_subpathsWork() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getRequestURI()).thenReturn("/bumblebee/hive"); when(requestAuthenticator.authorize(AUTH_PUBLIC.authSettings(), req)) @@ -277,7 +274,7 @@ public final class RequestHandlerTest { } @Test - public void testHandleRequest_taskHasAutoPrintOk_printsOk() throws Exception { + void testHandleRequest_taskHasAutoPrintOk_printsOk() throws Exception { when(req.getMethod()).thenReturn("POST"); when(req.getRequestURI()).thenReturn("/sloth"); when(requestAuthenticator.authorize(AUTH_PUBLIC.authSettings(), req)) @@ -293,7 +290,7 @@ public final class RequestHandlerTest { } @Test - public void testHandleRequest_prefixDisabled_subpathsReturn404NotFound() throws Exception { + void testHandleRequest_prefixDisabled_subpathsReturn404NotFound() throws Exception { when(req.getMethod()).thenReturn("POST"); when(req.getRequestURI()).thenReturn("/sloth/nest"); when(requestAuthenticator.authorize(AUTH_PUBLIC.authSettings(), req)) @@ -305,7 +302,7 @@ public final class RequestHandlerTest { } @Test - public void testHandleRequest_taskThrowsHttpException_getsHandledByHandler() throws Exception { + void testHandleRequest_taskThrowsHttpException_getsHandledByHandler() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getRequestURI()).thenReturn("/fail"); when(requestAuthenticator.authorize(AUTH_PUBLIC.authSettings(), req)) @@ -319,7 +316,7 @@ public final class RequestHandlerTest { /** Test for a regression of the issue in b/21377705. */ @Test - public void testHandleRequest_taskThrowsHttpException_atConstructionTime_getsHandledByHandler() + void testHandleRequest_taskThrowsHttpException_atConstructionTime_getsHandledByHandler() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getRequestURI()).thenReturn("/failAtConstruction"); @@ -333,7 +330,7 @@ public final class RequestHandlerTest { } @Test - public void testHandleRequest_notFound_returns404NotFound() throws Exception { + void testHandleRequest_notFound_returns404NotFound() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getRequestURI()).thenReturn("/bogus"); when(requestAuthenticator.authorize(AUTH_PUBLIC.authSettings(), req)) @@ -345,7 +342,7 @@ public final class RequestHandlerTest { } @Test - public void testHandleRequest_methodNotAllowed_returns405MethodNotAllowed() throws Exception { + void testHandleRequest_methodNotAllowed_returns405MethodNotAllowed() throws Exception { when(req.getMethod()).thenReturn("POST"); when(req.getRequestURI()).thenReturn("/fail"); when(requestAuthenticator.authorize(AUTH_PUBLIC.authSettings(), req)) @@ -357,7 +354,7 @@ public final class RequestHandlerTest { } @Test - public void testHandleRequest_insaneMethod_returns405MethodNotAllowed() throws Exception { + void testHandleRequest_insaneMethod_returns405MethodNotAllowed() throws Exception { when(req.getMethod()).thenReturn("FIREAWAY"); when(req.getRequestURI()).thenReturn("/fail"); when(requestAuthenticator.authorize(AUTH_PUBLIC.authSettings(), req)) @@ -368,10 +365,12 @@ public final class RequestHandlerTest { verify(rsp).sendError(405); } - /** @see - * RFC2616 - HTTP/1.1 - Method */ + /** + * @see RFC2616 - + * HTTP/1.1 - Method + */ @Test - public void testHandleRequest_lowercaseMethod_notRecognized() throws Exception { + void testHandleRequest_lowercaseMethod_notRecognized() throws Exception { when(req.getMethod()).thenReturn("get"); when(req.getRequestURI()).thenReturn("/bumblebee"); when(requestAuthenticator.authorize(AUTH_PUBLIC.authSettings(), req)) @@ -382,8 +381,9 @@ public final class RequestHandlerTest { verify(rsp).sendError(405); } + @SuppressWarnings("UnstableApiUsage") @Test - public void testNullness() { + void testNullness() { NullPointerTester tester = new NullPointerTester(); tester.setDefault(Class.class, Component.class); tester.setDefault(RequestAuthenticator.class, requestAuthenticator); @@ -392,7 +392,7 @@ public final class RequestHandlerTest { } @Test - public void testXsrfProtection_validTokenProvided_runsAction() throws Exception { + void testXsrfProtection_validTokenProvided_runsAction() throws Exception { when(req.getMethod()).thenReturn("POST"); when(req.getRequestURI()).thenReturn("/safe-sloth"); when(requestAuthenticator.authorize(AUTH_PUBLIC.authSettings(), req)) @@ -405,7 +405,7 @@ public final class RequestHandlerTest { } @Test - public void testXsrfProtection_GETMethodWithoutToken_doesntCheckToken() throws Exception { + void testXsrfProtection_GETMethodWithoutToken_doesntCheckToken() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getRequestURI()).thenReturn("/safe-sloth"); when(requestAuthenticator.authorize(AUTH_PUBLIC.authSettings(), req)) @@ -418,7 +418,7 @@ public final class RequestHandlerTest { } @Test - public void testNoAuthNeeded_success() throws Exception { + void testNoAuthNeeded_success() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getRequestURI()).thenReturn("/auth/none"); when(requestAuthenticator.authorize(AUTH_PUBLIC.authSettings(), req)) @@ -433,7 +433,7 @@ public final class RequestHandlerTest { } @Test - public void testAuthNeeded_failure() throws Exception { + void testAuthNeeded_failure() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getRequestURI()).thenReturn("/auth/adminUser"); when(requestAuthenticator.authorize(AUTH_INTERNAL_OR_ADMIN.authSettings(), req)) @@ -446,7 +446,7 @@ public final class RequestHandlerTest { } @Test - public void testAuthNeeded_success() throws Exception { + void testAuthNeeded_success() throws Exception { when(req.getMethod()).thenReturn("GET"); when(req.getRequestURI()).thenReturn("/auth/adminUser"); when(requestAuthenticator.authorize(AUTH_INTERNAL_OR_ADMIN.authSettings(), req)) @@ -462,5 +462,4 @@ public final class RequestHandlerTest { assertThat(providedAuthResult.userAuthInfo().get().oauthTokenInfo()).isEmpty(); assertMetric("/auth/adminUser", GET, AuthLevel.USER, true); } - } diff --git a/core/src/test/java/google/registry/request/RequestModuleTest.java b/core/src/test/java/google/registry/request/RequestModuleTest.java index 986765898..083c317e4 100644 --- a/core/src/test/java/google/registry/request/RequestModuleTest.java +++ b/core/src/test/java/google/registry/request/RequestModuleTest.java @@ -21,27 +21,24 @@ import static org.junit.Assert.assertThrows; import com.google.common.net.MediaType; import google.registry.request.HttpException.BadRequestException; import google.registry.request.HttpException.UnsupportedMediaTypeException; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link RequestModule}. */ -@RunWith(JUnit4.class) -public final class RequestModuleTest { +final class RequestModuleTest { + @Test - public void testProvideJsonPayload() { - assertThat(provideJsonPayload(MediaType.JSON_UTF_8, "{\"k\":\"v\"}")) - .containsExactly("k", "v"); + void testProvideJsonPayload() { + assertThat(provideJsonPayload(MediaType.JSON_UTF_8, "{\"k\":\"v\"}")).containsExactly("k", "v"); } @Test - public void testProvideJsonPayload_contentTypeWithoutCharsetAllowed() { + void testProvideJsonPayload_contentTypeWithoutCharsetAllowed() { assertThat(provideJsonPayload(MediaType.JSON_UTF_8.withoutParameters(), "{\"k\":\"v\"}")) .containsExactly("k", "v"); } @Test - public void testProvideJsonPayload_malformedInput_throws500() { + void testProvideJsonPayload_malformedInput_throws500() { BadRequestException thrown = assertThrows( BadRequestException.class, () -> provideJsonPayload(MediaType.JSON_UTF_8, "{\"k\":")); @@ -49,21 +46,21 @@ public final class RequestModuleTest { } @Test - public void testProvideJsonPayload_emptyInput_throws500() { + void testProvideJsonPayload_emptyInput_throws500() { BadRequestException thrown = assertThrows(BadRequestException.class, () -> provideJsonPayload(MediaType.JSON_UTF_8, "")); assertThat(thrown).hasMessageThat().contains("Malformed JSON"); } @Test - public void testProvideJsonPayload_nonJsonContentType_throws415() { + void testProvideJsonPayload_nonJsonContentType_throws415() { assertThrows( UnsupportedMediaTypeException.class, () -> provideJsonPayload(MediaType.PLAIN_TEXT_UTF_8, "{}")); } @Test - public void testProvideJsonPayload_contentTypeWithWeirdParam_throws415() { + void testProvideJsonPayload_contentTypeWithWeirdParam_throws415() { assertThrows( UnsupportedMediaTypeException.class, () -> provideJsonPayload(MediaType.JSON_UTF_8.withParameter("omg", "handel"), "{}")); diff --git a/core/src/test/java/google/registry/request/RequestParametersTest.java b/core/src/test/java/google/registry/request/RequestParametersTest.java index 9ff0e1db7..0e1f976f8 100644 --- a/core/src/test/java/google/registry/request/RequestParametersTest.java +++ b/core/src/test/java/google/registry/request/RequestParametersTest.java @@ -33,30 +33,28 @@ import com.google.common.collect.ImmutableMap; import google.registry.request.HttpException.BadRequestException; import javax.servlet.http.HttpServletRequest; import org.joda.time.DateTime; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link RequestParameters}. */ -@RunWith(JUnit4.class) -public class RequestParametersTest { +class RequestParametersTest { + private final HttpServletRequest req = mock(HttpServletRequest.class); @Test - public void testExtractRequiredParameter_valuePresent_returnsValue() { + void testExtractRequiredParameter_valuePresent_returnsValue() { when(req.getParameter("spin")).thenReturn("bog"); assertThat(extractRequiredParameter(req, "spin")).isEqualTo("bog"); } @Test - public void testExtractRequiredParameter_notPresent_throwsBadRequest() { + void testExtractRequiredParameter_notPresent_throwsBadRequest() { BadRequestException thrown = assertThrows(BadRequestException.class, () -> extractRequiredParameter(req, "spin")); assertThat(thrown).hasMessageThat().contains("spin"); } @Test - public void testExtractRequiredParameter_empty_throwsBadRequest() { + void testExtractRequiredParameter_empty_throwsBadRequest() { when(req.getParameter("spin")).thenReturn(""); BadRequestException thrown = assertThrows(BadRequestException.class, () -> extractRequiredParameter(req, "spin")); @@ -64,100 +62,100 @@ public class RequestParametersTest { } @Test - public void testExtractOptionalParameter_valuePresent_returnsValue() { + void testExtractOptionalParameter_valuePresent_returnsValue() { when(req.getParameter("spin")).thenReturn("bog"); assertThat(extractOptionalParameter(req, "spin")).hasValue("bog"); } @Test - public void testExtractOptionalParameter_notPresent_returnsEmpty() { + void testExtractOptionalParameter_notPresent_returnsEmpty() { assertThat(extractOptionalParameter(req, "spin")).isEmpty(); } @Test - public void testExtractOptionalParameter_empty_returnsEmpty() { + void testExtractOptionalParameter_empty_returnsEmpty() { when(req.getParameter("spin")).thenReturn(""); assertThat(extractOptionalParameter(req, "spin")).isEmpty(); } @Test - public void testExtractSetOfParameters_notPresent_returnsEmpty() { + void testExtractSetOfParameters_notPresent_returnsEmpty() { assertThat(extractSetOfParameters(req, "spin")).isEmpty(); } @Test - public void testExtractSetOfParameters_empty_returnsEmpty() { + void testExtractSetOfParameters_empty_returnsEmpty() { when(req.getParameter("spin")).thenReturn(""); assertThat(extractSetOfParameters(req, "spin")).isEmpty(); } @Test - public void testExtractSetOfParameters_oneValue_returnsValue() { + void testExtractSetOfParameters_oneValue_returnsValue() { when(req.getParameter("spin")).thenReturn("bog"); assertThat(extractSetOfParameters(req, "spin")).containsExactly("bog"); } @Test - public void testExtractSetOfParameters_multipleValues_returnsAll() { + void testExtractSetOfParameters_multipleValues_returnsAll() { when(req.getParameter("spin")).thenReturn("bog,gob"); assertThat(extractSetOfParameters(req, "spin")).containsExactly("bog", "gob"); } @Test - public void testExtractSetOfParameters_multipleValuesWithEmpty_removesEmpty() { + void testExtractSetOfParameters_multipleValuesWithEmpty_removesEmpty() { when(req.getParameter("spin")).thenReturn(",bog,,gob,"); assertThat(extractSetOfParameters(req, "spin")).containsExactly("bog", "gob"); } @Test - public void testExtractSetOfParameters_multipleParameters_error() { - when(req.getParameterValues("spin")).thenReturn(new String[]{"bog", "gob"}); + void testExtractSetOfParameters_multipleParameters_error() { + when(req.getParameterValues("spin")).thenReturn(new String[] {"bog", "gob"}); BadRequestException thrown = assertThrows(BadRequestException.class, () -> extractSetOfParameters(req, "spin")); assertThat(thrown).hasMessageThat().contains("spin"); } @Test - public void testExtractSetOfEnumParameters_notPresent_returnsEmpty() { + void testExtractSetOfEnumParameters_notPresent_returnsEmpty() { assertThat(extractSetOfEnumParameters(req, Club.class, "spin")).isEmpty(); } @Test - public void testExtractSetOfEnumParameters_empty_returnsEmpty() { + void testExtractSetOfEnumParameters_empty_returnsEmpty() { when(req.getParameter("spin")).thenReturn(""); assertThat(extractSetOfEnumParameters(req, Club.class, "spin")).isEmpty(); } @Test - public void testExtractSetOfEnumParameters_oneValue_returnsValue() { + void testExtractSetOfEnumParameters_oneValue_returnsValue() { when(req.getParameter("spin")).thenReturn("DANCE"); assertThat(extractSetOfEnumParameters(req, Club.class, "spin")).containsExactly(Club.DANCE); } @Test - public void testExtractSetOfEnumParameters_multipleValues_returnsAll() { + void testExtractSetOfEnumParameters_multipleValues_returnsAll() { when(req.getParameter("spin")).thenReturn("DANCE,FLOOR"); assertThat(extractSetOfEnumParameters(req, Club.class, "spin")) .containsExactly(Club.DANCE, Club.FLOOR); } @Test - public void testExtractSetOfEnumParameters_multipleValuesWithEmpty_removesEmpty() { + void testExtractSetOfEnumParameters_multipleValuesWithEmpty_removesEmpty() { when(req.getParameter("spin")).thenReturn(",DANCE,,FLOOR,"); assertThat(extractSetOfEnumParameters(req, Club.class, "spin")) .containsExactly(Club.DANCE, Club.FLOOR); } @Test - public void testExtractSetOfEnumParameters_multipleValues_caseInsensitive() { + void testExtractSetOfEnumParameters_multipleValues_caseInsensitive() { when(req.getParameter("spin")).thenReturn("danCE,FlooR"); assertThat(extractSetOfEnumParameters(req, Club.class, "spin")) .containsExactly(Club.DANCE, Club.FLOOR); } @Test - public void testExtractSetOfEnumParameters_multipleParameters_error() { - when(req.getParameterValues("spin")).thenReturn(new String[]{"DANCE", "FLOOR"}); + void testExtractSetOfEnumParameters_multipleParameters_error() { + when(req.getParameterValues("spin")).thenReturn(new String[] {"DANCE", "FLOOR"}); BadRequestException thrown = assertThrows( BadRequestException.class, () -> extractSetOfEnumParameters(req, Club.class, "spin")); @@ -165,67 +163,70 @@ public class RequestParametersTest { } @Test - public void testExtractBooleanParameter_notPresent_returnsFalse() { + void testExtractBooleanParameter_notPresent_returnsFalse() { assertThat(extractBooleanParameter(req, "love")).isFalse(); } @Test - public void testExtractBooleanParameter_presentWithoutValue_returnsTrue() { + void testExtractBooleanParameter_presentWithoutValue_returnsTrue() { when(req.getParameterMap()).thenReturn(ImmutableMap.of("love", "")); assertThat(extractBooleanParameter(req, "love")).isTrue(); } @Test - public void testExtractBooleanParameter_empty_returnsTrue() { + void testExtractBooleanParameter_empty_returnsTrue() { when(req.getParameterMap()).thenReturn(ImmutableMap.of("love", "")); when(req.getParameter("love")).thenReturn(""); assertThat(extractBooleanParameter(req, "love")).isTrue(); } @Test - public void testExtractBooleanParameter_presentStringArbitrary_returnsTrue() { + void testExtractBooleanParameter_presentStringArbitrary_returnsTrue() { when(req.getParameterMap()).thenReturn(ImmutableMap.of("love", "lol")); when(req.getParameter("love")).thenReturn("lol"); assertThat(extractBooleanParameter(req, "love")).isTrue(); } @Test - public void testExtractBooleanParameter_presentStringTrue_returnsTrue() { + void testExtractBooleanParameter_presentStringTrue_returnsTrue() { when(req.getParameterMap()).thenReturn(ImmutableMap.of("love", "true")); when(req.getParameter("love")).thenReturn("true"); assertThat(extractBooleanParameter(req, "love")).isTrue(); } @Test - public void testExtractBooleanParameter_presentStringFalse_returnsFalse() { + void testExtractBooleanParameter_presentStringFalse_returnsFalse() { when(req.getParameterMap()).thenReturn(ImmutableMap.of("love", "false")); when(req.getParameter("love")).thenReturn("false"); assertThat(extractBooleanParameter(req, "love")).isFalse(); } @Test - public void testExtractBooleanParameter_presentStringFalse_caseInsensitive() { + void testExtractBooleanParameter_presentStringFalse_caseInsensitive() { when(req.getParameterMap()).thenReturn(ImmutableMap.of("love", "FaLsE")); when(req.getParameter("love")).thenReturn("FaLsE"); assertThat(extractBooleanParameter(req, "love")).isFalse(); } - enum Club { DANCE, FLOOR } + enum Club { + DANCE, + FLOOR + } @Test - public void testExtractEnumValue_correctValue_works() { + void testExtractEnumValue_correctValue_works() { when(req.getParameter("spin")).thenReturn("DANCE"); assertThat(extractEnumParameter(req, Club.class, "spin")).isEqualTo(Club.DANCE); } @Test - public void testExtractEnumValue_weirdCasing_isCaseInsensitive() { + void testExtractEnumValue_weirdCasing_isCaseInsensitive() { when(req.getParameter("spin")).thenReturn("DaNcE"); assertThat(extractEnumParameter(req, Club.class, "spin")).isEqualTo(Club.DANCE); } @Test - public void testExtractEnumValue_nonExistentValue_throwsBadRequest() { + void testExtractEnumValue_nonExistentValue_throwsBadRequest() { when(req.getParameter("spin")).thenReturn("sing"); BadRequestException thrown = assertThrows( @@ -234,19 +235,19 @@ public class RequestParametersTest { } @Test - public void testOptionalExtractEnumValue_givenValue_returnsValue() { + void testOptionalExtractEnumValue_givenValue_returnsValue() { when(req.getParameter("spin")).thenReturn("DANCE"); assertThat(extractOptionalEnumParameter(req, Club.class, "spin")).hasValue(Club.DANCE); } @Test - public void testOptionalExtractEnumValue_noValue_returnsEmpty() { + void testOptionalExtractEnumValue_noValue_returnsEmpty() { when(req.getParameter("spin")).thenReturn(""); assertThat(extractOptionalEnumParameter(req, Club.class, "spin")).isEmpty(); } @Test - public void testOptionalExtractEnumValue_nonExistentValue_throwsBadRequest() { + void testOptionalExtractEnumValue_nonExistentValue_throwsBadRequest() { when(req.getParameter("spin")).thenReturn("sing"); BadRequestException thrown = assertThrows( @@ -255,14 +256,14 @@ public class RequestParametersTest { } @Test - public void testExtractRequiredDatetimeParameter_correctValue_works() { + void testExtractRequiredDatetimeParameter_correctValue_works() { when(req.getParameter("timeParam")).thenReturn("2015-08-27T13:25:34.123Z"); assertThat(extractRequiredDatetimeParameter(req, "timeParam")) .isEqualTo(DateTime.parse("2015-08-27T13:25:34.123Z")); } @Test - public void testExtractRequiredDatetimeParameter_badValue_throwsBadRequest() { + void testExtractRequiredDatetimeParameter_badValue_throwsBadRequest() { when(req.getParameter("timeParam")).thenReturn("Tuesday at three o'clock"); BadRequestException thrown = assertThrows( @@ -271,14 +272,14 @@ public class RequestParametersTest { } @Test - public void testExtractOptionalDatetimeParameter_correctValue_works() { + void testExtractOptionalDatetimeParameter_correctValue_works() { when(req.getParameter("timeParam")).thenReturn("2015-08-27T13:25:34.123Z"); assertThat(extractOptionalDatetimeParameter(req, "timeParam")) .hasValue(DateTime.parse("2015-08-27T13:25:34.123Z")); } @Test - public void testExtractOptionalDatetimeParameter_badValue_throwsBadRequest() { + void testExtractOptionalDatetimeParameter_badValue_throwsBadRequest() { when(req.getParameter("timeParam")).thenReturn("Tuesday at three o'clock"); BadRequestException thrown = assertThrows( @@ -287,13 +288,13 @@ public class RequestParametersTest { } @Test - public void testExtractOptionalDatetimeParameter_empty_returnsEmpty() { + void testExtractOptionalDatetimeParameter_empty_returnsEmpty() { when(req.getParameter("timeParam")).thenReturn(""); assertThat(extractOptionalDatetimeParameter(req, "timeParam")).isEmpty(); } @Test - public void testExtractRequiredDatetimeParameter_noValue_throwsBadRequest() { + void testExtractRequiredDatetimeParameter_noValue_throwsBadRequest() { BadRequestException thrown = assertThrows( BadRequestException.class, () -> extractRequiredDatetimeParameter(req, "timeParam")); diff --git a/core/src/test/java/google/registry/request/ResponseImplTest.java b/core/src/test/java/google/registry/request/ResponseImplTest.java index 355b52066..b09cfe111 100644 --- a/core/src/test/java/google/registry/request/ResponseImplTest.java +++ b/core/src/test/java/google/registry/request/ResponseImplTest.java @@ -24,32 +24,29 @@ import static org.mockito.Mockito.when; import java.io.PrintWriter; import java.io.StringWriter; 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 ResponseImpl}. */ -@RunWith(JUnit4.class) -public class ResponseImplTest { +class ResponseImplTest { private final HttpServletResponse rsp = mock(HttpServletResponse.class); @Test - public void testSetStatus() { + void testSetStatus() { new ResponseImpl(rsp).setStatus(666); verify(rsp).setStatus(666); verifyNoMoreInteractions(rsp); } @Test - public void testSetContentType() { + void testSetContentType() { new ResponseImpl(rsp).setContentType(PLAIN_TEXT_UTF_8); verify(rsp).setContentType("text/plain; charset=utf-8"); verifyNoMoreInteractions(rsp); } @Test - public void testSetPayload() throws Exception { + void testSetPayload() throws Exception { StringWriter httpOutput = new StringWriter(); when(rsp.getWriter()).thenReturn(new PrintWriter(httpOutput)); new ResponseImpl(rsp).setPayload("hello world"); diff --git a/core/src/test/java/google/registry/request/RouterTest.java b/core/src/test/java/google/registry/request/RouterTest.java index 00f2c577b..fc8aa6ade 100644 --- a/core/src/test/java/google/registry/request/RouterTest.java +++ b/core/src/test/java/google/registry/request/RouterTest.java @@ -22,12 +22,9 @@ import static org.junit.Assert.assertThrows; import java.util.Optional; import java.util.concurrent.Callable; 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 Router}. */ -@RunWith(JUnit4.class) public final class RouterTest { //////////////////////////////////////////////////////////////////////////////////////////////// @@ -35,7 +32,7 @@ public final class RouterTest { public interface Empty {} @Test - public void testRoute_noRoutes_throws() { + void testRoute_noRoutes_throws() { IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class, () -> Router.create(Empty.class)); assertThat(thrown) @@ -56,7 +53,7 @@ public final class RouterTest { } @Test - public void testRoute_pathMatch_returnsRoute() { + void testRoute_pathMatch_returnsRoute() { Optional route = Router.create(SlothComponent.class).route("/sloth"); assertThat(route).isPresent(); assertThat(route.get().action().path()).isEqualTo("/sloth"); @@ -64,12 +61,12 @@ public final class RouterTest { } @Test - public void testRoute_pathMismatch_returnsEmpty() { + void testRoute_pathMismatch_returnsEmpty() { assertThat(Router.create(SlothComponent.class).route("/doge")).isEmpty(); } @Test - public void testRoute_pathIsAPrefix_notAllowedByDefault() { + void testRoute_pathIsAPrefix_notAllowedByDefault() { assertThat(Router.create(SlothComponent.class).route("/sloth/extra")).isEmpty(); } @@ -90,13 +87,13 @@ public final class RouterTest { } @Test - public void testRoute_prefixMatches_returnsRoute() { + void testRoute_prefixMatches_returnsRoute() { assertThat(Router.create(PrefixComponent.class).route("/prefix")).isPresent(); assertThat(Router.create(PrefixComponent.class).route("/prefix/extra")).isPresent(); } @Test - public void testRoute_prefixDoesNotMatch_returnsEmpty() { + void testRoute_prefixDoesNotMatch_returnsEmpty() { assertThat(Router.create(PrefixComponent.class).route("")).isEmpty(); assertThat(Router.create(PrefixComponent.class).route("/")).isEmpty(); assertThat(Router.create(PrefixComponent.class).route("/ulysses")).isEmpty(); @@ -121,21 +118,21 @@ public final class RouterTest { } @Test - public void testRoute_prefixAndLongPathMatch_returnsLongerPath() { + void testRoute_prefixAndLongPathMatch_returnsLongerPath() { Optional route = Router.create(LongPathComponent.class).route("/prefix/long"); assertThat(route).isPresent(); assertThat(route.get().action().path()).isEqualTo("/prefix/long"); } @Test - public void testRoute_prefixAndLongerPrefixMatch_returnsLongerPrefix() { + void testRoute_prefixAndLongerPrefixMatch_returnsLongerPrefix() { Optional route = Router.create(LongPathComponent.class).route("/prefix/longer"); assertThat(route).isPresent(); assertThat(route.get().action().path()).isEqualTo("/prefix/long"); } @Test - public void testRoute_onlyShortPrefixMatches_returnsShortPrefix() { + void testRoute_onlyShortPrefixMatches_returnsShortPrefix() { Optional route = Router.create(LongPathComponent.class).route("/prefix/cat"); assertThat(route).isPresent(); assertThat(route.get().action().path()).isEqualTo("/prefix"); @@ -149,7 +146,7 @@ public final class RouterTest { } @Test - public void testRoute_methodsInComponentAreIgnored_throws() { + void testRoute_methodsInComponentAreIgnored_throws() { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, () -> Router.create(WeirdMethodsComponent.class)); @@ -185,7 +182,7 @@ public final class RouterTest { } @Test - public void testCreate_twoTasksWithSameMethodAndPath_resultsInError() { + void testCreate_twoTasksWithSameMethodAndPath_resultsInError() { IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class, () -> Router.create(DuplicateComponent.class)); assertThat(thrown).hasMessageThat().contains("Multiple entries with same key"); diff --git a/core/src/test/java/google/registry/request/auth/AuthTest.java b/core/src/test/java/google/registry/request/auth/AuthTest.java index a3d53ef35..8d9259b45 100644 --- a/core/src/test/java/google/registry/request/auth/AuthTest.java +++ b/core/src/test/java/google/registry/request/auth/AuthTest.java @@ -14,16 +14,13 @@ package google.registry.request.auth; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.Test; /** Unit tests for {@link Auth}. */ -@RunWith(JUnit4.class) -public final class AuthTest { +final class AuthTest { @Test - public void testAuthValues_validConfig() { + void testAuthValues_validConfig() { for (Auth auth : Auth.values()) { RequestAuthenticator.checkAuthConfig(auth.authSettings()); } 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 705e65b8c..a441cc5ba 100644 --- a/core/src/test/java/google/registry/request/auth/AuthenticatedRegistrarAccessorTest.java +++ b/core/src/test/java/google/registry/request/auth/AuthenticatedRegistrarAccessorTest.java @@ -43,25 +43,25 @@ import java.util.Optional; import java.util.logging.Level; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; /** Unit tests for {@link AuthenticatedRegistrarAccessor}. */ -@RunWith(JUnit4.class) -public class AuthenticatedRegistrarAccessorTest { +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) +class AuthenticatedRegistrarAccessorTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); - @Rule public final InjectRule inject = new InjectRule(); - @Rule public final MockitoRule mocks = MockitoJUnit.rule(); + @RegisterExtension final InjectRule inject = new InjectRule(); @Mock private HttpServletRequest req; @Mock private HttpServletResponse rsp; @@ -86,7 +86,7 @@ public class AuthenticatedRegistrarAccessorTest { /** * Creates an AuthResult for a fake user. * - * The user will be a RegistrarContact for "TheRegistrar", but not for "NewRegistrar". + *

The user will be a RegistrarContact for "TheRegistrar", but not for "NewRegistrar". * * @param isAdmin if true, the user is an administrator for the app-engine project. */ @@ -103,8 +103,8 @@ public class AuthenticatedRegistrarAccessorTest { isAdmin)); } - @Before - public void before() { + @BeforeEach + void beforeEach() { when(lazyGroupsConnection.get()).thenReturn(groupsConnection); LoggerConfig.getConfig(AuthenticatedRegistrarAccessor.class).addHandler(testLogHandler); // persistResource(loadRegistrar(ADMIN_CLIENT_ID)); @@ -125,14 +125,14 @@ public class AuthenticatedRegistrarAccessorTest { when(groupsConnection.isMemberOfGroup(any(), any())).thenReturn(false); } - @After - public void after() { + @AfterEach + void afterEach() { LoggerConfig.getConfig(AuthenticatedRegistrarAccessor.class).removeHandler(testLogHandler); } /** Users are owners for registrars if and only if they are in the contacts for that registrar. */ @Test - public void getAllClientIdWithAccess_user() { + void getAllClientIdWithAccess_user() { AuthenticatedRegistrarAccessor registrarAccessor = new AuthenticatedRegistrarAccessor( USER, ADMIN_CLIENT_ID, SUPPORT_GROUP, lazyGroupsConnection); @@ -144,7 +144,7 @@ public class AuthenticatedRegistrarAccessorTest { /** Logged out users don't have access to anything. */ @Test - public void getAllClientIdWithAccess_loggedOutUser() { + void getAllClientIdWithAccess_loggedOutUser() { AuthenticatedRegistrarAccessor registrarAccessor = new AuthenticatedRegistrarAccessor( NO_USER, ADMIN_CLIENT_ID, SUPPORT_GROUP, lazyGroupsConnection); @@ -165,7 +165,7 @@ public class AuthenticatedRegistrarAccessorTest { *

(in other words - they don't have OWNER access only to REAL registrars owned by others) */ @Test - public void getAllClientIdWithAccess_gaeAdmin() { + void getAllClientIdWithAccess_gaeAdmin() { AuthenticatedRegistrarAccessor registrarAccessor = new AuthenticatedRegistrarAccessor( GAE_ADMIN, ADMIN_CLIENT_ID, SUPPORT_GROUP, lazyGroupsConnection); @@ -197,7 +197,7 @@ public class AuthenticatedRegistrarAccessorTest { *

(in other words - they don't have OWNER access only to REAL registrars owned by others) */ @Test - public void getAllClientIdWithAccess_userInSupportGroup() { + void getAllClientIdWithAccess_userInSupportGroup() { when(groupsConnection.isMemberOfGroup("user@gmail.com", SUPPORT_GROUP.get())).thenReturn(true); AuthenticatedRegistrarAccessor registrarAccessor = new AuthenticatedRegistrarAccessor( @@ -220,7 +220,7 @@ public class AuthenticatedRegistrarAccessorTest { /** Empty Support group email - skips check and doesn't generate the lazy. */ @Test - public void getAllClientIdWithAccess_emptySupportEmail_works() { + void getAllClientIdWithAccess_emptySupportEmail_works() { AuthenticatedRegistrarAccessor registrarAccessor = new AuthenticatedRegistrarAccessor( USER, ADMIN_CLIENT_ID, Optional.empty(), lazyGroupsConnection); @@ -233,7 +233,7 @@ public class AuthenticatedRegistrarAccessorTest { /** Support group check throws - continue anyway. */ @Test - public void getAllClientIdWithAccess_throwingGroupCheck_stillWorks() { + void getAllClientIdWithAccess_throwingGroupCheck_stillWorks() { when(groupsConnection.isMemberOfGroup(any(), any())).thenThrow(new RuntimeException("blah")); AuthenticatedRegistrarAccessor registrarAccessor = new AuthenticatedRegistrarAccessor( @@ -247,7 +247,7 @@ public class AuthenticatedRegistrarAccessorTest { /** Fail loading registrar if user doesn't have access to it. */ @Test - public void testGetRegistrarForUser_noAccess_isNotAdmin() { + void testGetRegistrarForUser_noAccess_isNotAdmin() { expectGetRegistrarFailure( REAL_CLIENT_ID_WITHOUT_CONTACT, USER, @@ -256,7 +256,7 @@ public class AuthenticatedRegistrarAccessorTest { } @Test - public void testGetRegistrarForUser_registrarIsDisabled_isNotAdmin() { + void testGetRegistrarForUser_registrarIsDisabled_isNotAdmin() { persistResource( Registrar.loadByClientId("TheRegistrar") .get() @@ -272,7 +272,7 @@ public class AuthenticatedRegistrarAccessorTest { /** Fail loading registrar if user doesn't have access to it, even if it's not REAL. */ @Test - public void testGetRegistrarForUser_noAccess_isNotAdmin_notReal() { + void testGetRegistrarForUser_noAccess_isNotAdmin_notReal() { expectGetRegistrarFailure( OTE_CLIENT_ID_WITHOUT_CONTACT, USER, @@ -282,7 +282,7 @@ public class AuthenticatedRegistrarAccessorTest { /** Fail loading registrar if there's no user associated with the request. */ @Test - public void testGetRegistrarForUser_noUser() { + void testGetRegistrarForUser_noUser() { expectGetRegistrarFailure( CLIENT_ID_WITH_CONTACT, NO_USER, @@ -292,7 +292,7 @@ public class AuthenticatedRegistrarAccessorTest { /** Succeed loading registrar if user has access to it. */ @Test - public void testGetRegistrarForUser_inContacts_isNotAdmin() throws Exception { + void testGetRegistrarForUser_inContacts_isNotAdmin() throws Exception { expectGetRegistrarSuccess( CLIENT_ID_WITH_CONTACT, USER, @@ -302,7 +302,7 @@ public class AuthenticatedRegistrarAccessorTest { /** Succeed loading registrar if admin with access. */ @Test - public void testGetRegistrarForUser_inContacts_isAdmin() throws Exception { + void testGetRegistrarForUser_inContacts_isAdmin() throws Exception { expectGetRegistrarSuccess( CLIENT_ID_WITH_CONTACT, GAE_ADMIN, @@ -312,7 +312,7 @@ public class AuthenticatedRegistrarAccessorTest { /** Succeed loading registrar for admin even if they aren't on the approved contacts list. */ @Test - public void testGetRegistrarForUser_notInContacts_isAdmin() throws Exception { + void testGetRegistrarForUser_notInContacts_isAdmin() throws Exception { expectGetRegistrarSuccess( REAL_CLIENT_ID_WITHOUT_CONTACT, GAE_ADMIN, @@ -321,7 +321,7 @@ public class AuthenticatedRegistrarAccessorTest { } @Test - public void testGetRegistrarForUser_registrarIsDisabled_isAdmin() throws Exception { + void testGetRegistrarForUser_registrarIsDisabled_isAdmin() throws Exception { persistResource( Registrar.loadByClientId("NewRegistrar") .get() @@ -337,7 +337,7 @@ public class AuthenticatedRegistrarAccessorTest { /** Succeed loading non-REAL registrar for admin. */ @Test - public void testGetRegistrarForUser_notInContacts_isAdmin_notReal() throws Exception { + void testGetRegistrarForUser_notInContacts_isAdmin_notReal() throws Exception { expectGetRegistrarSuccess( OTE_CLIENT_ID_WITHOUT_CONTACT, GAE_ADMIN, @@ -347,7 +347,7 @@ public class AuthenticatedRegistrarAccessorTest { /** Fail loading registrar even if admin, if registrar doesn't exist. */ @Test - public void testGetRegistrarForUser_doesntExist_isAdmin() { + void testGetRegistrarForUser_doesntExist_isAdmin() { expectGetRegistrarFailure( "BadClientId", GAE_ADMIN, @@ -382,7 +382,7 @@ public class AuthenticatedRegistrarAccessorTest { /** guessClientIdForUser returns the first clientId in getAllClientIdWithRoles. */ @Test - public void testGuessClientIdForUser_hasAccess_returnsFirst() throws Exception { + void testGuessClientIdForUser_hasAccess_returnsFirst() throws Exception { AuthenticatedRegistrarAccessor registrarAccessor = AuthenticatedRegistrarAccessor.createForTesting( ImmutableSetMultimap.of( @@ -395,7 +395,7 @@ public class AuthenticatedRegistrarAccessorTest { /** If a user doesn't have access to any registrars, guess fails. */ @Test - public void testGuessClientIdForUser_noAccess_fails() { + void testGuessClientIdForUser_noAccess_fails() { AuthenticatedRegistrarAccessor registrarAccessor = AuthenticatedRegistrarAccessor.createForTesting(ImmutableSetMultimap.of()); @@ -405,7 +405,7 @@ public class AuthenticatedRegistrarAccessorTest { } @Test - public void testNullness() { + void testNullness() { new NullPointerTester() .setDefault(HttpServletRequest.class, req) .setDefault(HttpServletResponse.class, rsp) 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 1a648512b..ccbe3a50c 100644 --- a/core/src/test/java/google/registry/request/auth/LegacyAuthenticationMechanismTest.java +++ b/core/src/test/java/google/registry/request/auth/LegacyAuthenticationMechanismTest.java @@ -28,23 +28,22 @@ import google.registry.security.XsrfTokenManager; import google.registry.testing.AppEngineRule; import google.registry.testing.FakeClock; 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.ExtendWith; +import org.junit.jupiter.api.extension.RegisterExtension; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; -@RunWith(JUnit4.class) -public final class LegacyAuthenticationMechanismTest { +/** Unit tests for {@link LegacyAuthenticationMechanism}. */ +@ExtendWith(MockitoExtension.class) +final class LegacyAuthenticationMechanismTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); - - @Rule public final MockitoRule mocks = MockitoJUnit.rule(); + @RegisterExtension + final AppEngineRule appEngine = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @Mock private UserService userService; @Mock private HttpServletRequest req; @@ -54,8 +53,8 @@ public final class LegacyAuthenticationMechanismTest { private LegacyAuthenticationMechanism legacyAuthenticationMechanism; private String goodToken; - @Before - public void setUp() { + @BeforeEach + void beforeEach() { xsrfTokenManager = new XsrfTokenManager(clock, userService); legacyAuthenticationMechanism = new LegacyAuthenticationMechanism(userService, xsrfTokenManager); @@ -64,8 +63,8 @@ public final class LegacyAuthenticationMechanismTest { goodToken = xsrfTokenManager.generateToken("email@example.com"); } - @After - public void tearDown() { + @AfterEach + void afterEach() { // Make sure we didn't use getParameter or getInputStream or any of the other "with side // effects" getters unexpectedly. But allow "no side effect" getters. // @@ -83,14 +82,15 @@ public final class LegacyAuthenticationMechanismTest { } @Test - public void testAuthenticate_notLoggedIn() { + @MockitoSettings(strictness = Strictness.LENIENT) + void testAuthenticate_notLoggedIn() { when(userService.isUserLoggedIn()).thenReturn(false); assertThat(legacyAuthenticationMechanism.authenticate(req).authLevel()) .isEqualTo(AuthLevel.NONE); } @Test - public void testAuthenticate_loggedInSafeMethod_get() { + void testAuthenticate_loggedInSafeMethod_get() { when(userService.isUserLoggedIn()).thenReturn(true); when(req.getMethod()).thenReturn("GET"); assertThat(legacyAuthenticationMechanism.authenticate(req).authLevel()) @@ -98,7 +98,7 @@ public final class LegacyAuthenticationMechanismTest { } @Test - public void testAuthenticate_loggedInSafeMethod_head() { + void testAuthenticate_loggedInSafeMethod_head() { when(userService.isUserLoggedIn()).thenReturn(true); when(req.getMethod()).thenReturn("HEAD"); assertThat(legacyAuthenticationMechanism.authenticate(req).authLevel()) @@ -106,7 +106,8 @@ public final class LegacyAuthenticationMechanismTest { } @Test - public void testAuthenticate_loggedInUnsafeMethod_post_noXsrfToken() { + @MockitoSettings(strictness = Strictness.LENIENT) + void testAuthenticate_loggedInUnsafeMethod_post_noXsrfToken() { when(userService.isUserLoggedIn()).thenReturn(true); when(req.getMethod()).thenReturn("POST"); assertThat(legacyAuthenticationMechanism.authenticate(req).authLevel()) @@ -118,7 +119,7 @@ public final class LegacyAuthenticationMechanismTest { } @Test - public void testAuthenticate_loggedInUnsafeMethod_post_goodTokenInHeader() { + void testAuthenticate_loggedInUnsafeMethod_post_goodTokenInHeader() { when(userService.isUserLoggedIn()).thenReturn(true); when(req.getMethod()).thenReturn("POST"); when(req.getHeader("X-CSRF-Token")).thenReturn(goodToken); @@ -131,7 +132,8 @@ public final class LegacyAuthenticationMechanismTest { } @Test - public void testAuthenticate_loggedInUnsafeMethod_post_badTokenInHeader() { + @MockitoSettings(strictness = Strictness.LENIENT) + void testAuthenticate_loggedInUnsafeMethod_post_badTokenInHeader() { when(userService.isUserLoggedIn()).thenReturn(true); when(req.getMethod()).thenReturn("POST"); when(req.getHeader("X-CSRF-Token")).thenReturn("bad"); @@ -144,7 +146,7 @@ public final class LegacyAuthenticationMechanismTest { } @Test - public void testAuthenticate_loggedInUnsafeMethod_post_goodTokenInParam() { + void testAuthenticate_loggedInUnsafeMethod_post_goodTokenInParam() { when(userService.isUserLoggedIn()).thenReturn(true); when(req.getMethod()).thenReturn("POST"); when(req.getParameter("xsrfToken")).thenReturn(goodToken); @@ -157,7 +159,8 @@ public final class LegacyAuthenticationMechanismTest { } @Test - public void testAuthenticate_loggedInUnsafeMethod_post_badTokenInParam() { + @MockitoSettings(strictness = Strictness.LENIENT) + void testAuthenticate_loggedInUnsafeMethod_post_badTokenInParam() { when(userService.isUserLoggedIn()).thenReturn(true); when(req.getMethod()).thenReturn("POST"); when(req.getParameter("xsrfToken")).thenReturn("bad"); 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 42b108599..7d514d7c4 100644 --- a/core/src/test/java/google/registry/request/auth/RequestAuthenticatorTest.java +++ b/core/src/test/java/google/registry/request/auth/RequestAuthenticatorTest.java @@ -36,18 +36,15 @@ import google.registry.testing.FakeOAuthService; import google.registry.testing.FakeUserService; import java.util.Optional; import javax.servlet.http.HttpServletRequest; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; /** Unit tests for {@link RequestAuthenticator}. */ -@RunWith(JUnit4.class) -public class RequestAuthenticatorTest { +class RequestAuthenticatorTest { + + @RegisterExtension final AppEngineRule appEngine = AppEngineRule.builder().build(); - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().build(); private static final AuthSettings AUTH_NONE = AuthSettings.create( ImmutableList.of(AuthMethod.INTERNAL), AuthLevel.NONE, @@ -112,8 +109,8 @@ public class RequestAuthenticatorTest { "test-client-id", ImmutableList.of("test-scope1", "test-scope2", "nontest-scope")); - @Before - public void before() { + @BeforeEach + void beforeEach() { when(req.getMethod()).thenReturn("POST"); } @@ -135,7 +132,7 @@ public class RequestAuthenticatorTest { } @Test - public void testNoAuthNeeded_noneFound() { + void testNoAuthNeeded_noneFound() { Optional authResult = runTest(mockUserService, AUTH_NONE); verifyNoInteractions(mockUserService); @@ -144,7 +141,7 @@ public class RequestAuthenticatorTest { } @Test - public void testNoAuthNeeded_internalFound() { + void testNoAuthNeeded_internalFound() { when(req.getHeader("X-AppEngine-QueueName")).thenReturn("__cron"); Optional authResult = runTest(mockUserService, AUTH_NONE); @@ -156,7 +153,7 @@ public class RequestAuthenticatorTest { } @Test - public void testInternalAuth_notInvokedInternally() { + void testInternalAuth_notInvokedInternally() { Optional authResult = runTest(mockUserService, AUTH_INTERNAL_OR_ADMIN); verifyNoInteractions(mockUserService); @@ -164,7 +161,7 @@ public class RequestAuthenticatorTest { } @Test - public void testInternalAuth_success() { + void testInternalAuth_success() { when(req.getHeader("X-AppEngine-QueueName")).thenReturn("__cron"); Optional authResult = runTest(mockUserService, AUTH_INTERNAL_OR_ADMIN); @@ -176,14 +173,14 @@ public class RequestAuthenticatorTest { } @Test - public void testAnyUserAnyMethod_notLoggedIn() { + void testAnyUserAnyMethod_notLoggedIn() { Optional authResult = runTest(fakeUserService, AUTH_ANY_USER_ANY_METHOD); assertThat(authResult).isEmpty(); } @Test - public void testAnyUserAnyMethod_xsrfFailure() { + void testAnyUserAnyMethod_xsrfFailure() { fakeUserService.setUser(testUser, false); Optional authResult = runTest(fakeUserService, AUTH_ANY_USER_ANY_METHOD); @@ -192,7 +189,7 @@ public class RequestAuthenticatorTest { } @Test - public void testAnyUserAnyMethod_success() { + void testAnyUserAnyMethod_success() { fakeUserService.setUser(testUser, false /* isAdmin */); when(req.getHeader(XsrfTokenManager.X_CSRF_TOKEN)) .thenReturn(xsrfTokenManager.generateToken(testUser.getEmail())); @@ -208,7 +205,7 @@ public class RequestAuthenticatorTest { } @Test - public void testAnyUserAnyMethod_xsrfNotRequiredForGet() { + void testAnyUserAnyMethod_xsrfNotRequiredForGet() { fakeUserService.setUser(testUser, false); when(req.getMethod()).thenReturn("GET"); @@ -222,14 +219,14 @@ public class RequestAuthenticatorTest { } @Test - public void testAdminUserAnyMethod_notLoggedIn() { + void testAdminUserAnyMethod_notLoggedIn() { Optional authResult = runTest(fakeUserService, AUTH_ADMIN_USER_ANY_METHOD); assertThat(authResult).isEmpty(); } @Test - public void testAdminUserAnyMethod_notAdminUser() { + void testAdminUserAnyMethod_notAdminUser() { fakeUserService.setUser(testUser, false /* isAdmin */); Optional authResult = runTest(fakeUserService, AUTH_ADMIN_USER_ANY_METHOD); @@ -238,7 +235,7 @@ public class RequestAuthenticatorTest { } @Test - public void testAdminUserAnyMethod_xsrfFailure() { + void testAdminUserAnyMethod_xsrfFailure() { fakeUserService.setUser(testUser, true); Optional authResult = runTest(fakeUserService, AUTH_ADMIN_USER_ANY_METHOD); @@ -247,7 +244,7 @@ public class RequestAuthenticatorTest { } @Test - public void testAdminUserAnyMethod_success() { + void testAdminUserAnyMethod_success() { fakeUserService.setUser(testUser, true /* isAdmin */); when(req.getHeader(XsrfTokenManager.X_CSRF_TOKEN)) .thenReturn(xsrfTokenManager.generateToken(testUser.getEmail())); @@ -263,7 +260,7 @@ public class RequestAuthenticatorTest { } @Test - public void testOAuth_success() { + void testOAuth_success() { fakeOAuthService.setUser(testUser); fakeOAuthService.setOAuthEnabled(true); when(req.getHeader(AUTHORIZATION)).thenReturn("Bearer TOKEN"); @@ -285,7 +282,7 @@ public class RequestAuthenticatorTest { } @Test - public void testOAuthAdmin_success() { + void testOAuthAdmin_success() { fakeOAuthService.setUser(testUser); fakeOAuthService.setUserAdmin(true); fakeOAuthService.setOAuthEnabled(true); @@ -308,7 +305,7 @@ public class RequestAuthenticatorTest { } @Test - public void testOAuthMissingAuthenticationToken_failure() { + void testOAuthMissingAuthenticationToken_failure() { fakeOAuthService.setUser(testUser); fakeOAuthService.setOAuthEnabled(true); @@ -318,7 +315,7 @@ public class RequestAuthenticatorTest { } @Test - public void testOAuthClientIdMismatch_failure() { + void testOAuthClientIdMismatch_failure() { fakeOAuthService.setUser(testUser); fakeOAuthService.setOAuthEnabled(true); fakeOAuthService.setClientId("wrong-client-id"); @@ -330,7 +327,7 @@ public class RequestAuthenticatorTest { } @Test - public void testOAuthNoScopes_failure() { + void testOAuthNoScopes_failure() { fakeOAuthService.setUser(testUser); fakeOAuthService.setOAuthEnabled(true); fakeOAuthService.setAuthorizedScopes(); @@ -342,7 +339,7 @@ public class RequestAuthenticatorTest { } @Test - public void testOAuthMissingScope_failure() { + void testOAuthMissingScope_failure() { fakeOAuthService.setUser(testUser); fakeOAuthService.setOAuthEnabled(true); fakeOAuthService.setAuthorizedScopes("test-scope1", "test-scope3"); @@ -354,7 +351,7 @@ public class RequestAuthenticatorTest { } @Test - public void testOAuthExtraScope_success() { + void testOAuthExtraScope_success() { fakeOAuthService.setUser(testUser); fakeOAuthService.setOAuthEnabled(true); fakeOAuthService.setAuthorizedScopes("test-scope1", "test-scope2", "test-scope3"); @@ -377,7 +374,7 @@ public class RequestAuthenticatorTest { } @Test - public void testAnyUserNoLegacy_failureWithLegacyUser() { + void testAnyUserNoLegacy_failureWithLegacyUser() { fakeUserService.setUser(testUser, false /* isAdmin */); Optional authResult = runTest(fakeUserService, AUTH_ANY_USER_NO_LEGACY); @@ -386,7 +383,7 @@ public class RequestAuthenticatorTest { } @Test - public void testCheckAuthConfig_NoMethods_failure() { + void testCheckAuthConfig_NoMethods_failure() { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, @@ -395,7 +392,7 @@ public class RequestAuthenticatorTest { } @Test - public void testCheckAuthConfig_WrongMethodOrdering_failure() { + void testCheckAuthConfig_WrongMethodOrdering_failure() { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, @@ -406,7 +403,7 @@ public class RequestAuthenticatorTest { } @Test - public void testCheckAuthConfig_DuplicateMethods_failure() { + void testCheckAuthConfig_DuplicateMethods_failure() { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, @@ -417,7 +414,7 @@ public class RequestAuthenticatorTest { } @Test - public void testCheckAuthConfig_InternalWithUser_failure() { + void testCheckAuthConfig_InternalWithUser_failure() { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, @@ -428,7 +425,7 @@ public class RequestAuthenticatorTest { } @Test - public void testCheckAuthConfig_WronglyIgnoringUser_failure() { + void testCheckAuthConfig_WronglyIgnoringUser_failure() { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, 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 1589b9586..4c17625bc 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 @@ -60,11 +60,10 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; @ExtendWith(MockitoExtension.class) -public final class ConsoleRegistrarCreatorActionTest { +final class ConsoleRegistrarCreatorActionTest { @RegisterExtension - public final AppEngineRule appEngineRule = - AppEngineRule.builder().withDatastoreAndCloudSql().build(); + final AppEngineRule appEngineRule = AppEngineRule.builder().withDatastoreAndCloudSql().build(); @RegisterExtension @Order(value = Integer.MAX_VALUE)