diff options
author | Bernard Normier <bernard@zeroc.com> | 2004-09-30 20:02:15 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2004-09-30 20:02:15 +0000 |
commit | 61d07845e7640e3c5fbdc8599190dade12129d33 (patch) | |
tree | f118ec0fb9450aa0d4b90cbd2f8f2d562ee72e97 /java/test/Freeze/dbmap/Client.java | |
parent | Map index support (diff) | |
download | ice-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.java | 89 |
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(); { |