예제 #1
0
  public void testQRP() throws Exception {
    RoutedConnection c = connectionManager.getInitializedConnections().get(0);
    c.getRoutedConnectionStatistics().incrementNextQRPForwardTime(0);
    PatchTableMessage ptm =
        BlockingConnectionUtils.getFirstInstanceOfMessageType(
            testUP[0], PatchTableMessage.class, 22000);
    assertNotNull(ptm);
    QueryRouteTable qrt = new QueryRouteTable();
    qrt.patch(ptm);

    // initially, the qrp words should be included
    assertTrue(qrt.contains(queryRequestFactory.createQuery("badger")));

    // change some words, an updated qrp should be sent shortly
    SearchSettings.LIME_QRP_ENTRIES.set(new String[] {"mushroom"});
    c.getRoutedConnectionStatistics().incrementNextQRPForwardTime(0);
    triggerSimppUpdate();
    ptm =
        BlockingConnectionUtils.getFirstInstanceOfMessageType(
            testUP[0], PatchTableMessage.class, 12000);
    assertNotNull(ptm);
    qrt.patch(ptm);

    // the new word should be there, the old one gone.
    assertTrue(qrt.contains(queryRequestFactory.createQuery("mushroom")));
    assertFalse(qrt.contains(queryRequestFactory.createQuery("badger")));
  }