项目:guava-mock
文件:MapMakerInternalMapTest.java
public void testNewEntry() {
for (MapMaker maker : allWeakValueStrengthMakers()) {
MapMakerInternalMap<Object,Object,?,?> map = makeMap(maker);
Segment<Object,?> segment = map.segments[0];
Object keyOne = new Object();
Object valueOne = new Object();
int hashOne = map.hash(keyOne);
InternalEntry<Object,?> entryOne = segment.newEntryForTesting(keyOne,hashOne,null);
WeakValueReference<Object,?> valueRefOne =
segment.newWeakValueReferenceForTesting(entryOne,valueOne);
assertSame(valueOne,valueRefOne.get());
segment.setWeakValueReferenceForTesting(entryOne,valueRefOne);
assertSame(keyOne,entryOne.getKey());
assertEquals(hashOne,entryOne.getHash());
assertNull(entryOne.getNext());
assertSame(valueRefOne,segment.getWeakValueReferenceForTesting(entryOne));
Object keyTwo = new Object();
Object valueTwo = new Object();
int hashTwo = map.hash(keyTwo);
InternalEntry<Object,?> entryTwo =
segment.newEntryForTesting(keyTwo,hashTwo,entryOne);
WeakValueReference<Object,?> valueRefTwo =
segment.newWeakValueReferenceForTesting(entryTwo,valueTwo);
assertSame(valueTwo,valueRefTwo.get());
segment.setWeakValueReferenceForTesting(entryTwo,valueRefTwo);
assertSame(keyTwo,entryTwo.getKey());
assertEquals(hashTwo,entryTwo.getHash());
assertSame(entryOne,entryTwo.getNext());
assertSame(valueRefTwo,segment.getWeakValueReferenceForTesting(entryTwo));
}
}
项目:guava-mock
文件:MapMakerInternalMapTest.java
public void testSegmentReplace() {
MapMakerInternalMap<Object,?> map =
makeMap(createMapMaker().concurrencyLevel(1).weakValues());
Segment<Object,?> segment = map.segments[0];
// Todo(fry): check recency ordering
Object key = new Object();
int hash = map.hash(key);
Object oldValue = new Object();
Object newValue = new Object();
atomicreferenceArray<? extends InternalEntry<Object,?>> table = segment.table;
int index = hash & (table.length() - 1);
InternalEntry<Object,?> entry = segment.newEntryForTesting(key,hash,null);
WeakValueReference<Object,?> oldValueRef =
segment.newWeakValueReferenceForTesting(entry,oldValue);
segment.setWeakValueReferenceForTesting(entry,oldValueRef);
// no entry
assertNull(segment.replace(key,newValue));
assertEquals(0,segment.count);
// same key
segment.setTableEntryForTesting(index,entry);
segment.count++;
assertEquals(1,segment.count);
assertSame(oldValue,segment.get(key,hash));
assertSame(oldValue,segment.replace(key,newValue));
assertEquals(1,segment.count);
assertSame(newValue,hash));
// cleared
segment.setWeakValueReferenceForTesting(entry,oldValueRef);
oldValueRef.clear();
assertNull(segment.replace(key,segment.count);
assertNull(segment.get(key,hash));
}
项目:guava-mock
文件:MapMakerInternalMapTest.java
public void testSegmentPut() {
MapMakerInternalMap<Object,?> segment = map.segments[0];
// Todo(fry): check recency ordering
Object key = new Object();
int hash = map.hash(key);
Object oldValue = new Object();
Object newValue = new Object();
// no entry
assertEquals(0,segment.count);
assertNull(segment.put(key,oldValue,false));
assertEquals(1,segment.count);
// same key
assertSame(oldValue,segment.put(key,newValue,hash));
// cleared
InternalEntry<Object,?> entry = segment.getEntry(key,hash);
WeakValueReference<Object,oldValueRef);
assertSame(oldValue,hash));
oldValueRef.clear();
assertNull(segment.put(key,hash));
}
项目:guava-mock
文件:MapMakerInternalMapTest.java
public void testSegmentPutIfAbsent() {
MapMakerInternalMap<Object,true));
assertEquals(1,hash));
}
项目:guava-mock
文件:MapMakerInternalMapTest.java
public void testSegmentRemove() {
MapMakerInternalMap<Object,?> segment = map.segments[0];
Object key = new Object();
int hash = map.hash(key);
Object oldValue = new Object();
atomicreferenceArray<? extends InternalEntry<Object,oldValueRef);
// no entry
assertEquals(0,segment.count);
assertNull(segment.remove(key,hash));
assertEquals(0,segment.remove(key,hash));
// cleared
segment.setTableEntryForTesting(index,hash));
oldValueRef.clear();
assertNull(segment.remove(key,hash));
}
项目:guava-mock
文件:MapMakerInternalMapTest.java
public void testClearValue() {
MapMakerInternalMap<Object,?> map =
makeMap(createMapMaker().concurrencyLevel(1).initialCapacity(1).weakValues());
Segment<Object,?> segment = map.segments[0];
atomicreferenceArray<? extends InternalEntry<Object,?>> table = segment.table;
assertEquals(1,table.length());
Object key = new Object();
Object value = new Object();
int hash = map.hash(key);
InternalEntry<Object,null);
segment.setValueForTesting(entry,value);
WeakValueReference<Object,?> valueRef = segment.getWeakValueReferenceForTesting(entry);
// clear absent
assertFalse(segment.clearValueForTesting(key,valueRef));
segment.setTableEntryForTesting(0,entry);
// don't increment count; this is used during computation
assertTrue(segment.clearValueForTesting(key,valueRef));
// no notification sent with clearValue
assertEquals(0,segment.count);
assertNull(table.get(0));
// clear wrong value reference
segment.setTableEntryForTesting(0,entry);
WeakValueReference<Object,?> otherValueRef =
segment.newWeakValueReferenceForTesting(entry,value);
segment.setWeakValueReferenceForTesting(entry,otherValueRef);
assertFalse(segment.clearValueForTesting(key,valueRef));
segment.setWeakValueReferenceForTesting(entry,valueRef);
assertTrue(segment.clearValueForTesting(key,valueRef));
}
项目:guava-mock
文件:MapMakerInternalMapTest.java
public void testDrainValueReferenceQueueOnWrite() {
for (MapMaker maker : allWeakValueStrengthMakers()) {
MapMakerInternalMap<Object,?> map = makeMap(maker.concurrencyLevel(1));
if (maker.getValueStrength() == Strength.WEAK) {
Segment<Object,?> segment = map.segments[0];
Object keyOne = new Object();
int hashOne = map.hash(keyOne);
Object valueOne = new Object();
Object keyTwo = new Object();
Object valueTwo = new Object();
map.put(keyOne,valueOne);
@SuppressWarnings("unchecked")
WeakValueEntry<Object,?> entry =
(WeakValueEntry<Object,?>) segment.getEntry(keyOne,hashOne);
WeakValueReference<Object,?> valueReference = entry.getValueReference();
@SuppressWarnings("unchecked")
Reference<Object> reference = (Reference) valueReference;
reference.enqueue();
map.put(keyTwo,valueTwo);
assertFalse(map.containsKey(keyOne));
assertFalse(map.containsValue(valueOne));
assertNull(map.get(keyOne));
assertEquals(1,map.size());
assertNull(segment.getValueReferenceQueueForTesting().poll());
}
}
}
项目:guava-mock
文件:MapMakerInternalMapTest.java
public void testDrainValueReferenceQueueOnRead() {
for (MapMaker maker : allWeakValueStrengthMakers()) {
MapMakerInternalMap<Object,?> segment = map.segments[0];
Object keyOne = new Object();
int hashOne = map.hash(keyOne);
Object valueOne = new Object();
Object keyTwo = new Object();
map.put(keyOne,?> valueReference = entry.getValueReference();
@SuppressWarnings("unchecked")
Reference<Object> reference = (Reference) valueReference;
reference.enqueue();
for (int i = 0; i < SMALL_MAX_SIZE; i++) {
Object unused = map.get(keyTwo);
}
assertFalse(map.containsKey(keyOne));
assertFalse(map.containsValue(valueOne));
assertNull(map.get(keyOne));
assertEquals(0,map.size());
assertNull(segment.getValueReferenceQueueForTesting().poll());
}
}
}
public void testNewEntry() {
for (MapMaker maker : allWeakValueStrengthMakers()) {
MapMakerInternalMap<Object,segment.getWeakValueReferenceForTesting(entryTwo));
}
}
public void testSegmentReplace() {
MapMakerInternalMap<Object,hash));
}
public void testSegmentPut() {
MapMakerInternalMap<Object,hash));
}
public void testSegmentPutIfAbsent() {
MapMakerInternalMap<Object,hash));
}
public void testSegmentRemove() {
MapMakerInternalMap<Object,hash));
}
public void testClearValue() {
MapMakerInternalMap<Object,valueRef));
}
public void testDrainValueReferenceQueueOnWrite() {
for (MapMaker maker : allWeakValueStrengthMakers()) {
MapMakerInternalMap<Object,map.size());
assertNull(segment.getValueReferenceQueueForTesting().poll());
}
}
}
public void testDrainValueReferenceQueueOnRead() {
for (MapMaker maker : allWeakValueStrengthMakers()) {
MapMakerInternalMap<Object,map.size());
assertNull(segment.getValueReferenceQueueForTesting().poll());
}
}
}
项目:guava
文件:MapMakerInternalMapTest.java
public void testNewEntry() {
for (MapMaker maker : allWeakValueStrengthMakers()) {
MapMakerInternalMap<Object,segment.getWeakValueReferenceForTesting(entryTwo));
}
}
项目:guava
文件:MapMakerInternalMapTest.java
public void testSegmentReplace() {
MapMakerInternalMap<Object,hash));
}
项目:guava
文件:MapMakerInternalMapTest.java
public void testSegmentPut() {
MapMakerInternalMap<Object,hash));
}
项目:guava
文件:MapMakerInternalMapTest.java
public void testSegmentPutIfAbsent() {
MapMakerInternalMap<Object,hash));
}
项目:guava
文件:MapMakerInternalMapTest.java
public void testSegmentRemove() {
MapMakerInternalMap<Object,hash));
}
项目:guava
文件:MapMakerInternalMapTest.java
public void testClearValue() {
MapMakerInternalMap<Object,valueRef));
}
项目:guava
文件:MapMakerInternalMapTest.java
public void testDrainValueReferenceQueueOnWrite() {
for (MapMaker maker : allWeakValueStrengthMakers()) {
MapMakerInternalMap<Object,map.size());
assertNull(segment.getValueReferenceQueueForTesting().poll());
}
}
}
项目:guava
文件:MapMakerInternalMapTest.java
public void testDrainValueReferenceQueueOnRead() {
for (MapMaker maker : allWeakValueStrengthMakers()) {
MapMakerInternalMap<Object,map.size());
assertNull(segment.getValueReferenceQueueForTesting().poll());
}
}
}
项目:guava-mock
文件:MapMakerInternalMapTest.java
public void testSegmentGetAndContains() {
MapMakerInternalMap<Object,?> segment = map.segments[0];
// Todo(fry): check recency ordering
Object key = new Object();
int hash = map.hash(key);
Object value = new Object();
atomicreferenceArray<? extends InternalEntry<Object,value);
assertNull(segment.get(key,hash));
// count == 0
segment.setTableEntryForTesting(index,entry);
assertNull(segment.get(key,hash));
assertFalse(segment.containsKey(key,hash));
assertFalse(segment.containsValue(value));
// count == 1
segment.count++;
assertSame(value,hash));
assertTrue(segment.containsKey(key,hash));
assertTrue(segment.containsValue(value));
// don't see absent values Now that count > 0
assertNull(segment.get(new Object(),hash));
// null key
InternalEntry<Object,?> nullEntry = segment.newEntryForTesting(null,entry);
Object nullValue = new Object();
WeakValueReference<Object,?> nullValueRef =
segment.newWeakValueReferenceForTesting(nullEntry,nullValue);
segment.setWeakValueReferenceForTesting(nullEntry,nullValueRef);
segment.setTableEntryForTesting(index,nullEntry);
// skip the null key
assertSame(value,hash));
assertTrue(segment.containsValue(value));
assertFalse(segment.containsValue(nullValue));
// hash collision
InternalEntry<Object,?> dummyEntry =
segment.newEntryForTesting(new Object(),entry);
Object dummyValue = new Object();
WeakValueReference<Object,?> dummyValueRef =
segment.newWeakValueReferenceForTesting(dummyEntry,dummyValue);
segment.setWeakValueReferenceForTesting(dummyEntry,dummyValueRef);
segment.setTableEntryForTesting(index,dummyEntry);
assertSame(value,hash));
assertTrue(segment.containsValue(value));
assertTrue(segment.containsValue(dummyValue));
// key collision
dummyEntry = segment.newEntryForTesting(key,entry);
dummyValue = new Object();
dummyValueRef = segment.newWeakValueReferenceForTesting(dummyEntry,dummyEntry);
// returns the most recent entry
assertSame(dummyValue,hash));
assertTrue(segment.containsValue(value));
assertTrue(segment.containsValue(dummyValue));
}
项目:guava-mock
文件:MapMakerInternalMapTest.java
public void testSegmentReplaceValue() {
MapMakerInternalMap<Object,oldValueRef);
// no entry
assertFalse(segment.replace(key,segment.count);
// same value
segment.setTableEntryForTesting(index,hash));
assertTrue(segment.replace(key,hash));
// different value
assertFalse(segment.replace(key,oldValueRef);
oldValueRef.clear();
assertFalse(segment.replace(key,hash));
}
项目:guava-mock
文件:MapMakerInternalMapTest.java
public void testSegmentRemoveValue() {
MapMakerInternalMap<Object,?> segment = map.segments[0];
Object key = new Object();
int hash = map.hash(key);
Object oldValue = new Object();
Object newValue = new Object();
atomicreferenceArray<? extends InternalEntry<Object,hash));
assertTrue(segment.remove(key,oldValue));
assertEquals(0,hash));
// different value
segment.setTableEntryForTesting(index,hash));
assertFalse(segment.remove(key,hash));
// cleared
assertSame(oldValue,hash));
oldValueRef.clear();
assertFalse(segment.remove(key,hash));
}
public void testSegmentGetAndContains() {
MapMakerInternalMap<Object,hash));
assertTrue(segment.containsValue(value));
assertTrue(segment.containsValue(dummyValue));
}
public void testSegmentReplaceValue() {
MapMakerInternalMap<Object,hash));
}
public void testSegmentRemoveValue() {
MapMakerInternalMap<Object,hash));
}
项目:guava
文件:MapMakerInternalMapTest.java
public void testSegmentGetAndContains() {
MapMakerInternalMap<Object,hash));
assertTrue(segment.containsValue(value));
assertTrue(segment.containsValue(dummyValue));
}
项目:guava
文件:MapMakerInternalMapTest.java
public void testSegmentReplaceValue() {
MapMakerInternalMap<Object,hash));
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。