summaryrefslogtreecommitdiff
path: root/java/test/Freeze/dbmap/Client.java
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2004-09-30 20:02:15 +0000
committerBernard Normier <bernard@zeroc.com>2004-09-30 20:02:15 +0000
commit61d07845e7640e3c5fbdc8599190dade12129d33 (patch)
treef118ec0fb9450aa0d4b90cbd2f8f2d562ee72e97 /java/test/Freeze/dbmap/Client.java
parentMap index support (diff)
downloadice-61d07845e7640e3c5fbdc8599190dade12129d33.tar.bz2
ice-61d07845e7640e3c5fbdc8599190dade12129d33.tar.xz
ice-61d07845e7640e3c5fbdc8599190dade12129d33.zip
Added index support to Freeze dictionaries
Diffstat (limited to 'java/test/Freeze/dbmap/Client.java')
-rw-r--r--java/test/Freeze/dbmap/Client.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/java/test/Freeze/dbmap/Client.java b/java/test/Freeze/dbmap/Client.java
index 5f5978fce21..57eb67c32b2 100644
--- a/java/test/Freeze/dbmap/Client.java
+++ b/java/test/Freeze/dbmap/Client.java
@@ -415,6 +415,95 @@ public class Client
System.out.println("ok");
}
+ {
+ System.out.print("testing index... ");
+ System.out.flush();
+
+ //
+ // Re-populate.
+ //
+ populateDB(connection, m);
+
+ ByteIntMap typedM = (ByteIntMap)m;
+
+ java.util.Map.Entry e;
+ java.util.Iterator p;
+
+ int length = alphabet.length();
+
+ for(int k = 0; k < length; ++k)
+ {
+ p = typedM.findByValue(k);
+ test(p.hasNext());
+ e = (java.util.Map.Entry)p.next();
+ test(((Byte)e.getKey()).byteValue() == (byte)alphabet.charAt(k));
+ test(!p.hasNext());
+ }
+
+ //
+ // Non-existent index value
+ //
+ p = typedM.findByValue(100);
+ test(!p.hasNext());
+
+ //
+ // 2 items at 17
+ //
+ m.put(new Byte((byte)alphabet.charAt(21)), new Integer(17));
+
+ p = typedM.findByValue(17);
+
+ test(p.hasNext());
+ e = (java.util.Map.Entry)p.next();
+ byte v = ((Byte)e.getKey()).byteValue();
+ test(v == (byte)alphabet.charAt(17) || v == (byte)alphabet.charAt(21));
+
+ test(p.hasNext());
+ e = (java.util.Map.Entry)p.next();
+ v = ((Byte)e.getKey()).byteValue();
+ test(v == (byte)alphabet.charAt(17) || v == (byte)alphabet.charAt(21));
+
+ test(!p.hasNext());
+ test(typedM.valueCount(17) == 2);
+
+ p = typedM.findByValue(17);
+ test(p.hasNext());
+ p.next();
+ p.remove();
+ test(p.hasNext());
+ e = (java.util.Map.Entry)p.next();
+ v = ((Byte)e.getKey()).byteValue();
+ test(v == (byte)alphabet.charAt(17) || v == (byte)alphabet.charAt(21));
+ test(!p.hasNext());
+
+ //
+ // We need to close this write iterator before further reads
+ //
+ typedM.closeAllIterators();
+
+ test(typedM.valueCount(17) == 1);
+
+ p = typedM.findByValue(17);
+ test(p.hasNext());
+ e = (java.util.Map.Entry)p.next();
+
+ try
+ {
+ e.setValue(new Integer(18));
+ test(false);
+ }
+ catch(Freeze.DatabaseException ex)
+ {
+ // Expected
+ }
+
+ v = ((Byte)e.getKey()).byteValue();
+ test(v == (byte)alphabet.charAt(17) || v == (byte)alphabet.charAt(21));
+ test(typedM.valueCount(17) == 1);
+ System.out.println("ok");
+ }
+
+
((Freeze.Map) m).closeAllIterators();
{