From 6931092e511fa7032bed1d8ebb97aea74ba6d345 Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Mon, 30 Mar 2009 15:24:40 +0000 Subject: [PATCH] clean up patch and test from Sandeep Tata fixing #21 git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@760006 13f79535-47bb-0310-9956-ffa450edef68 --- src/org/apache/cassandra/db/ReadMessage.java | 19 +++++++- .../apache/cassandra/db/ReadMessageTest.java | 44 +++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 test/org/apache/cassandra/db/ReadMessageTest.java diff --git a/src/org/apache/cassandra/db/ReadMessage.java b/src/org/apache/cassandra/db/ReadMessage.java index 8284f67695..8fa2803a28 100644 --- a/src/org/apache/cassandra/db/ReadMessage.java +++ b/src/org/apache/cassandra/db/ReadMessage.java @@ -25,6 +25,9 @@ import java.io.IOException; import java.io.Serializable; import java.util.ArrayList; import java.util.List; + +import org.apache.commons.lang.StringUtils; + import org.apache.cassandra.continuations.Suspendable; import org.apache.cassandra.io.ICompactSerializer; import org.apache.cassandra.net.Message; @@ -154,6 +157,20 @@ public class ReadMessage implements Serializable { return columns_; } + + public String toString() + { + return "ReadMessage(" + + "table='" + table_ + '\'' + + ", key='" + key_ + '\'' + + ", columnFamily_column='" + columnFamily_column_ + '\'' + + ", start=" + start_ + + ", count=" + count_ + + ", sinceTimestamp=" + sinceTimestamp_ + + ", columns=[" + StringUtils.join(columns_, ", ") + "]" + + ", isDigestQuery=" + isDigestQuery_ + + ')'; + } } class ReadMessageSerializer implements ICompactSerializer @@ -202,7 +219,7 @@ class ReadMessageSerializer implements ICompactSerializer { rm = new ReadMessage(table, key, columnFamily_column, columns); } - if( sinceTimestamp > 0 ) + else if( sinceTimestamp > 0 ) { rm = new ReadMessage(table, key, columnFamily_column, sinceTimestamp); } diff --git a/test/org/apache/cassandra/db/ReadMessageTest.java b/test/org/apache/cassandra/db/ReadMessageTest.java new file mode 100644 index 0000000000..583e795585 --- /dev/null +++ b/test/org/apache/cassandra/db/ReadMessageTest.java @@ -0,0 +1,44 @@ +package org.apache.cassandra.db; + +import java.io.IOException; +import java.util.ArrayList; + +import org.apache.cassandra.io.DataInputBuffer; +import org.apache.cassandra.io.DataOutputBuffer; +import org.testng.annotations.Test; + +public class ReadMessageTest +{ + @Test + public void testMakeReadMessage() + { + ArrayList colList = new ArrayList(); + colList.add("col1"); + colList.add("col2"); + + ReadMessage rm = new ReadMessage("Table1", "row1", "foo", colList); + ReadMessage rm2 = serializeAndDeserializeReadMessage(rm); + + assert rm2.toString().equals(rm.toString()); + } + + private ReadMessage serializeAndDeserializeReadMessage(ReadMessage rm) + { + ReadMessage rm2 = null; + ReadMessageSerializer rms = (ReadMessageSerializer) ReadMessage.serializer(); + DataOutputBuffer dos = new DataOutputBuffer(); + DataInputBuffer dis = new DataInputBuffer(); + + try + { + rms.serialize(rm, dos); + dis.reset(dos.getData(), dos.getLength()); + rm2 = rms.deserialize(dis); + } + catch (IOException e) + { + throw new RuntimeException(e); + } + return rm2; + } +}