You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by an...@apache.org on 2016/06/20 18:44:00 UTC

hbase git commit: HBASE-13372 Add unit tests for SplitTransaction and RegionMergeTransaction listeners

Repository: hbase
Updated Branches:
  refs/heads/branch-1.3 089494d83 -> e141ac89b


HBASE-13372 Add unit tests for SplitTransaction and RegionMergeTransaction listeners

Signed-off-by: Andrew Purtell <ap...@apache.org>
Amending-Author: Andrew Purtell <ap...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/e141ac89
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/e141ac89
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/e141ac89

Branch: refs/heads/branch-1.3
Commit: e141ac89baf2fd91a2eeeddb55b0d9932fb924fa
Parents: 089494d
Author: G�bor Lipt�k <gl...@gmail.com>
Authored: Sat Aug 22 19:39:13 2015 -0400
Committer: Mikhail Antonov <an...@apache.org>
Committed: Mon Jun 20 11:41:29 2016 -0700

----------------------------------------------------------------------
 .../TestRegionMergeTransaction.java             | 36 +++++++++++++++++---
 .../regionserver/TestSplitTransaction.java      | 28 ++++++++++++---
 2 files changed, 55 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/e141ac89/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransaction.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransaction.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransaction.java
index 49f3dce..3ed839b 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransaction.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRegionMergeTransaction.java
@@ -21,8 +21,7 @@ package org.apache.hadoop.hbase.regionserver;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.*;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -210,6 +209,35 @@ public class TestRegionMergeTransaction {
     assertFalse(spyMT.prepare(null));
   }
 
+  /**
+   * Test RegionMergeTransactionListener
+   */
+  @Test public void testRegionMergeTransactionListener() throws Exception {
+    RegionMergeTransactionImpl mt = new RegionMergeTransactionImpl(region_a, region_b,
+        false);
+    RegionMergeTransactionImpl spyMT = Mockito.spy(mt);
+    doReturn(false).when(spyMT).hasMergeQualifierInMeta(null,
+        region_a.getRegionInfo().getRegionName());
+    doReturn(false).when(spyMT).hasMergeQualifierInMeta(null,
+        region_b.getRegionInfo().getRegionName());
+    RegionMergeTransaction.TransactionListener listener =
+            Mockito.mock(RegionMergeTransaction.TransactionListener.class);
+    mt.registerTransactionListener(listener);
+    mt.prepare(null);
+    TEST_UTIL.getConfiguration().setInt(HConstants.REGIONSERVER_PORT, 0);
+    CoordinatedStateManager cp = CoordinatedStateManagerFactory.getCoordinatedStateManager(
+      TEST_UTIL.getConfiguration());
+    Server mockServer = new HRegionServer(TEST_UTIL.getConfiguration(), cp);
+    mt.execute(mockServer, null);
+    verify(listener).transition(mt,
+            RegionMergeTransaction.RegionMergeTransactionPhase.STARTED,
+            RegionMergeTransaction.RegionMergeTransactionPhase.PREPARED);
+    verify(listener, times(10)).transition(any(RegionMergeTransaction.class),
+            any(RegionMergeTransaction.RegionMergeTransactionPhase.class),
+            any(RegionMergeTransaction.RegionMergeTransactionPhase.class));
+    verifyNoMoreInteractions(listener);
+  }
+
   @Test
   public void testWholesomeMerge() throws IOException, InterruptedException {
     final int rowCountOfRegionA = loadRegion(this.region_a, CF, true);
@@ -355,9 +383,9 @@ public class TestRegionMergeTransaction {
   }
 
   @Test
-  public void testMeregedRegionBoundary() {
+  public void testMergedRegionBoundary() {
     TableName tableName =
-        TableName.valueOf("testMeregedRegionBoundary");
+        TableName.valueOf("testMergedRegionBoundary");
     byte[] a = Bytes.toBytes("a");
     byte[] b = Bytes.toBytes("b");
     byte[] z = Bytes.toBytes("z");

http://git-wip-us.apache.org/repos/asf/hbase/blob/e141ac89/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java
index d5c9575..b548b65 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransaction.java
@@ -23,10 +23,9 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Matchers.anyInt;
 import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.*;
+
+import org.mockito.Mockito;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -60,7 +59,6 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
-import org.mockito.Mockito;
 
 import com.google.common.collect.ImmutableList;
 
@@ -187,6 +185,26 @@ public class TestSplitTransaction {
   }
 
   /**
+   * Test SplitTransactionListener
+   */
+  @Test public void testSplitTransactionListener() throws IOException {
+    SplitTransactionImpl st = new SplitTransactionImpl(this.parent, GOOD_SPLIT_ROW);
+    SplitTransaction.TransactionListener listener =
+            Mockito.mock(SplitTransaction.TransactionListener.class);
+    st.registerTransactionListener(listener);
+    st.prepare();
+    Server mockServer = Mockito.mock(Server.class);
+    when(mockServer.getConfiguration()).thenReturn(TEST_UTIL.getConfiguration());
+    PairOfSameType<Region> daughters = st.execute(mockServer, null);
+    verify(listener).transition(st, SplitTransaction.SplitTransactionPhase.STARTED,
+            SplitTransaction.SplitTransactionPhase.PREPARED);
+    verify(listener, times(15)).transition(any(SplitTransaction.class),
+            any(SplitTransaction.SplitTransactionPhase.class),
+            any(SplitTransaction.SplitTransactionPhase.class));
+    verifyNoMoreInteractions(listener);
+  }
+
+  /**
    * Pass an unreasonable split row.
    */
   @Test public void testPrepareWithBadSplitRow() throws IOException {