private UndeleteOperationTracker getOperationTracker(int parallelism) {
    Properties props = new Properties();
    props.setProperty(RouterConfig.ROUTER_HOSTNAME, "localhost");
    props.setProperty(RouterConfig.ROUTER_DATACENTER_NAME, localDcName);
    props.setProperty(RouterConfig.ROUTER_OPERATION_TRACKER_TERMINATE_ON_NOT_FOUND_ENABLED, "true");
    props.setProperty(RouterConfig.ROUTER_GET_ELIGIBLE_REPLICAS_BY_STATE_ENABLED,
        Boolean.toString(replicasStateEnabled));
    props.setProperty(RouterConfig.ROUTER_UNDELETE_REQUEST_PARALLELISM, Integer.toString(parallelism));
    RouterConfig routerConfig = new RouterConfig(new VerifiableProperties(props));
    NonBlockingRouterMetrics routerMetrics = new NonBlockingRouterMetrics(mockClusterMap, routerConfig);
    return new UndeleteOperationTracker(routerConfig, mockPartition, originatingDcName, routerMetrics);
  }
Returns {@link UndeleteOperationTracker}.
@param parallelism the number of parallel requests that can be in flight.
@return {@link UndeleteOperationTracker}.
ambry-router/src/test/java/com/github/ambry/router/UndeleteOperationTrackerTest.java