|
|
@ -30,7 +30,7 @@ |
|
|
*/ |
|
|
*/ |
|
|
package org.thingsboard.common.util; |
|
|
package org.thingsboard.common.util; |
|
|
|
|
|
|
|
|
import org.junit.Before; |
|
|
import org.hamcrest.Matchers; |
|
|
import org.junit.Test; |
|
|
import org.junit.Test; |
|
|
|
|
|
|
|
|
import java.util.LinkedHashMap; |
|
|
import java.util.LinkedHashMap; |
|
|
@ -42,26 +42,33 @@ import static org.hamcrest.MatcherAssert.assertThat; |
|
|
public class LinkedHashMapRemoveEldestTest { |
|
|
public class LinkedHashMapRemoveEldestTest { |
|
|
|
|
|
|
|
|
public static final long MAX_ENTRIES = 10L; |
|
|
public static final long MAX_ENTRIES = 10L; |
|
|
LinkedHashMapRemoveEldest<Long, String> map; |
|
|
long removeCount = 0; |
|
|
|
|
|
|
|
|
@Before |
|
|
void removeConsumer(Long id, String name) { |
|
|
public void setUp() throws Exception { |
|
|
removeCount++; |
|
|
map = new LinkedHashMapRemoveEldest<Long, String>().withMaxEntries(MAX_ENTRIES); |
|
|
assertThat(id, is(Matchers.lessThan(MAX_ENTRIES))); |
|
|
|
|
|
assertThat(name, is(id.toString())); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Test |
|
|
@Test |
|
|
public void givenMap_whenOverSized_thenVerifyRemovedEldest() { |
|
|
public void givenMap_whenOverSized_thenVerifyRemovedEldest() { |
|
|
|
|
|
//given
|
|
|
|
|
|
LinkedHashMapRemoveEldest<Long, String> map = |
|
|
|
|
|
new LinkedHashMapRemoveEldest<>(MAX_ENTRIES, this::removeConsumer); |
|
|
|
|
|
|
|
|
assertThat(map.getMaxEntries(), is(MAX_ENTRIES)); |
|
|
assertThat(map.getMaxEntries(), is(MAX_ENTRIES)); |
|
|
assertThat(map, instanceOf(LinkedHashMap.class)); |
|
|
assertThat(map, instanceOf(LinkedHashMap.class)); |
|
|
assertThat(map, instanceOf(LinkedHashMapRemoveEldest.class)); |
|
|
assertThat(map, instanceOf(LinkedHashMapRemoveEldest.class)); |
|
|
assertThat(map.size(), is(0)); |
|
|
assertThat(map.size(), is(0)); |
|
|
|
|
|
|
|
|
|
|
|
//when
|
|
|
for (long i = 0; i < MAX_ENTRIES * 2; i++) { |
|
|
for (long i = 0; i < MAX_ENTRIES * 2; i++) { |
|
|
map.put(i, String.valueOf(i)); |
|
|
map.put(i, String.valueOf(i)); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
assertThat(map.size(), is((int) MAX_ENTRIES)); |
|
|
//then
|
|
|
|
|
|
assertThat((long) map.size(), is(MAX_ENTRIES)); |
|
|
|
|
|
assertThat(removeCount, is(MAX_ENTRIES)); |
|
|
for (long i = MAX_ENTRIES; i < MAX_ENTRIES * 2; i++) { |
|
|
for (long i = MAX_ENTRIES; i < MAX_ENTRIES * 2; i++) { |
|
|
assertThat(map.get(i), is(String.valueOf(i))); |
|
|
assertThat(map.get(i), is(String.valueOf(i))); |
|
|
} |
|
|
} |
|
|
|