private NonBlockingRouter getNonBlockingRouter()
      throws IOException, GeneralSecurityException, ReflectiveOperationException {
    VerifiableProperties vProps = getRouterConfigInVerifiableProperties();
    if (testEncryption && instantiateEncryptionCast) {
      setupEncryptionCast(vProps);
    }
    metrics = new NonBlockingRouterMetrics(mockClusterMap, null);
    routerConfig = new RouterConfig(vProps);
    router = new NonBlockingRouter(routerConfig, metrics,
        new MockNetworkClientFactory(vProps, mockSelectorState, MAX_PORTS_PLAIN_TEXT, MAX_PORTS_SSL,
            CHECKOUT_TIMEOUT_MS, mockServerLayout, mockTime), notificationSystem, mockClusterMap, kms, cryptoService,
        cryptoJobHandler, accountService, mockTime, MockClusterMap.DEFAULT_PARTITION_CLASS, null);
    return router;
  }
@return Return a {@link NonBlockingRouter} created with default {@link VerifiableProperties}
ambry-router/src/test/java/com/github/ambry/router/PutManagerTest.java