From 52c3d1337e099425f459d1a6114b1e5878a36145 Mon Sep 17 00:00:00 2001 From: Apekshit Sharma Date: Mon, 2 Oct 2017 22:53:34 -0700 Subject: [PATCH] HBASE-18925 Update mockito dependency from mockito-all:1.10.19 to mockito-core:2.1.0 for JDK8 support. Last mockito-all release was in Dec'14. Mockito-core has had many releases since then. From mockito's site: - "Mockito does not produce the mockito-all artifact anymore ; this one was primarily aimed at ant users, and contained other dependencies. We felt it was time to move on and remove such artifacts as they cause problems in dependency management system like maven or gradle." - anyX() and any(SomeType.class) matchers now reject nulls and check type. Change-Id: I65a7d02c8dfc3a69db5da3cb1afa33af9ab8a7bf --- hbase-client/pom.xml | 4 +- .../hadoop/hbase/client/TestClientScanner.java | 15 ++---- .../hbase/security/TestHBaseSaslRpcClient.java | 2 +- hbase-common/pom.xml | 2 +- hbase-endpoint/pom.xml | 2 +- hbase-examples/pom.xml | 2 +- hbase-mapreduce/pom.xml | 2 +- .../apache/hadoop/hbase/mapred/TestRowCounter.java | 4 +- hbase-metrics-api/pom.xml | 2 +- hbase-metrics/pom.xml | 2 +- hbase-rest/pom.xml | 2 +- hbase-rsgroup/pom.xml | 2 +- hbase-server/pom.xml | 2 +- .../org/apache/hadoop/hbase/http/HttpServer.java | 8 ++++ .../apache/hadoop/hbase/http/TestHttpServer.java | 54 ++++++++++------------ .../normalizer/TestSimpleRegionNormalizer.java | 2 +- .../TestTableSpaceQuotaViolationNotifier.java | 4 +- .../hadoop/hbase/regionserver/TestBulkLoad.java | 13 ++++-- .../hadoop/hbase/regionserver/TestCompaction.java | 3 +- .../hadoop/hbase/regionserver/TestHRegion.java | 13 +++--- .../TestRegionServerRegionSpaceUseReport.java | 2 +- .../compactions/TestStripeCompactionPolicy.java | 17 ++++--- .../apache/hadoop/hbase/tool/TestCanaryTool.java | 36 +++++++++------ hbase-shaded/hbase-shaded-check-invariants/pom.xml | 2 +- pom.xml | 22 ++++----- src/main/asciidoc/_chapters/unit_testing.adoc | 4 +- 26 files changed, 114 insertions(+), 109 deletions(-) diff --git a/hbase-client/pom.xml b/hbase-client/pom.xml index d9aa006fef..87dbc298b4 100644 --- a/hbase-client/pom.xml +++ b/hbase-client/pom.xml @@ -196,7 +196,7 @@ org.mockito - mockito-all + mockito-core test @@ -285,7 +285,7 @@ com.sun.jersey jersey-json - + javax.servlet servlet-api diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientScanner.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientScanner.java index 9d21d1ae9c..96f1aa2dc4 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientScanner.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestClientScanner.java @@ -143,8 +143,7 @@ public class TestClientScanner { private int count = 0; @Override public Result[] answer(InvocationOnMock invocation) throws Throwable { - ScannerCallableWithReplicas callable = invocation.getArgumentAt(0, - ScannerCallableWithReplicas.class); + ScannerCallableWithReplicas callable = invocation.getArgument(0); switch (count) { case 0: // initialize count++; @@ -204,8 +203,7 @@ public class TestClientScanner { private int count = 0; @Override public Result[] answer(InvocationOnMock invocation) throws Throwable { - ScannerCallableWithReplicas callable = invocation.getArgumentAt(0, - ScannerCallableWithReplicas.class); + ScannerCallableWithReplicas callable = invocation.getArgument(0); switch (count) { case 0: // initialize count++; @@ -265,8 +263,7 @@ public class TestClientScanner { private int count = 0; @Override public Result[] answer(InvocationOnMock invocation) throws Throwable { - ScannerCallableWithReplicas callable = invocation.getArgumentAt(0, - ScannerCallableWithReplicas.class); + ScannerCallableWithReplicas callable = invocation.getArgument(0); switch (count) { case 0: // initialize count++; @@ -338,8 +335,7 @@ public class TestClientScanner { private int count = 0; @Override public Result[] answer(InvocationOnMock invocation) throws Throwable { - ScannerCallableWithReplicas callable = invocation.getArgumentAt(0, - ScannerCallableWithReplicas.class); + ScannerCallableWithReplicas callable = invocation.getArgument(0); switch (count) { case 0: // initialize count++; @@ -403,8 +399,7 @@ public class TestClientScanner { private int count = 0; @Override public Result[] answer(InvocationOnMock invocation) throws Throwable { - ScannerCallableWithReplicas callable = invocation.getArgumentAt(0, - ScannerCallableWithReplicas.class); + ScannerCallableWithReplicas callable = invocation.getArgument(0); switch (count) { case 0: // initialize count++; diff --git a/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestHBaseSaslRpcClient.java b/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestHBaseSaslRpcClient.java index 33f7872e8c..84d672db96 100644 --- a/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestHBaseSaslRpcClient.java +++ b/hbase-client/src/test/java/org/apache/hadoop/hbase/security/TestHBaseSaslRpcClient.java @@ -113,7 +113,7 @@ public class TestHBaseSaslRpcClient { final SaslClientCallbackHandler saslClCallbackHandler = new SaslClientCallbackHandler(token); saslClCallbackHandler.handle(callbackArray); verify(nameCallback).setName(anyString()); - verify(realmCallback).setText(anyString()); + verify(realmCallback).setText(any()); verify(passwordCallback).setPassword(any(char[].class)); } diff --git a/hbase-common/pom.xml b/hbase-common/pom.xml index 9bf40324a3..93a09b3fcb 100644 --- a/hbase-common/pom.xml +++ b/hbase-common/pom.xml @@ -265,7 +265,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-endpoint/pom.xml b/hbase-endpoint/pom.xml index fdb4784fcc..3c6500c6b4 100644 --- a/hbase-endpoint/pom.xml +++ b/hbase-endpoint/pom.xml @@ -207,7 +207,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-examples/pom.xml b/hbase-examples/pom.xml index c72a874f9f..bec784117f 100644 --- a/hbase-examples/pom.xml +++ b/hbase-examples/pom.xml @@ -194,7 +194,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-mapreduce/pom.xml b/hbase-mapreduce/pom.xml index eaf6aea5d2..2b40b6d670 100644 --- a/hbase-mapreduce/pom.xml +++ b/hbase-mapreduce/pom.xml @@ -262,7 +262,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapred/TestRowCounter.java b/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapred/TestRowCounter.java index 4ebd8bf4ab..234045ab93 100644 --- a/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapred/TestRowCounter.java +++ b/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapred/TestRowCounter.java @@ -21,8 +21,8 @@ package org.apache.hadoop.hbase.mapred; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyInt; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; @@ -89,7 +89,7 @@ public class TestRowCounter { mock(OutputCollector.class), reporter); Mockito.verify(reporter, times(iterationNumber)).incrCounter( - any(Enum.class), anyInt()); + any(Enum.class), anyLong()); } @Test diff --git a/hbase-metrics-api/pom.xml b/hbase-metrics-api/pom.xml index 1313d198b8..3baa33034f 100644 --- a/hbase-metrics-api/pom.xml +++ b/hbase-metrics-api/pom.xml @@ -98,7 +98,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-metrics/pom.xml b/hbase-metrics/pom.xml index 70653dd523..f82ad54eac 100644 --- a/hbase-metrics/pom.xml +++ b/hbase-metrics/pom.xml @@ -111,7 +111,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-rest/pom.xml b/hbase-rest/pom.xml index 0b188095c1..f85143b5f0 100644 --- a/hbase-rest/pom.xml +++ b/hbase-rest/pom.xml @@ -330,7 +330,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-rsgroup/pom.xml b/hbase-rsgroup/pom.xml index 8a26ead8a9..ee75ef92e6 100644 --- a/hbase-rsgroup/pom.xml +++ b/hbase-rsgroup/pom.xml @@ -164,7 +164,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-server/pom.xml b/hbase-server/pom.xml index ad080f18d7..cbcf67b2f6 100644 --- a/hbase-server/pom.xml +++ b/hbase-server/pom.xml @@ -638,7 +638,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java index 726595bd11..29be0da94c 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java @@ -32,6 +32,7 @@ import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import javax.servlet.Filter; import javax.servlet.FilterChain; @@ -45,6 +46,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletResponse; +import com.google.common.annotations.VisibleForTesting; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.HadoopIllegalArgumentException; @@ -161,6 +163,11 @@ public class HttpServer implements FilterContainer { private final List listeners = Lists.newArrayList(); + @VisibleForTesting + public List getServerConnectors() { + return listeners.stream().map(info -> info.listener).collect(Collectors.toList()); + } + protected final WebAppContext webAppContext; protected final boolean findPort; protected final Map defaultContexts = new HashMap<>(); @@ -1011,6 +1018,7 @@ public class HttpServer implements FilterContainer { * Open the main listener for the server * @throws Exception */ + @VisibleForTesting void openListeners() throws Exception { for (ListenerInfo li : listeners) { ServerConnector listener = li.listener; diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/http/TestHttpServer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/http/TestHttpServer.java index e9a56ff748..fddb2a4842 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/http/TestHttpServer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/http/TestHttpServer.java @@ -67,7 +67,6 @@ import org.junit.Ignore; import org.junit.Test; import org.junit.experimental.categories.Category; import org.mockito.Mockito; -import org.mockito.internal.util.reflection.Whitebox; @Category({MiscTests.class, SmallTests.class}) public class TestHttpServer extends HttpServerFunctionalTest { @@ -76,11 +75,11 @@ public class TestHttpServer extends HttpServerFunctionalTest { private static URL baseUrl; // jetty 9.4.x needs this many threads to start, even in the small. static final int MAX_THREADS = 16; - + @SuppressWarnings("serial") public static class EchoMapServlet extends HttpServlet { @Override - public void doGet(HttpServletRequest request, + public void doGet(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { PrintWriter out = response.getWriter(); @@ -100,13 +99,13 @@ public class TestHttpServer extends HttpServerFunctionalTest { out.print('\n'); } out.close(); - } + } } @SuppressWarnings("serial") public static class EchoServlet extends HttpServlet { @Override - public void doGet(HttpServletRequest request, + public void doGet(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { PrintWriter out = response.getWriter(); @@ -122,7 +121,7 @@ public class TestHttpServer extends HttpServerFunctionalTest { out.print('\n'); } out.close(); - } + } } @SuppressWarnings("serial") @@ -139,7 +138,7 @@ public class TestHttpServer extends HttpServerFunctionalTest { @SuppressWarnings("serial") public static class HtmlContentServlet extends HttpServlet { @Override - public void doGet(HttpServletRequest request, + public void doGet(HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { response.setContentType("text/html"); @@ -163,11 +162,11 @@ public class TestHttpServer extends HttpServerFunctionalTest { baseUrl = getServerURL(server); LOG.info("HTTP server started: "+ baseUrl); } - + @AfterClass public static void cleanup() throws Exception { server.stop(); } - + /** Test the maximum number of threads cannot be exceeded. */ @Test public void testMaxThreads() throws Exception { int clientThreads = MAX_THREADS * 10; @@ -199,24 +198,24 @@ public class TestHttpServer extends HttpServerFunctionalTest { ready.await(); start.countDown(); } - + @Test public void testEcho() throws Exception { - assertEquals("a:b\nc:d\n", + assertEquals("a:b\nc:d\n", readOutput(new URL(baseUrl, "/echo?a=b&c=d"))); - assertEquals("a:b\nc<:d\ne:>\n", - readOutput(new URL(baseUrl, "/echo?a=b&c<=d&e=>"))); + assertEquals("a:b\nc<:d\ne:>\n", + readOutput(new URL(baseUrl, "/echo?a=b&c<=d&e=>"))); } - + /** Test the echo map servlet that uses getParameterMap. */ @Test public void testEchoMap() throws Exception { - assertEquals("a:b\nc:d\n", + assertEquals("a:b\nc:d\n", readOutput(new URL(baseUrl, "/echomap?a=b&c=d"))); - assertEquals("a:b,>\nc<:d\n", + assertEquals("a:b,>\nc<:d\n", readOutput(new URL(baseUrl, "/echomap?a=b&c<=d&a=>"))); } - /** - * Test that verifies headers can be up to 64K long. + /** + * Test that verifies headers can be up to 64K long. * The test adds a 63K header leaving 1K for other headers. * This is because the header buffer setting is for ALL headers, * names and values included. */ @@ -275,7 +274,7 @@ public class TestHttpServer extends HttpServerFunctionalTest { * Dummy filter that mimics as an authentication filter. Obtains user identity * from the request parameter user.name. Wraps around the request so that * request.getRemoteUser() returns the user identity. - * + * */ public static class DummyServletFilter implements Filter { @Override @@ -317,7 +316,7 @@ public class TestHttpServer extends HttpServerFunctionalTest { * Access a URL and get the corresponding return Http status code. The URL * will be accessed as the passed user, by sending user.name request * parameter. - * + * * @param urlstring * @param userName * @return @@ -352,7 +351,7 @@ public class TestHttpServer extends HttpServerFunctionalTest { * Verify the access for /logs, /stacks, /conf, /logLevel and /metrics * servlets, when authentication filters are set, but authorization is not * enabled. - * @throws Exception + * @throws Exception */ @Test @Ignore @@ -388,7 +387,7 @@ public class TestHttpServer extends HttpServerFunctionalTest { /** * Verify the administrator access for /logs, /stacks, /conf, /logLevel and * /metrics servlets. - * + * * @throws Exception */ @Test @@ -431,7 +430,7 @@ public class TestHttpServer extends HttpServerFunctionalTest { } myServer.stop(); } - + @Test public void testRequestQuoterWithNull() throws Exception { HttpServletRequest request = Mockito.mock(HttpServletRequest.class); @@ -534,7 +533,7 @@ public class TestHttpServer extends HttpServerFunctionalTest { // hang onto this one for a bit more testing HttpServer myServer = checkBindAddress("localhost", 0, false); HttpServer myServer2 = null; - try { + try { int port = myServer.getConnectorAddress(0).getPort(); // it's already in use, true = expect a higher port myServer2 = checkBindAddress("localhost", port, true); @@ -551,16 +550,13 @@ public class TestHttpServer extends HttpServerFunctionalTest { } } } - + private HttpServer checkBindAddress(String host, int port, boolean findPort) throws Exception { HttpServer server = createServer(host, port); try { // not bound, ephemeral should return requested port (0 for ephemeral) - List listeners = (List) Whitebox.getInternalState(server, - "listeners"); - ServerConnector listener = (ServerConnector) Whitebox.getInternalState( - listeners.get(0), "listener"); + ServerConnector listener = server.getServerConnectors().get(0); assertEquals(port, listener.getPort()); // verify hostname is what was given diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/normalizer/TestSimpleRegionNormalizer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/normalizer/TestSimpleRegionNormalizer.java index ab6d7d0ffb..b8e7ad019d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/normalizer/TestSimpleRegionNormalizer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/normalizer/TestSimpleRegionNormalizer.java @@ -366,7 +366,7 @@ public class TestSimpleRegionNormalizer { getRegionsLoad().get(region.getKey())).thenReturn(regionLoad); } try { - when(masterRpcServices.isSplitOrMergeEnabled(any(RpcController.class), + when(masterRpcServices.isSplitOrMergeEnabled(any(), any(IsSplitOrMergeEnabledRequest.class))).thenReturn( IsSplitOrMergeEnabledResponse.newBuilder().setEnabled(true).build()); } catch (ServiceException se) { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestTableSpaceQuotaViolationNotifier.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestTableSpaceQuotaViolationNotifier.java index 6626ab5c4c..c062319d7e 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestTableSpaceQuotaViolationNotifier.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/quotas/TestTableSpaceQuotaViolationNotifier.java @@ -92,7 +92,7 @@ public class TestTableSpaceQuotaViolationNotifier { /** * Quick hack to verify a Mutation with one column. */ - private static class SingleCellMutationMatcher extends ArgumentMatcher { + private static class SingleCellMutationMatcher implements ArgumentMatcher { private final Mutation expected; private SingleCellMutationMatcher(Mutation expected) { @@ -100,7 +100,7 @@ public class TestTableSpaceQuotaViolationNotifier { } @Override - public boolean matches(Object argument) { + public boolean matches(T argument) { if (!expected.getClass().isAssignableFrom(argument.getClass())) { return false; } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestBulkLoad.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestBulkLoad.java index 32c5e13a10..96a6bb6603 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestBulkLoad.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestBulkLoad.java @@ -59,10 +59,13 @@ import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; -import static org.mockito.Matchers.*; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import static org.mockito.hamcrest.MockitoHamcrest.argThat; + import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; @@ -113,7 +116,7 @@ public class TestBulkLoad { familyName, storeFileNames)), any(boolean.class))).thenAnswer(new Answer() { public Object answer(InvocationOnMock invocation) { - WALKey walKey = invocation.getArgumentAt(1, WALKey.class); + WALKey walKey = invocation.getArgument(1); MultiVersionConcurrencyControl mvcc = walKey.getMvcc(); if (mvcc != null) { MultiVersionConcurrencyControl.WriteEntry we = mvcc.begin(); @@ -138,7 +141,7 @@ public class TestBulkLoad { any(WALKey.class), argThat(bulkLogWalEditType(WALEdit.BULK_LOAD)), any(boolean.class))).thenAnswer(new Answer() { public Object answer(InvocationOnMock invocation) { - WALKey walKey = invocation.getArgumentAt(1, WALKey.class); + WALKey walKey = invocation.getArgument(1); MultiVersionConcurrencyControl mvcc = walKey.getMvcc(); if (mvcc != null) { MultiVersionConcurrencyControl.WriteEntry we = mvcc.begin(); @@ -157,7 +160,7 @@ public class TestBulkLoad { any(WALKey.class), argThat(bulkLogWalEditType(WALEdit.BULK_LOAD)), any(boolean.class))).thenAnswer(new Answer() { public Object answer(InvocationOnMock invocation) { - WALKey walKey = invocation.getArgumentAt(1, WALKey.class); + WALKey walKey = invocation.getArgument(1); MultiVersionConcurrencyControl mvcc = walKey.getMvcc(); if (mvcc != null) { MultiVersionConcurrencyControl.WriteEntry we = mvcc.begin(); @@ -177,7 +180,7 @@ public class TestBulkLoad { any(WALKey.class), argThat(bulkLogWalEditType(WALEdit.BULK_LOAD)), any(boolean.class))).thenAnswer(new Answer() { public Object answer(InvocationOnMock invocation) { - WALKey walKey = invocation.getArgumentAt(1, WALKey.class); + WALKey walKey = invocation.getArgument(1); MultiVersionConcurrencyControl mvcc = walKey.getMvcc(); if (mvcc != null) { MultiVersionConcurrencyControl.WriteEntry we = mvcc.begin(); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompaction.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompaction.java index 349815f324..9a4402ebb1 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompaction.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompaction.java @@ -562,8 +562,7 @@ public class TestCompaction { any(ThroughputController.class), any(User.class))).then(new Answer() { @Override public Boolean answer(InvocationOnMock invocation) throws Throwable { - invocation.getArgumentAt(0, CompactionContext.class).compact( - invocation.getArgumentAt(2, ThroughputController.class), null); + invocation.getArgument(0).compact(invocation.getArgument(2), null); return true; } }); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java index a7793f6045..ef1446da8b 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java @@ -1100,19 +1100,19 @@ public class TestHRegion { } } - class IsFlushWALMarker extends ArgumentMatcher { + class IsFlushWALMarker implements ArgumentMatcher { volatile FlushAction[] actions; public IsFlushWALMarker(FlushAction... actions) { this.actions = actions; } @Override - public boolean matches(Object edit) { - List cells = ((WALEdit)edit).getCells(); + public boolean matches(WALEdit edit) { + List cells = edit.getCells(); if (cells.isEmpty()) { return false; } if (WALEdit.isMetaEditFamily(cells.get(0))) { - FlushDescriptor desc = null; + FlushDescriptor desc; try { desc = WALEdit.getFlushDescriptor(cells.get(0)); } catch (IOException e) { @@ -2432,8 +2432,7 @@ public class TestHRegion { Answer answer = new Answer() { @Override public Boolean answer(InvocationOnMock invocation) throws Throwable { - MiniBatchOperationInProgress mb = invocation.getArgumentAt(0, - MiniBatchOperationInProgress.class); + MiniBatchOperationInProgress mb = invocation.getArgument(0); mb.addOperationsFromCP(0, new Mutation[]{addPut}); return false; } @@ -5953,7 +5952,7 @@ public class TestHRegion { thenAnswer(new Answer() { @Override public Long answer(InvocationOnMock invocation) throws Throwable { - WALKey key = invocation.getArgumentAt(1, WALKey.class); + WALKey key = invocation.getArgument(1); MultiVersionConcurrencyControl.WriteEntry we = key.getMvcc().begin(); key.setWriteEntry(we); return 1L; diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerRegionSpaceUseReport.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerRegionSpaceUseReport.java index 44ab24ec2a..a0a8e6a4bf 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerRegionSpaceUseReport.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionServerRegionSpaceUseReport.java @@ -87,7 +87,7 @@ public class TestRegionServerRegionSpaceUseReport { public void testNullMap() { // Call the real method to convert the map into a protobuf HRegionServer rs = mock(HRegionServer.class); - doCallRealMethod().when(rs).buildRegionSpaceUseReportRequest(any(Map.class)); + doCallRealMethod().when(rs).buildRegionSpaceUseReportRequest(any()); doCallRealMethod().when(rs).convertRegionSize(any(RegionInfo.class), anyLong()); rs.buildRegionSpaceUseReportRequest(null); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestStripeCompactionPolicy.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestStripeCompactionPolicy.java index 1249fee6ce..ee5e9d2606 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestStripeCompactionPolicy.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/compactions/TestStripeCompactionPolicy.java @@ -196,7 +196,7 @@ public class TestStripeCompactionPolicy { si = createStripesWithSizes(0, 0, new Long[] { 5L }, new Long[] { 3L, 2L, 2L, 1L }, new Long[] { 3L, 2L, 2L }); verifySingleStripeCompaction(policy, si, 1, null); - // Or with smallest files, if the count is the same + // Or with smallest files, if the count is the same si = createStripesWithSizes(0, 0, new Long[] { 3L, 3L, 3L }, new Long[] { 3L, 1L, 2L }, new Long[] { 3L, 2L, 2L }); verifySingleStripeCompaction(policy, si, 1, null); @@ -234,7 +234,7 @@ public class TestStripeCompactionPolicy { scr.execute(sc, NoLimitThroughputController.INSTANCE, null); verify(sc, only()).compact(eq(scr.getRequest()), anyInt(), anyLong(), aryEq(OPEN_KEY), aryEq(OPEN_KEY), aryEq(OPEN_KEY), aryEq(OPEN_KEY), - any(NoLimitThroughputController.class), any(User.class)); + any(NoLimitThroughputController.class), any()); } @Test @@ -548,9 +548,8 @@ public class TestStripeCompactionPolicy { scr.execute(sc, NoLimitThroughputController.INSTANCE, null); verify(sc, times(1)).compact(eq(scr.getRequest()), argThat(new ArgumentMatcher>() { @Override - public boolean matches(Object argument) { - @SuppressWarnings("unchecked") - List other = (List) argument; + public boolean matches(List argument) { + List other = argument; if (other.size() != boundaries.size()) return false; for (int i = 0; i < other.size(); ++i) { if (!Bytes.equals(other.get(i), boundaries.get(i))) return false; @@ -559,7 +558,7 @@ public class TestStripeCompactionPolicy { } }), dropDeletesFrom == null ? isNull(byte[].class) : aryEq(dropDeletesFrom), dropDeletesTo == null ? isNull(byte[].class) : aryEq(dropDeletesTo), - any(NoLimitThroughputController.class), any(User.class)); + any(NoLimitThroughputController.class), any()); } /** @@ -571,7 +570,7 @@ public class TestStripeCompactionPolicy { * @param count Expected # of resulting stripes, null if not checked. * @param size Expected target stripe size, null if not checked. * @param start Left boundary of the compaction. - * @param righr Right boundary of the compaction. + * @param end Right boundary of the compaction. */ private void verifyCompaction(StripeCompactionPolicy policy, StripeInformationProvider si, Collection sfs, Boolean dropDeletes, Integer count, Long size, @@ -585,7 +584,7 @@ public class TestStripeCompactionPolicy { count == null ? anyInt() : eq(count.intValue()), size == null ? anyLong() : eq(size.longValue()), aryEq(start), aryEq(end), dropDeletesMatcher(dropDeletes, start), dropDeletesMatcher(dropDeletes, end), - any(NoLimitThroughputController.class), any(User.class)); + any(NoLimitThroughputController.class), any()); } /** Verify arbitrary flush. */ @@ -609,7 +608,7 @@ public class TestStripeCompactionPolicy { private byte[] dropDeletesMatcher(Boolean dropDeletes, byte[] value) { - return dropDeletes == null ? any(byte[].class) + return dropDeletes == null ? any() : (dropDeletes.booleanValue() ? aryEq(value) : isNull(byte[].class)); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/tool/TestCanaryTool.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/tool/TestCanaryTool.java index ae34d1b74b..a083af5cf9 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/tool/TestCanaryTool.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/tool/TestCanaryTool.java @@ -39,18 +39,23 @@ import org.junit.rules.TestName; import org.junit.runner.RunWith; import org.mockito.ArgumentMatcher; import org.mockito.Mock; +import org.mockito.hamcrest.MockitoHamcrest; import org.mockito.runners.MockitoJUnitRunner; import java.util.concurrent.ExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; import static org.junit.Assert.assertNotEquals; +import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.Matchers.anyLong; import static org.mockito.Matchers.eq; import static org.mockito.Matchers.isA; -import static org.mockito.Matchers.argThat; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.atLeastOnce; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; @RunWith(MockitoJUnitRunner.class) @Category({MediumTests.class}) @@ -151,14 +156,14 @@ public class TestCanaryTool { // One table's timeout is set for 0 ms and thus, should lead to an error. verify(mockAppender, times(1)).doAppend(argThat(new ArgumentMatcher() { @Override - public boolean matches(Object argument) { + public boolean matches(LoggingEvent argument) { return ((LoggingEvent) argument).getRenderedMessage().contains("exceeded the configured read timeout."); } })); verify(mockAppender, times(2)).doAppend(argThat(new ArgumentMatcher() { @Override - public boolean matches(Object argument) { - return ((LoggingEvent) argument).getRenderedMessage().contains("The configured read timeout was"); + public boolean matches(LoggingEvent argument) { + return argument.getRenderedMessage().contains("The configured read timeout was"); } })); } @@ -173,12 +178,13 @@ public class TestCanaryTool { assertEquals(0, ToolRunner.run(testingUtility.getConfiguration(), canary, args)); assertNotEquals("verify non-null write latency", null, sink.getWriteLatency()); assertNotEquals("verify non-zero write latency", 0L, sink.getWriteLatency()); - verify(mockAppender, times(1)).doAppend(argThat(new ArgumentMatcher() { - @Override - public boolean matches(Object argument) { - return ((LoggingEvent) argument).getRenderedMessage().contains("The configured write timeout was"); - } - })); + verify(mockAppender, times(1)).doAppend(argThat( + new ArgumentMatcher() { + @Override + public boolean matches(LoggingEvent argument) { + return argument.getRenderedMessage().contains("The configured write timeout was"); + } + })); } //no table created, so there should be no regions @@ -187,8 +193,8 @@ public class TestCanaryTool { runRegionserverCanary(); verify(mockAppender).doAppend(argThat(new ArgumentMatcher() { @Override - public boolean matches(Object argument) { - return ((LoggingEvent) argument).getRenderedMessage().contains("Regionserver not serving any regions"); + public boolean matches(LoggingEvent argument) { + return argument.getRenderedMessage().contains("Regionserver not serving any regions"); } })); } @@ -201,8 +207,8 @@ public class TestCanaryTool { runRegionserverCanary(); verify(mockAppender, never()).doAppend(argThat(new ArgumentMatcher() { @Override - public boolean matches(Object argument) { - return ((LoggingEvent) argument).getRenderedMessage().contains("Regionserver not serving any regions"); + public boolean matches(LoggingEvent argument) { + return argument.getRenderedMessage().contains("Regionserver not serving any regions"); } })); } diff --git a/hbase-shaded/hbase-shaded-check-invariants/pom.xml b/hbase-shaded/hbase-shaded-check-invariants/pom.xml index 69275a7053..913ea2ac70 100644 --- a/hbase-shaded/hbase-shaded-check-invariants/pom.xml +++ b/hbase-shaded/hbase-shaded-check-invariants/pom.xml @@ -63,7 +63,7 @@ org.mockito - mockito-all + mockito-core provided diff --git a/pom.xml b/pom.xml index 272e4d452a..2f9821ad2f 100755 --- a/pom.xml +++ b/pom.xml @@ -1415,7 +1415,7 @@ 1.3 3.2.0-incubating 1.2.17 - 1.10.19 + 2.1.0 2.5.0 0.5.0 @@ -2017,8 +2017,8 @@ org.mockito - mockito-all - ${mockito-all.version} + mockito-core + ${mockito-core.version} test @@ -3259,8 +3259,8 @@ org.mockito - mockito-all - ${mockito-all.version} + mockito-core + ${mockito-core.version} org.hamcrest @@ -3302,8 +3302,8 @@ org.mockito - mockito-all - ${mockito-all.version} + mockito-core + ${mockito-core.version} org.hamcrest @@ -3356,8 +3356,8 @@ org.mockito - mockito-all - ${mockito-all.version} + mockito-core + ${mockito-core.version} org.hamcrest @@ -3409,8 +3409,8 @@ org.mockito - mockito-all - ${mockito-all.version} + mockito-core + ${mockito-core.version} org.hamcrest diff --git a/src/main/asciidoc/_chapters/unit_testing.adoc b/src/main/asciidoc/_chapters/unit_testing.adoc index 6131d5a9c6..c1d5be57cc 100644 --- a/src/main/asciidoc/_chapters/unit_testing.adoc +++ b/src/main/asciidoc/_chapters/unit_testing.adoc @@ -117,8 +117,8 @@ First, add a dependency for Mockito to your Maven POM file. org.mockito - mockito-all - 1.9.5 + mockito-core + 2.1.0 test ---- -- 2.14.1