@Override public synchronized Connection get(final InetSocketAddress peerAddress) { return connections.get(peerAddress); }
@Test public void testStoreFailsIfCapacityReached() { long threshold = 10; // seconds int capacity = 10; int numberOfSessions = 10; givenACacheWithEntries(capacity, threshold, numberOfSessions); assertThat(cache.remainingCapacity(), is(0)); String eldest = cache.getEldest(); String newValue = "50"; Integer key = Integer.valueOf(newValue); assertFalse(cache.put(key, newValue)); assertNull(cache.get(key)); assertNotNull(cache.get(Integer.valueOf(eldest))); }
@Test public void testStoreEvictsEldestStaleEntry() { int capacity = 10; givenACacheWithEntries(capacity, 0L, capacity); assertThat(cache.remainingCapacity(), is(0)); String eldest = cache.getEldest(); String newValue = "50"; assertTrue(cache.put(Integer.valueOf(newValue), newValue)); assertNull(cache.get(Integer.valueOf(eldest))); }
private synchronized MessageIdTracker getTracker(final InetSocketAddress destination) { MessageIdTracker tracker = trackers.get(destination); if (tracker == null && 0 < trackers.remainingCapacity()) { // create new tracker for destination lazily int mid = null == random ? 0 : random.nextInt(MessageIdTracker.TOTAL_NO_OF_MIDS); switch (mode) { case NULL: tracker = new NullMessageIdTracker(mid); break; case MAPBASED: tracker = new MapBasedMessageIdTracker(mid, config); break; case GROUPED: default: tracker = new GroupedMessageIdTracker(mid, config); break; } trackers.put(destination, tracker); } return tracker; } }
@Test public void testStoreAddsNewValueIfCapacityNotReached() { int capacity = 10; givenACacheWithEntries(capacity, 0L, capacity - 1); assertThat(cache.remainingCapacity(), is(1)); String eldest = cache.getEldest(); String newValue = "50"; assertTrue(cache.put(50, newValue)); assertNotNull(cache.get(Integer.valueOf(eldest))); assertThat(cache.remainingCapacity(), is(0)); }