/** * Test Put Mutate conversions. * * @throws IOException */ @Test public void testPut() throws IOException { Mutate.Builder mutateBuilder = Mutate.newBuilder(); mutateBuilder.setRow(ByteString.copyFromUtf8("row")); mutateBuilder.setMutateType(MutateType.PUT); mutateBuilder.setTimestamp(111111); ColumnValue.Builder valueBuilder = ColumnValue.newBuilder(); valueBuilder.setFamily(ByteString.copyFromUtf8("f1")); QualifierValue.Builder qualifierBuilder = QualifierValue.newBuilder(); qualifierBuilder.setQualifier(ByteString.copyFromUtf8("c1")); qualifierBuilder.setValue(ByteString.copyFromUtf8("v1")); valueBuilder.addQualifierValue(qualifierBuilder.build()); qualifierBuilder.setQualifier(ByteString.copyFromUtf8("c2")); qualifierBuilder.setValue(ByteString.copyFromUtf8("v2")); qualifierBuilder.setTimestamp(222222); valueBuilder.addQualifierValue(qualifierBuilder.build()); mutateBuilder.addColumnValue(valueBuilder.build()); Mutate proto = mutateBuilder.build(); // default fields assertEquals(true, proto.getWriteToWAL()); // set the default value for equal comparison mutateBuilder = Mutate.newBuilder(proto); mutateBuilder.setWriteToWAL(true); Put put = ProtobufUtil.toPut(proto); // put value always use the default timestamp if no // value level timestamp specified, // add the timestamp to the original mutate long timestamp = put.getTimeStamp(); for (ColumnValue.Builder column : mutateBuilder.getColumnValueBuilderList()) { for (QualifierValue.Builder qualifier : column.getQualifierValueBuilderList()) { if (!qualifier.hasTimestamp()) { qualifier.setTimestamp(timestamp); } } } assertEquals(mutateBuilder.build(), ProtobufUtil.toMutate(MutateType.PUT, put)); }
/** * Test Delete Mutate conversions. * * @throws IOException */ @Test public void testDelete() throws IOException { Mutate.Builder mutateBuilder = Mutate.newBuilder(); mutateBuilder.setRow(ByteString.copyFromUtf8("row")); mutateBuilder.setMutateType(MutateType.DELETE); mutateBuilder.setTimestamp(111111); ColumnValue.Builder valueBuilder = ColumnValue.newBuilder(); valueBuilder.setFamily(ByteString.copyFromUtf8("f1")); QualifierValue.Builder qualifierBuilder = QualifierValue.newBuilder(); qualifierBuilder.setQualifier(ByteString.copyFromUtf8("c1")); qualifierBuilder.setDeleteType(DeleteType.DELETE_ONE_VERSION); qualifierBuilder.setTimestamp(111222); valueBuilder.addQualifierValue(qualifierBuilder.build()); qualifierBuilder.setQualifier(ByteString.copyFromUtf8("c2")); qualifierBuilder.setDeleteType(DeleteType.DELETE_MULTIPLE_VERSIONS); qualifierBuilder.setTimestamp(111333); valueBuilder.addQualifierValue(qualifierBuilder.build()); mutateBuilder.addColumnValue(valueBuilder.build()); Mutate proto = mutateBuilder.build(); // default fields assertEquals(true, proto.getWriteToWAL()); // set the default value for equal comparison mutateBuilder = Mutate.newBuilder(proto); mutateBuilder.setWriteToWAL(true); Delete delete = ProtobufUtil.toDelete(proto); // delete always have empty value, // add empty value to the original mutate for (ColumnValue.Builder column : mutateBuilder.getColumnValueBuilderList()) { for (QualifierValue.Builder qualifier : column.getQualifierValueBuilderList()) { qualifier.setValue(ByteString.EMPTY); } } assertEquals(mutateBuilder.build(), ProtobufUtil.toMutate(MutateType.DELETE, delete)); }
/** * Test Append Mutate conversions. * * @throws IOException */ @Test public void testAppend() throws IOException { Mutate.Builder mutateBuilder = Mutate.newBuilder(); mutateBuilder.setRow(ByteString.copyFromUtf8("row")); mutateBuilder.setMutateType(MutateType.APPEND); mutateBuilder.setTimestamp(111111); ColumnValue.Builder valueBuilder = ColumnValue.newBuilder(); valueBuilder.setFamily(ByteString.copyFromUtf8("f1")); QualifierValue.Builder qualifierBuilder = QualifierValue.newBuilder(); qualifierBuilder.setQualifier(ByteString.copyFromUtf8("c1")); qualifierBuilder.setValue(ByteString.copyFromUtf8("v1")); valueBuilder.addQualifierValue(qualifierBuilder.build()); qualifierBuilder.setQualifier(ByteString.copyFromUtf8("c2")); qualifierBuilder.setValue(ByteString.copyFromUtf8("v2")); valueBuilder.addQualifierValue(qualifierBuilder.build()); mutateBuilder.addColumnValue(valueBuilder.build()); Mutate proto = mutateBuilder.build(); // default fields assertEquals(true, proto.getWriteToWAL()); // set the default value for equal comparison mutateBuilder = Mutate.newBuilder(proto); mutateBuilder.setWriteToWAL(true); Append append = ProtobufUtil.toAppend(proto); // append always use the latest timestamp, // add the timestamp to the original mutate long timestamp = append.getTimeStamp(); mutateBuilder.setTimestamp(timestamp); for (ColumnValue.Builder column : mutateBuilder.getColumnValueBuilderList()) { for (QualifierValue.Builder qualifier : column.getQualifierValueBuilderList()) { qualifier.setTimestamp(timestamp); } } assertEquals(mutateBuilder.build(), ProtobufUtil.toMutate(MutateType.APPEND, append)); }