public void testRegisterCatRestHandler() {
   Settings settings = Settings.EMPTY;
   NetworkModule module = new NetworkModule(new NetworkService(settings), settings, false, null);
   module.registerRestHandler(FakeCatRestHandler.class);
   // also check a builtin is bound
   assertSetMultiBinding(
       module, AbstractCatAction.class, FakeCatRestHandler.class, RestNodesAction.class);
 }
  public void testRegisterRestHandler() {
    Settings settings = Settings.EMPTY;
    NetworkModule module = new NetworkModule(new NetworkService(settings), settings, false, null);
    module.registerRestHandler(FakeRestHandler.class);
    // also check a builtin is bound
    assertSetMultiBinding(module, RestHandler.class, FakeRestHandler.class, RestMainAction.class);

    // check registration not allowed for transport only
    module = new NetworkModule(new NetworkService(settings), settings, true, null);
    try {
      module.registerRestHandler(FakeRestHandler.class);
      fail();
    } catch (IllegalArgumentException e) {
      assertTrue(e.getMessage().contains("Cannot register rest handler"));
      assertTrue(e.getMessage().contains("for transport client"));
    }
  }