@Test public void testGetNextMessageIdReturnsMid() { InMemoryMessageIdProvider provider = new InMemoryMessageIdProvider(config); InetSocketAddress peerAddress = getPeerAddress(1); int mid1 = provider.getNextMessageId(peerAddress); int mid2 = provider.getNextMessageId(peerAddress); assertThat(mid1, is(not(-1))); assertThat(mid2, is(not(-1))); assertThat(mid1, is(not(mid2))); }
@Override public int getNextMessageId(final InetSocketAddress destination) { MessageIdTracker tracker = getTracker(destination); if (tracker == null) { // we have reached the maximum number of active peers // TODO: throw an exception? return Message.NONE; } else { return tracker.getNextMessageId(); } }
@Override public synchronized void start() { if (!running) { startStatusLogging(); if (deduplicator == null) { DeduplicatorFactory factory = DeduplicatorFactory.getDeduplicatorFactory(); this.deduplicator = factory.createDeduplicator(config); } this.deduplicator.start(); if (messageIdProvider == null) { LOGGER.log(Level.CONFIG, "no MessageIdProvider set, using default {0}", InMemoryMessageIdProvider.class.getName()); messageIdProvider = new InMemoryMessageIdProvider(config); } running = true; } }
private void testLimitedTrackerGetNextMessageIdReturnsMid(InMemoryMessageIdProvider provider) { InetSocketAddress peerAddress = getPeerAddress(1); int mid1 = provider.getNextMessageId(peerAddress); int mid2 = provider.getNextMessageId(peerAddress); assertThat(mid1, is(not(Message.NONE))); assertThat(mid2, is(not(Message.NONE))); assertThat(mid1, is(not(mid2))); int mid = provider.getNextMessageId(peerAddress); for (int index = 0; index < TOTAL_NO_OF_MIDS * 2; ++index) { mid = provider.getNextMessageId(peerAddress); if (Message.NONE == mid) { break; } } assertThat(mid, is(Message.NONE)); }
@Test(expected = IllegalArgumentException.class) public void testIllegalTracker() { config.set(NetworkConfig.Keys.MID_TRACKER, "ILLEGAL"); InMemoryMessageIdProvider provider = new InMemoryMessageIdProvider(config); testLimitedTrackerGetNextMessageIdReturnsMid(provider); }
@Test public void testNullTrackerGetNextMessageIdReturnsMid() { config.set(NetworkConfig.Keys.MID_TRACKER, "NULL"); InMemoryMessageIdProvider provider = new InMemoryMessageIdProvider(config); InetSocketAddress peerAddress = getPeerAddress(1); int mid1 = provider.getNextMessageId(peerAddress); int mid2 = provider.getNextMessageId(peerAddress); assertThat(mid1, is(not(Message.NONE))); assertThat(mid2, is(not(Message.NONE))); assertThat(mid1, is(not(mid2))); for (int index = 0; index < TOTAL_NO_OF_MIDS * 2; ++index) { int mid = provider.getNextMessageId(peerAddress); assertThat(mid, is(not(Message.NONE))); } }
@Test public void testMapBasedTrackerGetNextMessageIdReturnsMid() { config.set(NetworkConfig.Keys.MID_TRACKER, "MAPBASED"); InMemoryMessageIdProvider provider = new InMemoryMessageIdProvider(config); testLimitedTrackerGetNextMessageIdReturnsMid(provider); }
@Test public void testGetNextMessageIdFailsIfMaxPeersIsReached() { int MAX_PEERS = 2; config.setLong(NetworkConfig.Keys.MAX_ACTIVE_PEERS, MAX_PEERS); InMemoryMessageIdProvider provider = new InMemoryMessageIdProvider(config); addPeers(provider, MAX_PEERS); assertThat( "Should not have been able to add more peers", provider.getNextMessageId(getPeerAddress(MAX_PEERS + 1)), is(-1)); }
@Test public void testGroupedTrackerGetNextMessageIdReturnsMid() { config.set(NetworkConfig.Keys.MID_TRACKER, "GROUPED"); InMemoryMessageIdProvider provider = new InMemoryMessageIdProvider(config); testLimitedTrackerGetNextMessageIdReturnsMid(provider); }