示例#1
0
  @Test
  public void testNested() throws Exception {

    final TestHandler account = new TestHandler("account");
    final Router accounts = new Router().add("/{id}", account);

    final Router root = new Router().add("/accounts", accounts);

    assertEquals(accounts, root.route(new TestRequest(null, "/accounts/1234", null)).handler);
    assertEquals(account, accounts.route(new TestRequest(null, "/1234", null)).handler);
  }
  @Test
  public void testTime() {
    int connections = 5;
    List<Integer> opIds = new ArrayList<>();
    // Build a router
    for (int i = 0; i < connections; i++) {
      opIds.add(i);
    }
    Router r = RouterFactory.buildRouterFor(opIds, false);

    // Try router
    // Try router
    int iter = 10000000;
    long start = System.nanoTime();
    for (int i = 0; i < iter; i++) {
      int opId = r.route();
    }
    long stop = System.nanoTime();
    long totalMillis = (stop - start) / 1000000;
    System.out.println(
        "Time to route: "
            + iter
            + " to "
            + connections
            + " downstreams is: "
            + totalMillis
            + " ms");
    assert (true);
  }
示例#3
0
  @Test
  public void testFlat() throws Exception {

    final TestHandler root = new TestHandler("root");
    final TestHandler account = new TestHandler("account");
    final TestHandler permissions = new TestHandler("permissions");
    final TestHandler prefix = new TestHandler("prefix");
    final TestHandler permission = new TestHandler("permission");

    final Router router =
        new Router()
            .add("/", root) //
            .add("/{id}", account) //
            .add("/{id}/permissions", permissions) //
            .add("/{id}/permissions/{prefix}", prefix) //
            .add("/{id}/permission/{token}", permission);

    assertEquals(root, router.route(new TestRequest(null, "/", null)).handler);
    assertEquals(account, router.route(new TestRequest(null, "/1234", null)).handler);
    assertEquals(account, router.route(new TestRequest(null, "/acds", null)).handler);
    assertEquals(account, router.route(new TestRequest(null, "/acds/", null)).handler);
    assertEquals(account, router.route(new TestRequest(null, "/acds/x", null)).handler);
    assertEquals(
        permissions, router.route(new TestRequest(null, "/1234/permissions", null)).handler);
    assertEquals(
        prefix,
        router.route(new TestRequest(null, "/1234/permissions/com.barchart.feed", null)).handler);
    assertEquals(
        permission,
        router.route(
                new TestRequest(null, "/1234/permission/com.barchart.feed.stream.symbols", null))
            .handler);
  }
  @Test
  public void test() {
    int connections = 100;
    List<Integer> opIds = new ArrayList<>();
    // Build a router
    for (int i = 0; i < connections; i++) {
      opIds.add(i);
    }
    Router r = RouterFactory.buildRouterFor(opIds, false);

    // Try router
    int iter = 1000;
    for (int i = 0; i < iter; i++) {
      int opId = r.route();
      System.out.println("route-to: " + opId);
    }
    assert (true);
  }
示例#5
0
  private List<RouteNodeInfo> testRoute(
      RouteRuleOp ruleOp, String ruleParamValue, String destination, String[] availHosts) {
    RouteInfo route = new RouteInfo();
    RouteRuleInfo rule = new RouteRuleInfo();
    rule.setType(RouteRuleType.HOST);
    rule.setSrcOp(ruleOp);
    rule.setSrcValue(ruleParamValue);
    rule.setDestination(destination);
    route.getRules().add(rule);

    for (String host : availHosts) {
      RouteNodeInfo node = new RouteNodeInfo();
      node.setHost(host);
      route.getNodes().add(node);
    }

    return router.route(rule, route.getNodes(), null);
  }
  public ResponseWaiter route(final Message message) {

    return router.route(message);
  }
示例#7
0
 @Test
 public void canHandleNull() {
   router.route(null);
 }