📄 collectiontest.java
字号:
} void removeOddList() throws Exception { writeRunner.run(new TransactionWorker() { public void doWork() throws Exception { for (int i = beginKey; i <= endKey; i += 2) { // remove by index // (with entity binding, embbeded keys in values are // being changed so we can't use values for comparison) int idx = (i - beginKey) / 2; Object val = makeVal(i); if (!isEntityBinding) { assertTrue(list.contains(val)); assertEquals(val, list.get(idx)); assertEquals(idx, list.indexOf(val)); } assertNotNull(list.get(idx)); if (isEntityBinding) { assertNotNull(list.remove(idx)); } else { assertTrue(list.contains(val)); assertEquals(val, list.remove(idx)); } assertTrue(!list.remove(val)); assertTrue(!list.contains(val)); assertTrue(!val.equals(list.get(idx))); } } }); } void removeOddListValue() throws Exception { writeRunner.run(new TransactionWorker() { public void doWork() throws Exception { for (int i = beginKey; i <= endKey; i += 2) { // for non-entity case remove by value // (with entity binding, embbeded keys in values are // being changed so we can't use values for comparison) int idx = (i - beginKey) / 2; Object val = makeVal(i); assertTrue(list.contains(val)); assertEquals(val, list.get(idx)); assertEquals(idx, list.indexOf(val)); assertTrue(list.remove(val)); assertTrue(!list.remove(val)); assertTrue(!list.contains(val)); assertTrue(!val.equals(list.get(idx))); } } }); } void addOdd() throws Exception { writeRunner.run(new TransactionWorker() { public void doWork() throws Exception { // add using Map.put() for (int i = beginKey; i <= endKey; i += 2) { Long key = makeKey(i); Object val = makeVal(i); assertNull(imap.get(key)); assertNull(imap.put(key, val)); assertEquals(val, imap.get(key)); assertTrue(imap.duplicates(key).contains(val)); checkDupsSize(1, imap.duplicates(key)); if (isEntityBinding) { assertTrue(!imap.values().add(val)); } if (!imap.areDuplicatesAllowed()) { assertEquals(val, imap.put(key, val)); } } } }); } void addOddEntity() throws Exception { writeRunner.run(new TransactionWorker() { public void doWork() throws Exception { // add using Map.values().add() for (int i = beginKey; i <= endKey; i += 2) { Long key = makeKey(i); Object val = makeVal(i); assertNull(imap.get(key)); assertTrue(!imap.values().contains(val)); assertTrue(imap.values().add(val)); assertEquals(val, imap.get(key)); assertTrue(imap.values().contains(val)); assertTrue(imap.duplicates(key).contains(val)); checkDupsSize(1, imap.duplicates(key)); if (isEntityBinding) { assertTrue(!imap.values().add(val)); } } } }); } void addOddDup() throws Exception { writeRunner.run(new TransactionWorker() { public void doWork() throws Exception { // add using Map.duplicates().add() for (int i = beginKey; i <= endKey; i += 2) { Long key = makeKey(i); Object val = makeVal(i); assertNull(imap.get(key)); assertTrue(!imap.values().contains(val)); assertTrue(imap.duplicates(key).add(val)); assertEquals(val, imap.get(key)); assertTrue(imap.values().contains(val)); assertTrue(imap.duplicates(key).contains(val)); checkDupsSize(1, imap.duplicates(key)); assertTrue(!imap.duplicates(key).add(val)); if (isEntityBinding) { assertTrue(!imap.values().add(val)); } } } }); } void addOddList() throws Exception { writeRunner.run(new TransactionWorker() { public void doWork() throws Exception { for (int i = beginKey; i <= endKey; i += 2) { int idx = i - beginKey; Object val = makeVal(i); assertTrue(!list.contains(val)); assertTrue(!val.equals(list.get(idx))); list.add(idx, val); assertTrue(list.contains(val)); assertEquals(val, list.get(idx)); } } }); } void addAllList() throws Exception { writeRunner.run(new TransactionWorker() { public void doWork() throws Exception { for (int i = beginKey; i <= endKey; i += 1) { int idx = i - beginKey; Object val = makeVal(i); assertTrue(!list.contains(val)); assertTrue(list.add(val)); assertTrue(list.contains(val)); assertEquals(val, list.get(idx)); } } }); } void removeAllList() throws Exception { writeRunner.run(new TransactionWorker() { public void doWork() throws Exception { assertTrue(!list.isEmpty()); list.clear(); assertTrue(list.isEmpty()); for (int i = beginKey; i <= endKey; i += 1) { int idx = i - beginKey; assertNull(list.get(idx)); } } }); } void testIterAddList() throws Exception { writeIterRunner.run(new TransactionWorker() { public void doWork() throws Exception { ListIterator i = (ListIterator) iterator(list); try { assertTrue(!i.hasNext()); i.add(makeVal(3)); assertTrue(!i.hasNext()); assertTrue(i.hasPrevious()); assertEquals(3, intVal(i.previous())); i.add(makeVal(1)); assertTrue(i.hasPrevious()); assertTrue(i.hasNext()); assertEquals(1, intVal(i.previous())); assertTrue(i.hasNext()); assertEquals(1, intVal(i.next())); assertTrue(i.hasNext()); assertEquals(3, intVal(i.next())); assertEquals(3, intVal(i.previous())); assertTrue(i.hasNext()); i.add(makeVal(2)); assertTrue(i.hasNext()); assertTrue(i.hasPrevious()); assertEquals(2, intVal(i.previous())); assertTrue(i.hasNext()); assertEquals(2, intVal(i.next())); assertTrue(i.hasNext()); assertEquals(3, intVal(i.next())); assertTrue(!i.hasNext()); i.add(makeVal(4)); i.add(makeVal(5)); assertTrue(!i.hasNext()); assertEquals(5, intVal(i.previous())); assertEquals(4, intVal(i.previous())); assertEquals(3, intVal(i.previous())); assertEquals(2, intVal(i.previous())); assertEquals(1, intVal(i.previous())); assertTrue(!i.hasPrevious()); } finally { StoredIterator.close(i); } } }); } void testIterAddDuplicates() throws Exception { writeIterRunner.run(new TransactionWorker() { public void doWork() throws Exception { assertNull(imap.put(makeKey(1), makeVal(1))); ListIterator i = (ListIterator) iterator(imap.duplicates(makeKey(1))); try { if (imap.areDuplicatesOrdered()) { i.add(makeVal(1, 4)); i.add(makeVal(1, 2)); i.add(makeVal(1, 3)); while (i.hasPrevious()) i.previous(); assertEquals(1, intVal(i.next())); assertEquals(2, intVal(i.next())); assertEquals(3, intVal(i.next())); assertEquals(4, intVal(i.next())); assertTrue(!i.hasNext()); } else { assertEquals(1, intVal(i.next())); i.add(makeVal(1, 2)); i.add(makeVal(1, 3)); assertTrue(!i.hasNext()); assertTrue(i.hasPrevious()); assertEquals(3, intVal(i.previous())); assertEquals(2, intVal(i.previous())); assertEquals(1, intVal(i.previous())); assertTrue(!i.hasPrevious()); i.add(makeVal(1, 4)); i.add(makeVal(1, 5)); assertTrue(i.hasNext()); assertEquals(5, intVal(i.previous())); assertEquals(4, intVal(i.previous())); assertTrue(!i.hasPrevious()); assertEquals(4, intVal(i.next())); assertEquals(5, intVal(i.next())); assertEquals(1, intVal(i.next())); assertEquals(2, intVal(i.next())); assertEquals(3, intVal(i.next())); assertTrue(!i.hasNext()); } } finally { StoredIterator.close(i); } } }); } void readAll() throws Exception { readRunner.run(new TransactionWorker() { public void doWork() throws Exception { // map assertNotNull(map.toString()); for (int i = beginKey; i <= endKey; i += 1) { Long key = makeKey(i); Object val = map.get(key); assertEquals(makeVal(i), val); assertTrue(map.containsKey(key)); assertTrue(map.containsValue(val)); assertTrue(map.keySet().contains(key)); assertTrue(map.values().contains(val)); assertTrue(map.duplicates(key).contains(val)); checkDupsSize(1, map.duplicates(key)); } assertNull(map.get(makeKey(-1))); assertNull(map.get(makeKey(0))); assertNull(map.get(makeKey(beginKey - 1))); assertNull(map.get(makeKey(endKey + 1))); checkDupsSize(0, map.duplicates(makeKey(-1))); checkDupsSize(0, map.duplicates(makeKey(0))); checkDupsSize(0, map.duplicates(makeKey(beginKey - 1))); checkDupsSize(0, map.duplicates(makeKey(endKey + 1))); // entrySet Set set = map.entrySet(); assertNotNull(set.toString()); assertEquals(beginKey > endKey, set.isEmpty()); Iterator iter = iterator(set); try { for (int i = beginKey; i <= endKey; i += 1) { assertTrue(iter.hasNext()); Map.Entry entry = (Map.Entry) iter.next(); Long key = (Long) entry.getKey(); Object val = entry.getValue(); if (map instanceof SortedMap) { assertEquals(intKey(key), i); } assertEquals(intKey(key), intVal(val)); assertTrue(set.contains(entry)); } assertTrue(!iter.hasNext()); } finally { StoredIterator.close(iter); } Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[0]); assertNotNull(entries); assertEquals(endKey - beginKey + 1, entries.length); for (int i = beginKey; i <= endKey; i += 1) { Map.Entry entry = entries[i - beginKey]; assertNotNull(entry); if (map instanceof SortedMap) { assertEquals(makeKey(i), entry.getKey()); assertEquals(makeVal(i), entry.getValue()); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -