diff --git a/javatests/google/registry/dns/writer/clouddns/CloudDnsWriterTest.java b/javatests/google/registry/dns/writer/clouddns/CloudDnsWriterTest.java index e259c5bb5..075ff23a3 100644 --- a/javatests/google/registry/dns/writer/clouddns/CloudDnsWriterTest.java +++ b/javatests/google/registry/dns/writer/clouddns/CloudDnsWriterTest.java @@ -45,6 +45,7 @@ import google.registry.model.domain.secdns.DelegationSignerData; import google.registry.model.eppcommon.StatusValue; import google.registry.model.host.HostResource; import google.registry.testing.AppEngineRule; +import google.registry.testing.MockitoJUnitRule; import google.registry.util.Retrier; import google.registry.util.SystemClock; import google.registry.util.SystemSleeper; @@ -57,16 +58,19 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Matchers; import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; /** Test case for {@link CloudDnsWriter}. */ -@RunWith(MockitoJUnitRunner.class) +@RunWith(JUnit4.class) public class CloudDnsWriterTest { + @Rule public final AppEngineRule appEngine = AppEngineRule.builder().withDatastore().build(); + @Rule public final MockitoJUnitRule mocks = MockitoJUnitRule.create(); + private static final Inet4Address IPv4 = (Inet4Address) InetAddresses.forString("127.0.0.1"); private static final Inet6Address IPv6 = (Inet6Address) InetAddresses.forString("::1"); private static final Duration DEFAULT_A_TTL = Duration.standardSeconds(11); @@ -79,11 +83,10 @@ public class CloudDnsWriterTest { @Mock private Dns.Changes.Create createChangeRequest; @Captor ArgumentCaptor zoneNameCaptor; @Captor ArgumentCaptor changeCaptor; + private CloudDnsWriter writer; private ImmutableSet stubZone; - @Rule public final AppEngineRule appEngine = AppEngineRule.builder().withDatastore().build(); - /* * Because of multi-threading in the CloudDnsWriter, we need to return a different instance of * List for every request, with its own ArgumentCaptor. Otherwise, we can't separate the arguments diff --git a/javatests/google/registry/dns/writer/dnsupdate/DnsUpdateWriterTest.java b/javatests/google/registry/dns/writer/dnsupdate/DnsUpdateWriterTest.java index 8f75ed9cc..2ee7312af 100644 --- a/javatests/google/registry/dns/writer/dnsupdate/DnsUpdateWriterTest.java +++ b/javatests/google/registry/dns/writer/dnsupdate/DnsUpdateWriterTest.java @@ -45,6 +45,7 @@ import google.registry.model.ofy.Ofy; import google.registry.testing.AppEngineRule; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; +import google.registry.testing.MockitoJUnitRule; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; @@ -54,10 +55,10 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; import org.xbill.DNS.Flags; import org.xbill.DNS.Message; import org.xbill.DNS.Opcode; @@ -69,21 +70,18 @@ import org.xbill.DNS.Type; import org.xbill.DNS.Update; /** Unit tests for {@link DnsUpdateWriter}. */ -@RunWith(MockitoJUnitRunner.class) +@RunWith(JUnit4.class) public class DnsUpdateWriterTest { @Rule public final AppEngineRule appEngine = AppEngineRule.builder().withDatastore().withTaskQueue().build(); - @Rule - public final InjectRule inject = new InjectRule(); + @Rule public final MockitoJUnitRule mocks = MockitoJUnitRule.create(); + @Rule public final InjectRule inject = new InjectRule(); - @Mock - private DnsMessageTransport mockResolver; - - @Captor - private ArgumentCaptor updateCaptor; + @Mock private DnsMessageTransport mockResolver; + @Captor private ArgumentCaptor updateCaptor; private final FakeClock clock = new FakeClock(DateTime.parse("1971-01-01TZ")); diff --git a/javatests/google/registry/export/sheet/SyncRegistrarsSheetTest.java b/javatests/google/registry/export/sheet/SyncRegistrarsSheetTest.java index 9c12f66b1..19614e830 100644 --- a/javatests/google/registry/export/sheet/SyncRegistrarsSheetTest.java +++ b/javatests/google/registry/export/sheet/SyncRegistrarsSheetTest.java @@ -21,7 +21,6 @@ import static google.registry.config.RegistryConfig.getDefaultRegistrarWhoisServ import static google.registry.model.common.Cursor.CursorType.SYNC_REGISTRAR_SHEET; import static google.registry.model.ofy.ObjectifyService.ofy; import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.deleteResource; import static google.registry.testing.DatastoreHelper.persistNewRegistrar; import static google.registry.testing.DatastoreHelper.persistResource; import static google.registry.testing.DatastoreHelper.persistSimpleResources; @@ -41,35 +40,30 @@ import google.registry.model.registrar.Registrar; import google.registry.model.registrar.RegistrarAddress; import google.registry.model.registrar.RegistrarContact; import google.registry.testing.AppEngineRule; +import google.registry.testing.DatastoreHelper; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; +import google.registry.testing.MockitoJUnitRule; 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.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; /** Unit tests for {@link SyncRegistrarsSheet}. */ -@RunWith(MockitoJUnitRunner.class) +@RunWith(JUnit4.class) public class SyncRegistrarsSheetTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder() - .withDatastore() - .build(); + @Rule public final AppEngineRule appEngine = AppEngineRule.builder().withDatastore().build(); + @Rule public final MockitoJUnitRule mocks = MockitoJUnitRule.create(); + @Rule public final InjectRule inject = new InjectRule(); - @Rule - public final InjectRule inject = new InjectRule(); - - @Captor - private ArgumentCaptor>> rowsCaptor; - - @Mock - private SheetSynchronizer sheetSynchronizer; + @Captor private ArgumentCaptor>> rowsCaptor; + @Mock private SheetSynchronizer sheetSynchronizer; private final FakeClock clock = new FakeClock(DateTime.now(UTC)); @@ -85,9 +79,7 @@ public class SyncRegistrarsSheetTest { inject.setStaticField(Ofy.class, "clock", clock); createTld("example"); // Remove Registrar entities created by AppEngineRule. - for (Registrar registrar : Registrar.loadAll()) { - deleteResource(registrar); - } + Registrar.loadAll().forEach(DatastoreHelper::deleteResource); } @Test diff --git a/javatests/google/registry/flows/EppControllerTest.java b/javatests/google/registry/flows/EppControllerTest.java index 77e343eda..31ba85bb1 100644 --- a/javatests/google/registry/flows/EppControllerTest.java +++ b/javatests/google/registry/flows/EppControllerTest.java @@ -44,6 +44,7 @@ import google.registry.monitoring.whitebox.BigQueryMetricsEnqueuer; import google.registry.monitoring.whitebox.EppMetric; import google.registry.testing.AppEngineRule; import google.registry.testing.FakeClock; +import google.registry.testing.MockitoJUnitRule; import google.registry.testing.ShardableTestCase; import google.registry.util.Clock; import google.registry.xml.ValidationMode; @@ -58,17 +59,17 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; import org.mockito.ArgumentCaptor; import org.mockito.Matchers; import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; /** Unit tests for {@link EppController}. */ -@RunWith(MockitoJUnitRunner.class) +@RunWith(JUnit4.class) public class EppControllerTest extends ShardableTestCase { - @Rule - public AppEngineRule appEngineRule = new AppEngineRule.Builder().withDatastore().build(); + @Rule public AppEngineRule appEngineRule = new AppEngineRule.Builder().withDatastore().build(); + @Rule public final MockitoJUnitRule mocks = MockitoJUnitRule.create(); @Mock SessionMetadata sessionMetadata; @Mock TransportCredentials transportCredentials; diff --git a/javatests/google/registry/keyring/kms/KmsConnectionImplTest.java b/javatests/google/registry/keyring/kms/KmsConnectionImplTest.java index c752ca6ed..075fa9c47 100644 --- a/javatests/google/registry/keyring/kms/KmsConnectionImplTest.java +++ b/javatests/google/registry/keyring/kms/KmsConnectionImplTest.java @@ -36,19 +36,23 @@ import com.google.api.services.cloudkms.v1.model.KeyRing; import com.google.api.services.cloudkms.v1.model.UpdateCryptoKeyPrimaryVersionRequest; import google.registry.testing.FakeClock; import google.registry.testing.FakeSleeper; +import google.registry.testing.MockitoJUnitRule; 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.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; -@RunWith(MockitoJUnitRunner.class) +@RunWith(JUnit4.class) public class KmsConnectionImplTest { + @Rule public final MockitoJUnitRule mocks = MockitoJUnitRule.create(); + @Mock private CloudKMS kms; @Mock private CloudKMS.Projects kmsProjects; @Mock private CloudKMS.Projects.Locations kmsLocations; @@ -72,8 +76,6 @@ public class KmsConnectionImplTest { @Mock private CloudKMS.Projects.Locations.KeyRings.CryptoKeys.Encrypt kmsCryptoKeysEncrypt; @Mock private CloudKMS.Projects.Locations.KeyRings.CryptoKeys.Decrypt kmsCryptoKeysDecrypt; - private final Retrier retrier = new Retrier(new FakeSleeper(new FakeClock()), 3); - @Captor private ArgumentCaptor keyRing; @Captor private ArgumentCaptor cryptoKey; @Captor private ArgumentCaptor cryptoKeyVersion; @@ -86,6 +88,8 @@ public class KmsConnectionImplTest { @Captor private ArgumentCaptor updateCryptoKeyPrimaryVersionRequest; + private final Retrier retrier = new Retrier(new FakeSleeper(new FakeClock()), 3); + @Before public void setUp() throws Exception { when(kms.projects()).thenReturn(kmsProjects); diff --git a/javatests/google/registry/monitoring/whitebox/MetricsExportActionTest.java b/javatests/google/registry/monitoring/whitebox/MetricsExportActionTest.java index 9d12d2159..3d1f55095 100644 --- a/javatests/google/registry/monitoring/whitebox/MetricsExportActionTest.java +++ b/javatests/google/registry/monitoring/whitebox/MetricsExportActionTest.java @@ -37,18 +37,16 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; import org.mockito.Matchers; -import org.mockito.runners.MockitoJUnitRunner; /** Unit tests for {@link MetricsExportAction}. */ -@RunWith(MockitoJUnitRunner.class) +@RunWith(JUnit4.class) public class MetricsExportActionTest { @Rule - public final AppEngineRule appEngine = AppEngineRule.builder() - .withDatastore() - .withTaskQueue() - .build(); + public final AppEngineRule appEngine = + AppEngineRule.builder().withDatastore().withTaskQueue().build(); private final BigqueryFactory bigqueryFactory = mock(BigqueryFactory.class); private final Bigquery bigquery = mock(Bigquery.class); diff --git a/javatests/google/registry/testing/MockitoJUnitRule.java b/javatests/google/registry/testing/MockitoJUnitRule.java new file mode 100644 index 000000000..d7e632835 --- /dev/null +++ b/javatests/google/registry/testing/MockitoJUnitRule.java @@ -0,0 +1,45 @@ +// Copyright 2018 The Nomulus Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package google.registry.testing; + +import org.junit.rules.MethodRule; +import org.junit.runners.model.FrameworkMethod; +import org.junit.runners.model.Statement; +import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; + +/** A rule that initializes Mockito-annotated fields (e.g. mocks and captors). */ +// TODO(b/77815684): Replace with native version from Mockito v1.10 once we upgrade to that. +public class MockitoJUnitRule implements MethodRule { + + public static MockitoJUnitRule create() { + return new MockitoJUnitRule(); + } + + @Override + public Statement apply(Statement base, FrameworkMethod method, Object target) { + return new Statement() { + @Override + public void evaluate() throws Throwable { + MockitoAnnotations.initMocks(target); + try { + base.evaluate(); + } finally { + Mockito.validateMockitoUsage(); + } + } + }; + } +} diff --git a/javatests/google/registry/tmch/NordnUploadActionTest.java b/javatests/google/registry/tmch/NordnUploadActionTest.java index e80d14a02..e13b7e2ad 100644 --- a/javatests/google/registry/tmch/NordnUploadActionTest.java +++ b/javatests/google/registry/tmch/NordnUploadActionTest.java @@ -48,6 +48,7 @@ import google.registry.model.registry.Registry; import google.registry.testing.AppEngineRule; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; +import google.registry.testing.MockitoJUnitRule; import google.registry.testing.TaskQueueHelper.TaskMatcher; import google.registry.util.UrlFetchException; import java.net.URL; @@ -57,13 +58,13 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; /** Unit tests for {@link NordnUploadAction}. */ -@RunWith(MockitoJUnitRunner.class) +@RunWith(JUnit4.class) public class NordnUploadActionTest { private static final String CLAIMS_CSV = "1,2000-01-01T00:00:00.000Z,1\n" @@ -79,21 +80,15 @@ public class NordnUploadActionTest { private static final String LOCATION_URL = "http://trololol"; @Rule - public final AppEngineRule appEngine = AppEngineRule.builder() - .withDatastore() - .withTaskQueue() - .build(); + public final AppEngineRule appEngine = + AppEngineRule.builder().withDatastore().withTaskQueue().build(); - @Rule - public final InjectRule inject = new InjectRule(); - @Mock - private URLFetchService fetchService; + @Rule public final MockitoJUnitRule mocks = MockitoJUnitRule.create(); + @Rule public final InjectRule inject = new InjectRule(); - @Captor - private ArgumentCaptor httpRequestCaptor; - - @Mock - private HTTPResponse httpResponse; + @Mock private URLFetchService fetchService; + @Mock private HTTPResponse httpResponse; + @Captor private ArgumentCaptor httpRequestCaptor; private final FakeClock clock = new FakeClock(DateTime.parse("2000-01-01TZ")); private final LordnRequestInitializer lordnRequestInitializer = new LordnRequestInitializer(); diff --git a/javatests/google/registry/tmch/NordnVerifyActionTest.java b/javatests/google/registry/tmch/NordnVerifyActionTest.java index f8137ce75..bc0a7a246 100644 --- a/javatests/google/registry/tmch/NordnVerifyActionTest.java +++ b/javatests/google/registry/tmch/NordnVerifyActionTest.java @@ -36,19 +36,20 @@ import google.registry.model.registry.Registry; import google.registry.request.HttpException.ConflictException; import google.registry.testing.AppEngineRule; import google.registry.testing.FakeResponse; +import google.registry.testing.MockitoJUnitRule; import java.net.URL; import java.util.Optional; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; /** Unit tests for {@link NordnVerifyAction}. */ -@RunWith(MockitoJUnitRunner.class) +@RunWith(JUnit4.class) public class NordnVerifyActionTest { private static final String CSV_DATA = "1,2012-08-16T00:00:00.0Z,3\n" @@ -82,18 +83,14 @@ public class NordnVerifyActionTest { + "bogpog,4611\n"; @Rule - public final AppEngineRule appEngine = AppEngineRule.builder() - .withDatastore() - .withTaskQueue() - .build(); - @Mock - private URLFetchService fetchService; + public final AppEngineRule appEngine = + AppEngineRule.builder().withDatastore().withTaskQueue().build(); - @Captor - private ArgumentCaptor httpRequestCaptor; + @Rule public final MockitoJUnitRule mocks = MockitoJUnitRule.create(); - @Mock - private HTTPResponse httpResponse; + @Mock private URLFetchService fetchService; + @Mock private HTTPResponse httpResponse; + @Captor private ArgumentCaptor httpRequestCaptor; private final FakeResponse response = new FakeResponse(); private final LordnRequestInitializer lordnRequestInitializer = new LordnRequestInitializer(); diff --git a/javatests/google/registry/tmch/TmchActionTestCase.java b/javatests/google/registry/tmch/TmchActionTestCase.java index 081bd78e4..4d75a29e1 100644 --- a/javatests/google/registry/tmch/TmchActionTestCase.java +++ b/javatests/google/registry/tmch/TmchActionTestCase.java @@ -25,41 +25,30 @@ import google.registry.testing.AppEngineRule; import google.registry.testing.BouncyCastleProviderRule; import google.registry.testing.FakeClock; import google.registry.testing.InjectRule; +import google.registry.testing.MockitoJUnitRule; import org.junit.Before; import org.junit.Rule; import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; /** Common code for unit tests of classes that extend {@link Marksdb}. */ -@RunWith(MockitoJUnitRunner.class) +@RunWith(JUnit4.class) public class TmchActionTestCase { static final String MARKSDB_LOGIN = "lolcat:attack"; - static final String MARKSDB_LOGIN_BASE64 = "bG9sY2F0OmF0dGFjaw=="; static final String MARKSDB_URL = "http://127.0.0.1/love"; - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder() - .withDatastore() - .build(); + @Rule public final AppEngineRule appEngine = AppEngineRule.builder().withDatastore().build(); + @Rule public final MockitoJUnitRule mocks = MockitoJUnitRule.create(); + @Rule public final BouncyCastleProviderRule bouncy = new BouncyCastleProviderRule(); + @Rule public final InjectRule inject = new InjectRule(); - @Rule - public final BouncyCastleProviderRule bouncy = new BouncyCastleProviderRule(); - - @Rule - public final InjectRule inject = new InjectRule(); - - @Mock - URLFetchService fetchService; - - @Captor - ArgumentCaptor httpRequest; - - @Mock - HTTPResponse httpResponse; + @Mock URLFetchService fetchService; + @Mock HTTPResponse httpResponse; + @Captor ArgumentCaptor httpRequest; final FakeClock clock = new FakeClock(); final Marksdb marksdb = new Marksdb(); diff --git a/javatests/google/registry/tools/CommandTestCase.java b/javatests/google/registry/tools/CommandTestCase.java index bdb475006..910599aeb 100644 --- a/javatests/google/registry/tools/CommandTestCase.java +++ b/javatests/google/registry/tools/CommandTestCase.java @@ -31,6 +31,7 @@ import com.google.common.reflect.TypeToken; import google.registry.model.poll.PollMessage; import google.registry.testing.AppEngineRule; import google.registry.testing.CertificateSamples; +import google.registry.testing.MockitoJUnitRule; import google.registry.tools.params.ParameterFactory; import java.io.ByteArrayOutputStream; import java.io.File; @@ -41,14 +42,14 @@ import org.junit.Before; import org.junit.Rule; import org.junit.rules.TemporaryFolder; import org.junit.runner.RunWith; -import org.mockito.runners.MockitoJUnitRunner; +import org.junit.runners.JUnit4; /** * Base class for all command tests. * * @param the command type */ -@RunWith(MockitoJUnitRunner.class) +@RunWith(JUnit4.class) public abstract class CommandTestCase { private final ByteArrayOutputStream stdout = new ByteArrayOutputStream(); @@ -57,10 +58,10 @@ public abstract class CommandTestCase { protected C command; @Rule - public final AppEngineRule appEngine = AppEngineRule.builder() - .withDatastore() - .withTaskQueue() - .build(); + public final AppEngineRule appEngine = + AppEngineRule.builder().withDatastore().withTaskQueue().build(); + + @Rule public final MockitoJUnitRule mocks = MockitoJUnitRule.create(); @Rule public TemporaryFolder tmpDir = new TemporaryFolder(); diff --git a/javatests/google/registry/tools/CreateCdnsTldTest.java b/javatests/google/registry/tools/CreateCdnsTldTest.java index 99eaa9151..296edef96 100644 --- a/javatests/google/registry/tools/CreateCdnsTldTest.java +++ b/javatests/google/registry/tools/CreateCdnsTldTest.java @@ -25,13 +25,11 @@ import java.io.IOException; import java.security.GeneralSecurityException; import org.junit.Before; import org.junit.Test; -import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; -@RunWith(MockitoJUnitRunner.class) +/** Unit tests for {@link CreateCdnsTld}. */ public class CreateCdnsTldTest extends CommandTestCase { @Mock Dns dnsService; diff --git a/javatests/google/registry/tools/ListDomainsCommandTest.java b/javatests/google/registry/tools/ListDomainsCommandTest.java index 91c66848e..53c0bd617 100644 --- a/javatests/google/registry/tools/ListDomainsCommandTest.java +++ b/javatests/google/registry/tools/ListDomainsCommandTest.java @@ -22,15 +22,12 @@ import com.google.common.collect.ImmutableList; import google.registry.tools.server.ListDomainsAction; import java.util.List; import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.runners.MockitoJUnitRunner; /** * Unit tests for {@link ListDomainsCommand}. * * @see ListObjectsCommandTestCase */ -@RunWith(MockitoJUnitRunner.class) public class ListDomainsCommandTest extends ListObjectsCommandTestCase { @Override diff --git a/javatests/google/registry/ui/server/registrar/RegistrarPaymentActionTest.java b/javatests/google/registry/ui/server/registrar/RegistrarPaymentActionTest.java index 73558cf21..c51832f67 100644 --- a/javatests/google/registry/ui/server/registrar/RegistrarPaymentActionTest.java +++ b/javatests/google/registry/ui/server/registrar/RegistrarPaymentActionTest.java @@ -38,6 +38,7 @@ import google.registry.request.auth.AuthLevel; import google.registry.request.auth.AuthResult; import google.registry.request.auth.UserAuthInfo; import google.registry.testing.AppEngineRule; +import google.registry.testing.MockitoJUnitRule; import java.math.BigDecimal; import javax.servlet.http.HttpServletRequest; import org.joda.money.CurrencyUnit; @@ -45,40 +46,27 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; /** Tests for {@link RegistrarPaymentAction}. */ -@RunWith(MockitoJUnitRunner.class) +@RunWith(JUnit4.class) public class RegistrarPaymentActionTest { - @Rule - public final AppEngineRule appEngine = AppEngineRule.builder().withDatastore().build(); + @Rule public final AppEngineRule appEngine = AppEngineRule.builder().withDatastore().build(); + @Rule public final MockitoJUnitRule mocks = MockitoJUnitRule.create(); - @Mock - private BraintreeGateway braintreeGateway; - - @Mock - private TransactionGateway transactionGateway; - - @Mock - private Result result; - - @Mock - private Transaction transaction; - - @Mock - private ValidationErrors validationErrors; + @Mock private BraintreeGateway braintreeGateway; + @Mock private TransactionGateway transactionGateway; + @Mock private Result result; + @Mock private Transaction transaction; + @Mock private ValidationErrors validationErrors; + @Captor private ArgumentCaptor transactionRequestCaptor; private final SessionUtils sessionUtils = mock(SessionUtils.class); - private final User user = new User("marla.singer@example.com", "gmail.com", "12345"); - - @Captor - private ArgumentCaptor transactionRequestCaptor; - private final RegistrarPaymentAction paymentAction = new RegistrarPaymentAction(); @Before