📄 collectiontest.java
字号:
if (isEntityBinding) { map = new StoredMap(store, keyBinding, entityBinding, testStore.getKeyAssigner()); valueSet = new StoredValueSet(store, entityBinding, true); } else { map = new StoredMap(store, keyBinding, valueBinding, testStore.getKeyAssigner()); valueSet = new StoredValueSet(store, valueBinding, true); } smap = null; keySet = new StoredKeySet(store, keyBinding, true); } imap = map; // create primary list if (testStore.hasRecNumAccess()) { if (isEntityBinding) { ilist = new StoredList(store, entityBinding, testStore.getKeyAssigner()); } else { ilist = new StoredList(store, valueBinding, testStore.getKeyAssigner()); } list = ilist; } else { try { if (isEntityBinding) { ilist = new StoredList(store, entityBinding, testStore.getKeyAssigner()); } else { ilist = new StoredList(store, valueBinding, testStore.getKeyAssigner()); } fail(); } catch (IllegalArgumentException expected) {} } testCreation(map); if (list != null) { testCreation(list); assertNotNull(smap); } testMapCreation(map); addAll(); testAll(); } void testIndexed() throws Exception { // create primary map if (isEntityBinding) { map = new StoredMap(store, keyBinding, entityBinding, testStore.getKeyAssigner()); } else { map = new StoredMap(store, keyBinding, valueBinding, testStore.getKeyAssigner()); } imap = map; smap = null; // create primary list if (testStore.hasRecNumAccess()) { if (isEntityBinding) { list = new StoredList(store, entityBinding, testStore.getKeyAssigner()); } else { list = new StoredList(store, valueBinding, testStore.getKeyAssigner()); } ilist = list; } addAll(); readAll(); // create indexed map (keySet/valueSet) if (testStore.isOrdered()) { if (isEntityBinding) { map = smap = new StoredSortedMap(index, keyBinding, entityBinding, true); valueSet = new StoredSortedValueSet(index, entityBinding, true); } else { map = smap = new StoredSortedMap(index, keyBinding, valueBinding, true); // sorted value set is not possible since key cannot be derived // for performing subSet, etc. } keySet = new StoredSortedKeySet(index, keyBinding, true); } else { if (isEntityBinding) { map = new StoredMap(index, keyBinding, entityBinding, true); valueSet = new StoredValueSet(index, entityBinding, true); } else { map = new StoredMap(index, keyBinding, valueBinding, true); valueSet = new StoredValueSet(index, valueBinding, true); } smap = null; keySet = new StoredKeySet(index, keyBinding, true); } // create indexed list if (testStore.hasRecNumAccess()) { if (isEntityBinding) { list = new StoredList(index, entityBinding, true); } else { list = new StoredList(index, valueBinding, true); } } else { try { if (isEntityBinding) { list = new StoredList(index, entityBinding, true); } else { list = new StoredList(index, valueBinding, true); } fail(); } catch (IllegalArgumentException expected) {} } testCreation(map); testCreation((StoredContainer) map.values()); testCreation((StoredContainer) map.keySet()); testCreation((StoredContainer) map.entrySet()); if (list != null) { testCreation(list); assertNotNull(smap); } testMapCreation(map); testAll(); } void testAll() throws Exception { checkKeySetAndValueSet(); readAll(); updateAll(); readAll(); if (!map.areKeysRenumbered()) { removeOdd(); readEven(); addOdd(); readAll(); removeOddIter(); readEven(); if (imap.areDuplicatesAllowed()) { addOddDup(); } else { addOdd(); } readAll(); removeOddEntry(); readEven(); addOdd(); readAll(); if (isEntityBinding) { removeOddEntity(); readEven(); addOddEntity(); readAll(); } bulkOperations(); } if (isListAddAllowed()) { removeOddList(); readEvenList(); addOddList(); readAll(); if (!isEntityBinding) { removeOddListValue(); readEvenList(); addOddList(); readAll(); } } if (list != null) { bulkListOperations(); } else { listOperationsNotAllowed(); } if (smap != null) { readWriteRange(SUB, 1, 1); readWriteRange(HEAD, 1, 1); readWriteRange(SUB, 1, MAX_KEY); readWriteRange(HEAD, 1, MAX_KEY); readWriteRange(TAIL, 1, MAX_KEY); readWriteRange(SUB, 1, 3); readWriteRange(HEAD, 1, 3); readWriteRange(SUB, 2, 2); readWriteRange(SUB, 2, MAX_KEY); readWriteRange(TAIL, 2, MAX_KEY); readWriteRange(SUB, MAX_KEY, MAX_KEY); readWriteRange(TAIL, MAX_KEY, MAX_KEY); readWriteRange(SUB, MAX_KEY + 1, MAX_KEY + 1); readWriteRange(TAIL, MAX_KEY + 1, MAX_KEY + 1); readWriteRange(SUB, 0, 0); readWriteRange(HEAD, 0, 0); } updateAll(); readAll(); if (map.areDuplicatesAllowed()) { readWriteDuplicates(); readAll(); } else { duplicatesNotAllowed(); readAll(); } if (testEnv.isCdbMode()) { testCdbLocking(); } removeAll(); if (isListAddAllowed()) { testIterAddList(); clearAll(); } if (imap.areDuplicatesAllowed()) { testIterAddDuplicates(); clearAll(); } if (isListAddAllowed()) { addAllList(); readAll(); removeAllList(); } appendAll(); } void checkKeySetAndValueSet() { // use bulk operations to check that explicitly constructed // keySet/valueSet are equivalent assertTrue(imap.keySet().equals(keySet)); if (valueSet != null) { assertTrue(imap.values().equals(valueSet)); } } void addAll() throws Exception { writeRunner.run(new TransactionWorker() { public void doWork() throws Exception { assertTrue(imap.isEmpty()); Iterator iter = imap.entrySet().iterator(); try { assertTrue(!iter.hasNext()); } finally { StoredIterator.close(iter); } assertEquals(0, imap.keySet().toArray().length); assertEquals(0, imap.keySet().toArray(new Object[0]).length); assertEquals(0, imap.entrySet().toArray().length); assertEquals(0, imap.entrySet().toArray(new Object[0]).length); assertEquals(0, imap.values().toArray().length); assertEquals(0, imap.values().toArray(new Object[0]).length); for (int i = beginKey; i <= endKey; i += 1) { Long key = makeKey(i); Object val = makeVal(i); assertNull(imap.get(key)); assertTrue(!imap.keySet().contains(key)); assertTrue(!imap.values().contains(val)); assertNull(imap.put(key, val)); assertEquals(val, imap.get(key)); assertTrue(imap.keySet().contains(key)); assertTrue(imap.values().contains(val)); assertTrue(imap.duplicates(key).contains(val)); if (!imap.areDuplicatesAllowed()) { assertEquals(val, imap.put(key, val)); } checkDupsSize(1, imap.duplicates(key)); } assertTrue(!imap.isEmpty()); } }); } void appendAll() throws Exception { writeRunner.run(new TransactionWorker() { public void doWork() throws Exception { assertTrue(imap.isEmpty()); TestKeyAssigner keyAssigner = testStore.getKeyAssigner(); if (keyAssigner != null) { keyAssigner.reset(); } for (int i = beginKey; i <= endKey; i += 1) { boolean useList = (i & 1) == 0; Long key = makeKey(i); Object val = makeVal(i); assertNull(imap.get(key)); if (keyAssigner != null) { if (useList && ilist != null) { assertEquals(i - 1, ilist.append(val)); } else { assertEquals(key, imap.append(val)); } assertEquals(val, imap.get(key)); } else { Long recnoKey; if (useList && ilist != null) { recnoKey = new Long(ilist.append(val) + 1); } else { recnoKey = (Long) imap.append(val); } assertNotNull(recnoKey); Object recnoVal; if (isEntityBinding) { recnoVal = makeEntity(recnoKey.intValue(), i); } else { recnoVal = val; } assertEquals(recnoVal, imap.get(recnoKey)); } } } }); } void updateAll() throws Exception { writeRunner.run(new TransactionWorker() { public void doWork() throws Exception { for (int i = beginKey; i <= endKey; i += 1) { Long key = makeKey(i); Object val = makeVal(i); if (!imap.areDuplicatesAllowed()) { assertEquals(val, imap.put(key, val)); } if (isEntityBinding) { assertTrue(!imap.values().add(val)); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -