From d6346f3a0b8617c578354a9aea646c76bdc02eb0 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-http/pom.xml | 2 +- .../org/apache/hadoop/hbase/http/HttpServer.java | 8 +++++ .../apache/hadoop/hbase/http/TestHttpServer.java | 6 +--- 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 +- .../hadoop/hbase/ipc/TestSimpleRpcScheduler.java | 36 ++++++---------------- .../normalizer/TestSimpleRegionNormalizer.java | 2 +- .../procedure/TestZKProcedureControllers.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 +-- 29 files changed, 101 insertions(+), 114 deletions(-) diff --git a/hbase-client/pom.xml b/hbase-client/pom.xml index a8e73c7cb5..675e813816 100644 --- a/hbase-client/pom.xml +++ b/hbase-client/pom.xml @@ -192,7 +192,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 135e720557..b732bbe893 100644 --- a/hbase-common/pom.xml +++ b/hbase-common/pom.xml @@ -269,7 +269,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-endpoint/pom.xml b/hbase-endpoint/pom.xml index a127763130..101bfdb3fb 100644 --- a/hbase-endpoint/pom.xml +++ b/hbase-endpoint/pom.xml @@ -213,7 +213,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-examples/pom.xml b/hbase-examples/pom.xml index 9f32fec1de..e7062832b6 100644 --- a/hbase-examples/pom.xml +++ b/hbase-examples/pom.xml @@ -206,7 +206,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-http/pom.xml b/hbase-http/pom.xml index d876f193eb..9bd6fcd80f 100644 --- a/hbase-http/pom.xml +++ b/hbase-http/pom.xml @@ -311,7 +311,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java b/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java index 726595bd11..29be0da94c 100644 --- a/hbase-http/src/main/java/org/apache/hadoop/hbase/http/HttpServer.java +++ b/hbase-http/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-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServer.java b/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServer.java index 2eb6a2117b..fddb2a4842 100644 --- a/hbase-http/src/test/java/org/apache/hadoop/hbase/http/TestHttpServer.java +++ b/hbase-http/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 { @@ -557,10 +556,7 @@ public class TestHttpServer extends HttpServerFunctionalTest { 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-mapreduce/pom.xml b/hbase-mapreduce/pom.xml index 4a63f41b91..607b43bf7a 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 2d5d701780..78855df0ea 100644 --- a/hbase-rest/pom.xml +++ b/hbase-rest/pom.xml @@ -331,7 +331,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 ea02f26efc..d66553870e 100644 --- a/hbase-server/pom.xml +++ b/hbase-server/pom.xml @@ -605,7 +605,7 @@ org.mockito - mockito-all + mockito-core test diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestSimpleRpcScheduler.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestSimpleRpcScheduler.java index 8364b22f1f..ee538ecc3d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestSimpleRpcScheduler.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestSimpleRpcScheduler.java @@ -182,7 +182,6 @@ public class TestSimpleRpcScheduler { @Test public void testHandlerIsolation() throws IOException, InterruptedException { - CallRunner generalTask = createMockTask(); CallRunner priorityTask = createMockTask(); CallRunner replicationTask = createMockTask(); @@ -219,9 +218,7 @@ public class TestSimpleRpcScheduler { scheduler.init(CONTEXT); scheduler.start(); for (CallRunner task : tasks) { - when(qosFunction.getPriority((RPCProtos.RequestHeader) anyObject(), - (Message) anyObject(), (User) anyObject())) - .thenReturn(qos.get(task)); + when(qosFunction.getPriority(any(), any(), any())).thenReturn(qos.get(task)); scheduler.dispatch(task); } for (CallRunner task : tasks) { @@ -238,13 +235,11 @@ public class TestSimpleRpcScheduler { ServerCall call = mock(ServerCall.class); CallRunner task = mock(CallRunner.class); when(task.getRpcCall()).thenReturn(call); - when(call.getRequestUser()).thenReturn(Optional.empty()); return task; } @Test public void testRpcScheduler() throws Exception { - testRpcScheduler(RpcExecutor.CALL_QUEUE_TYPE_DEADLINE_CONF_VALUE); testRpcScheduler(RpcExecutor.CALL_QUEUE_TYPE_FIFO_CONF_VALUE); } @@ -254,9 +249,7 @@ public class TestSimpleRpcScheduler { schedConf.set(RpcExecutor.CALL_QUEUE_TYPE_CONF_KEY, queueType); PriorityFunction priority = mock(PriorityFunction.class); - when(priority.getPriority(any(RequestHeader.class), - any(Message.class), any(User.class))) - .thenReturn(HConstants.NORMAL_QOS); + when(priority.getPriority(any(), any(), any())).thenReturn(HConstants.NORMAL_QOS); RpcScheduler scheduler = new SimpleRpcScheduler(schedConf, 1, 1, 1, priority, HConstants.QOS_THRESHOLD); @@ -268,25 +261,22 @@ public class TestSimpleRpcScheduler { RequestHeader smallHead = RequestHeader.newBuilder().setCallId(1).build(); when(smallCallTask.getRpcCall()).thenReturn(smallCall); when(smallCall.getHeader()).thenReturn(smallHead); - when(smallCall.getRequestUser()).thenReturn(Optional.empty()); CallRunner largeCallTask = mock(CallRunner.class); ServerCall largeCall = mock(ServerCall.class); RequestHeader largeHead = RequestHeader.newBuilder().setCallId(50).build(); when(largeCallTask.getRpcCall()).thenReturn(largeCall); when(largeCall.getHeader()).thenReturn(largeHead); - when(largeCall.getRequestUser()).thenReturn(Optional.empty()); CallRunner hugeCallTask = mock(CallRunner.class); ServerCall hugeCall = mock(ServerCall.class); RequestHeader hugeHead = RequestHeader.newBuilder().setCallId(100).build(); when(hugeCallTask.getRpcCall()).thenReturn(hugeCall); when(hugeCall.getHeader()).thenReturn(hugeHead); - when(hugeCall.getRequestUser()).thenReturn(Optional.empty()); - when(priority.getDeadline(eq(smallHead), any(Message.class))).thenReturn(0L); - when(priority.getDeadline(eq(largeHead), any(Message.class))).thenReturn(50L); - when(priority.getDeadline(eq(hugeHead), any(Message.class))).thenReturn(100L); + when(priority.getDeadline(eq(smallHead), any())).thenReturn(0L); + when(priority.getDeadline(eq(largeHead), any())).thenReturn(50L); + when(priority.getDeadline(eq(hugeHead), any())).thenReturn(100L); final ArrayList work = new ArrayList<>(); doAnswerTaskExecution(smallCallTask, work, 10, 250); @@ -337,8 +327,7 @@ public class TestSimpleRpcScheduler { schedConf.setFloat(RWQueueRpcExecutor.CALL_QUEUE_SCAN_SHARE_CONF_KEY, 0f); PriorityFunction priority = mock(PriorityFunction.class); - when(priority.getPriority(any(RequestHeader.class), any(Message.class), - any(User.class))).thenReturn(HConstants.NORMAL_QOS); + when(priority.getPriority(any(), any(), any())).thenReturn(HConstants.NORMAL_QOS); RpcScheduler scheduler = new SimpleRpcScheduler(schedConf, 2, 1, 1, priority, HConstants.QOS_THRESHOLD); @@ -353,8 +342,7 @@ public class TestSimpleRpcScheduler { schedConf.setFloat(RWQueueRpcExecutor.CALL_QUEUE_SCAN_SHARE_CONF_KEY, 0.5f); PriorityFunction priority = mock(PriorityFunction.class); - when(priority.getPriority(any(RPCProtos.RequestHeader.class), any(Message.class), - any(User.class))).thenReturn(HConstants.NORMAL_QOS); + when(priority.getPriority(any(), any(), any())).thenReturn(HConstants.NORMAL_QOS); RpcScheduler scheduler = new SimpleRpcScheduler(schedConf, 3, 1, 1, priority, HConstants.QOS_THRESHOLD); @@ -369,14 +357,12 @@ public class TestSimpleRpcScheduler { when(putCallTask.getRpcCall()).thenReturn(putCall); when(putCall.getHeader()).thenReturn(putHead); when(putCall.getParam()).thenReturn(putCall.param); - when(putCall.getRequestUser()).thenReturn(Optional.empty()); CallRunner getCallTask = mock(CallRunner.class); ServerCall getCall = mock(ServerCall.class); RequestHeader getHead = RequestHeader.newBuilder().setMethodName("get").build(); when(getCallTask.getRpcCall()).thenReturn(getCall); when(getCall.getHeader()).thenReturn(getHead); - when(getCall.getRequestUser()).thenReturn(Optional.empty()); CallRunner scanCallTask = mock(CallRunner.class); ServerCall scanCall = mock(ServerCall.class); @@ -385,7 +371,6 @@ public class TestSimpleRpcScheduler { when(scanCallTask.getRpcCall()).thenReturn(scanCall); when(scanCall.getHeader()).thenReturn(scanHead); when(scanCall.getParam()).thenReturn(scanCall.param); - when(scanCall.getRequestUser()).thenReturn(Optional.empty()); ArrayList work = new ArrayList<>(); doAnswerTaskExecution(putCallTask, work, 1, 1000); @@ -449,8 +434,7 @@ public class TestSimpleRpcScheduler { schedConf.setInt("hbase.ipc.server.max.callqueue.length", 5); PriorityFunction priority = mock(PriorityFunction.class); - when(priority.getPriority(any(RequestHeader.class), any(Message.class), - any(User.class))).thenReturn(HConstants.NORMAL_QOS); + when(priority.getPriority(any(), any(), any())).thenReturn(HConstants.NORMAL_QOS); SimpleRpcScheduler scheduler = new SimpleRpcScheduler(schedConf, 0, 0, 0, priority, HConstants.QOS_THRESHOLD); try { @@ -463,7 +447,6 @@ public class TestSimpleRpcScheduler { RequestHeader putHead = RequestHeader.newBuilder().setMethodName("mutate").build(); when(putCallTask.getRpcCall()).thenReturn(putCall); when(putCall.getHeader()).thenReturn(putHead); - when(putCall.getRequestUser()).thenReturn(Optional.empty()); assertTrue(scheduler.dispatch(putCallTask)); @@ -516,8 +499,7 @@ public class TestSimpleRpcScheduler { schedConf.set(RpcExecutor.CALL_QUEUE_TYPE_CONF_KEY, RpcExecutor.CALL_QUEUE_TYPE_CODEL_CONF_VALUE); PriorityFunction priority = mock(PriorityFunction.class); - when(priority.getPriority(any(RPCProtos.RequestHeader.class), any(Message.class), - any(User.class))).thenReturn(HConstants.NORMAL_QOS); + when(priority.getPriority(any(), any(), any())).thenReturn(HConstants.NORMAL_QOS); SimpleRpcScheduler scheduler = new SimpleRpcScheduler(schedConf, 1, 1, 1, priority, HConstants.QOS_THRESHOLD); try { 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/procedure/TestZKProcedureControllers.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestZKProcedureControllers.java index 8b947ee234..59306bd5ca 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestZKProcedureControllers.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/procedure/TestZKProcedureControllers.java @@ -363,7 +363,7 @@ public class TestZKProcedureControllers { // verify(member, Mockito.times(cohortSize)).submitSubprocedure(Mockito.eq(operationName), // (byte[]) Mockito.argThat(new ArrayEquals(data))); Mockito.verify(member, - Mockito.atLeast(cohortSize)).submitSubprocedure(Mockito.any(Subprocedure.class)); + Mockito.atLeast(cohortSize)).submitSubprocedure(Mockito.any()); } 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 6316809925..e2cda889dd 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 24e42bbadc..63b8cb6111 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 af30b7caf4..47f7c7e181 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); @@ -236,7 +236,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 @@ -550,9 +550,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; @@ -561,7 +560,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()); } /** @@ -573,7 +572,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, @@ -587,7 +586,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. */ @@ -611,7 +610,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 8592d710b2..d8bf7d2a29 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 6e3bfb3296..f652a692bf 100755 --- a/pom.xml +++ b/pom.xml @@ -1421,7 +1421,7 @@ 1.3 3.2.0-incubating 1.2.17 - 1.10.19 + 2.1.0 2.5.0 0.5.0 @@ -2026,8 +2026,8 @@ org.mockito - mockito-all - ${mockito-all.version} + mockito-core + ${mockito-core.version} test @@ -3352,8 +3352,8 @@ org.mockito - mockito-all - ${mockito-all.version} + mockito-core + ${mockito-core.version} org.hamcrest @@ -3395,8 +3395,8 @@ org.mockito - mockito-all - ${mockito-all.version} + mockito-core + ${mockito-core.version} org.hamcrest @@ -3449,8 +3449,8 @@ org.mockito - mockito-all - ${mockito-all.version} + mockito-core + ${mockito-core.version} org.hamcrest @@ -3502,8 +3502,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