private void testBlockingChannelInfo(String host, Port port, int maxConnectionsPerPortPlainText,
      int maxConnectionsPerPortSSL) throws Exception {
    Properties props = new Properties();
    props.put("connectionpool.max.connections.per.port.plain.text", "" + maxConnectionsPerPortPlainText);
    props.put("connectionpool.max.connections.per.port.ssl", "" + maxConnectionsPerPortSSL);
    props.put("clustermap.cluster.name", "test");
    props.put("clustermap.datacenter.name", "dc1");
    props.put("clustermap.host.name", "localhost");
    int maxConnectionsPerHost =
        (port.getPortType() == PortType.PLAINTEXT) ? maxConnectionsPerPortPlainText : maxConnectionsPerPortSSL;
    createAndReleaseSingleChannelTest(props, host, port);
    overSubscriptionTest(props, host, port, maxConnectionsPerHost, true);
    overSubscriptionTest(props, host, port, maxConnectionsPerHost, false);
    underSubscriptionTest(props, host, port, (maxConnectionsPerHost / 2));
  }
Tests how connection failures are handled by BlockingChannelInfo.
ambry-network/src/test/java/com/github/ambry/network/BlockingChannelConnectionPoolTest.java