util: LinkedHashMapRemoveEldest refactored
This commit is contained in:
parent
3d3aae60d8
commit
57b0e19ec8
@ -50,11 +50,11 @@ import java.util.function.BiConsumer;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class LinkedHashMapRemoveEldest<K, V> extends LinkedHashMap<K, V> {
|
||||
final long maxEntries;
|
||||
final BiConsumer<K, V> removeConsumer;
|
||||
final BiConsumer<K, V> removalConsumer;
|
||||
|
||||
public LinkedHashMapRemoveEldest(long maxEntries, BiConsumer<K, V> removeConsumer) {
|
||||
public LinkedHashMapRemoveEldest(long maxEntries, BiConsumer<K, V> removalConsumer) {
|
||||
this.maxEntries = maxEntries;
|
||||
this.removeConsumer = removeConsumer;
|
||||
this.removalConsumer = removalConsumer;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -62,7 +62,7 @@ public class LinkedHashMapRemoveEldest<K, V> extends LinkedHashMap<K, V> {
|
||||
if (size() <= maxEntries) {
|
||||
return false;
|
||||
}
|
||||
removeConsumer.accept(eldest.getKey(), eldest.getValue());
|
||||
removalConsumer.accept(eldest.getKey(), eldest.getValue());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -37,6 +37,7 @@ import java.util.LinkedHashMap;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.instanceOf;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.CoreMatchers.notNullValue;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
|
||||
public class LinkedHashMapRemoveEldestTest {
|
||||
@ -44,7 +45,7 @@ public class LinkedHashMapRemoveEldestTest {
|
||||
public static final long MAX_ENTRIES = 10L;
|
||||
long removeCount = 0;
|
||||
|
||||
void removeConsumer(Long id, String name) {
|
||||
void removalConsumer(Long id, String name) {
|
||||
removeCount++;
|
||||
assertThat(id, is(Matchers.lessThan(MAX_ENTRIES)));
|
||||
assertThat(name, is(id.toString()));
|
||||
@ -54,9 +55,10 @@ public class LinkedHashMapRemoveEldestTest {
|
||||
public void givenMap_whenOverSized_thenVerifyRemovedEldest() {
|
||||
//given
|
||||
LinkedHashMapRemoveEldest<Long, String> map =
|
||||
new LinkedHashMapRemoveEldest<>(MAX_ENTRIES, this::removeConsumer);
|
||||
new LinkedHashMapRemoveEldest<>(MAX_ENTRIES, this::removalConsumer);
|
||||
|
||||
assertThat(map.getMaxEntries(), is(MAX_ENTRIES));
|
||||
assertThat(map.getRemovalConsumer(), notNullValue());
|
||||
assertThat(map, instanceOf(LinkedHashMap.class));
|
||||
assertThat(map, instanceOf(LinkedHashMapRemoveEldest.class));
|
||||
assertThat(map.size(), is(0));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user