GatewaySessionHandlerTest createWeakMap() test simplified
This commit is contained in:
parent
4705be61f1
commit
6949d5bca7
@ -15,47 +15,21 @@
|
||||
*/
|
||||
package org.thingsboard.server.transport.mqtt.session;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.util.ConcurrentReferenceHashMap;
|
||||
|
||||
import java.util.WeakHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.locks.Lock;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
|
||||
import static org.awaitility.Awaitility.await;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.BDDMockito.willCallRealMethod;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
public class GatewaySessionHandlerTest {
|
||||
|
||||
@Test
|
||||
public void givenWeakHashMap_WhenGC_thenMapIsEmpty() {
|
||||
WeakHashMap<String, Lock> map = new WeakHashMap<>();
|
||||
|
||||
String deviceName = new String("device"); //constants are static and doesn't affected by GC, so use new instead
|
||||
map.put(deviceName, new ReentrantLock());
|
||||
assertTrue(map.containsKey(deviceName));
|
||||
|
||||
deviceName = null;
|
||||
System.gc();
|
||||
|
||||
await().atMost(10, TimeUnit.SECONDS).until(() -> !map.containsKey("device"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenConcurrentReferenceHashMap_WhenGC_thenMapIsEmpty() {
|
||||
public void givenGatewaySessionHandler_WhenCreateWeakMap_thenConcurrentReferenceHashMapClass() {
|
||||
GatewaySessionHandler gsh = mock(GatewaySessionHandler.class);
|
||||
willCallRealMethod().given(gsh).createWeakMap();
|
||||
|
||||
ConcurrentMap<String, Lock> map = gsh.createWeakMap();
|
||||
map.put("device", new ReentrantLock());
|
||||
assertTrue(map.containsKey("device"));
|
||||
|
||||
System.gc();
|
||||
|
||||
await().atMost(10, TimeUnit.SECONDS).until(() -> !map.containsKey("device"));
|
||||
assertThat(gsh.createWeakMap()).isInstanceOf(ConcurrentReferenceHashMap.class);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user