summaryrefslogtreecommitdiff
path: root/src/test/java/com/amazon/carbonado
diff options
context:
space:
mode:
authorBrian S. O'Neill <bronee@gmail.com>2008-03-17 01:33:36 +0000
committerBrian S. O'Neill <bronee@gmail.com>2008-03-17 01:33:36 +0000
commit29e3e2b71ba9ac4b43c5b7d40da8a3dc8c6f365c (patch)
tree53b074794b8dc3b0303e9166ac427d14162a6017 /src/test/java/com/amazon/carbonado
parentc85cf49badd69b00720909daf78c3b3ba5684114 (diff)
Added test for merge sort with LOBs.
Diffstat (limited to 'src/test/java/com/amazon/carbonado')
-rw-r--r--src/test/java/com/amazon/carbonado/cursor/TestMergeSortBuffer.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/java/com/amazon/carbonado/cursor/TestMergeSortBuffer.java b/src/test/java/com/amazon/carbonado/cursor/TestMergeSortBuffer.java
index 7554e8a..59119ec 100644
--- a/src/test/java/com/amazon/carbonado/cursor/TestMergeSortBuffer.java
+++ b/src/test/java/com/amazon/carbonado/cursor/TestMergeSortBuffer.java
@@ -29,6 +29,7 @@ import org.cojen.util.BeanComparator;
import com.amazon.carbonado.*;
import com.amazon.carbonado.stored.*;
+import com.amazon.carbonado.lob.ByteArrayBlob;
/**
* Test case for {@link MergeSortBuffer}.
@@ -120,6 +121,36 @@ public class TestMergeSortBuffer extends TestCase {
testBuffer(HUGE_BUFFER_SIZE);
}
+ public void testLobs() throws Exception {
+ Comparator<StorableWithLobs> c = BeanComparator.forClass(StorableWithLobs.class)
+ .orderBy("-id");
+
+ Storage<StorableWithLobs> storage = mRepository.storageFor(StorableWithLobs.class);
+ SortBuffer<StorableWithLobs> buffer =
+ new MergeSortBuffer<StorableWithLobs>(storage, null, 100);
+ buffer.prepare(c);
+
+ for (int i=0; i<5000; i++) {
+ StorableWithLobs s = storage.prepare();
+ s.setBlobValue(new ByteArrayBlob(("hello " + i).getBytes()));
+ s.insert();
+ buffer.add(s);
+ }
+
+ buffer.sort();
+
+ int lastId = Integer.MAX_VALUE;
+ for (StorableWithLobs s : buffer) {
+ assertTrue(s.getId() < lastId);
+ String str = s.getBlobValue().asString();
+ assertTrue(str.startsWith("hello "));
+ assertTrue((Integer.parseInt(str.substring(6)) + 1) == s.getId());
+ lastId = s.getId();
+ }
+
+ buffer.close();
+ }
+
private void testBuffer(int size) throws Exception {
Storage<StorableTestBasic> storage = mRepository.storageFor(StorableTestBasic.class);
SortBuffer<StorableTestBasic> buffer = new MergeSortBuffer<StorableTestBasic>(storage);