You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2013/07/17 22:06:08 UTC
svn commit: r1504255 [2/2] - in /hbase/branches/0.94/src:
main/java/org/apache/hadoop/hbase/thrift2/
main/java/org/apache/hadoop/hbase/thrift2/generated/
main/resources/org/apache/hadoop/hbase/thrift2/
test/java/org/apache/hadoop/hbase/thrift2/
Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java?rev=1504255&r1=1504254&r2=1504255&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/thrift2/TestThriftHBaseServiceHandler.java Wed Jul 17 20:06:07 2013
@@ -55,6 +55,8 @@ import org.apache.hadoop.hbase.thrift2.g
import org.apache.hadoop.hbase.thrift2.generated.TPut;
import org.apache.hadoop.hbase.thrift2.generated.TResult;
import org.apache.hadoop.hbase.thrift2.generated.TScan;
+import org.apache.hadoop.hbase.thrift2.generated.TMutation;
+import org.apache.hadoop.hbase.thrift2.generated.TRowMutations;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.metrics.ContextFactory;
import org.apache.hadoop.metrics.MetricsContext;
@@ -729,7 +731,70 @@ public class TestThriftHBaseServiceHandl
Delete delete = deleteFromThrift(tDelete);
assertArrayEquals(delete.getAttribute("attribute1"), attributeValue);
}
-
+
+ /**
+ * Put valueA to a row, make sure put has happened, then create a mutation object to put valueB
+ * and delete ValueA, then check that the row value is only valueB.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testMutateRow() throws Exception {
+ ThriftHBaseServiceHandler handler = createHandler();
+ byte[] rowName = "testMutateRow".getBytes();
+ ByteBuffer table = wrap(tableAname);
+
+ List<TColumnValue> columnValuesA = new ArrayList<TColumnValue>();
+ TColumnValue columnValueA = new TColumnValue(wrap(familyAname), wrap(qualifierAname),
+ wrap(valueAname));
+ columnValuesA.add(columnValueA);
+ TPut putA = new TPut(wrap(rowName), columnValuesA);
+ putA.setColumnValues(columnValuesA);
+
+ handler.put(table,putA);
+
+ TGet get = new TGet(wrap(rowName));
+ TResult result = handler.get(table, get);
+ assertArrayEquals(rowName, result.getRow());
+ List<TColumnValue> returnedColumnValues = result.getColumnValues();
+
+ List<TColumnValue> expectedColumnValues = new ArrayList<TColumnValue>();
+ expectedColumnValues.add(columnValueA);
+ assertTColumnValuesEqual(expectedColumnValues, returnedColumnValues);
+
+ List<TColumnValue> columnValuesB = new ArrayList<TColumnValue>();
+ TColumnValue columnValueB = new TColumnValue(wrap(familyAname), wrap(qualifierBname),
+ wrap(valueBname));
+ columnValuesB.add(columnValueB);
+ TPut putB = new TPut(wrap(rowName), columnValuesB);
+ putB.setColumnValues(columnValuesB);
+
+ TDelete delete = new TDelete(wrap(rowName));
+ List<TColumn> deleteColumns = new ArrayList<TColumn>();
+ TColumn deleteColumn = new TColumn(wrap(familyAname));
+ deleteColumn.setQualifier(qualifierAname);
+ deleteColumns.add(deleteColumn);
+ delete.setColumns(deleteColumns);
+
+ List<TMutation> mutations = new ArrayList<TMutation>();
+ TMutation mutationA = TMutation.put(putB);
+ mutations.add(mutationA);
+
+ TMutation mutationB = TMutation.deleteSingle(delete);
+ mutations.add(mutationB);
+
+ TRowMutations tRowMutations = new TRowMutations(wrap(rowName),mutations);
+ handler.mutateRow(table,tRowMutations);
+
+ result = handler.get(table, get);
+ assertArrayEquals(rowName, result.getRow());
+ returnedColumnValues = result.getColumnValues();
+
+ expectedColumnValues = new ArrayList<TColumnValue>();
+ expectedColumnValues.add(columnValueB);
+ assertTColumnValuesEqual(expectedColumnValues, returnedColumnValues);
+ }
+
private static ThriftMetrics getMetrics(Configuration conf) throws Exception {
setupMetricsContext();
return new ThriftMetrics(Integer.parseInt(ThriftServer.DEFAULT_LISTEN_PORT),