@Test
public void testGetSslHandshakeDetectionTimeoutMillisProperty() {

    Assert.assertEquals(
            X509Util.DEFAULT_HANDSHAKE_DETECTION_TIMEOUT_MILLIS,
            x509Util.getSslHandshakeTimeoutMillis());
    // Note: need to create a new ClientX509Util each time to pick up modified property value
    String newPropertyString = Integer.toString(X509Util.DEFAULT_HANDSHAKE_DETECTION_TIMEOUT_MILLIS + 1);
    System.setProperty(x509Util.getSslHandshakeDetectionTimeoutMillisProperty(), newPropertyString);
    try (X509Util tempX509Util = new ClientX509Util()) {
        Assert.assertEquals(
                X509Util.DEFAULT_HANDSHAKE_DETECTION_TIMEOUT_MILLIS + 1,
                tempX509Util.getSslHandshakeTimeoutMillis());
    }
    // 0 value not allowed, will return the default
    System.setProperty(x509Util.getSslHandshakeDetectionTimeoutMillisProperty(), "0");
    try (X509Util tempX509Util = new ClientX509Util()) {
        Assert.assertEquals(
                X509Util.DEFAULT_HANDSHAKE_DETECTION_TIMEOUT_MILLIS,
                tempX509Util.getSslHandshakeTimeoutMillis());
    }
    // Negative value not allowed, will return the default
    System.setProperty(x509Util.getSslHandshakeDetectionTimeoutMillisProperty(), "-1");
    try (X509Util tempX509Util = new ClientX509Util()) {
        Assert.assertEquals(
                X509Util.DEFAULT_HANDSHAKE_DETECTION_TIMEOUT_MILLIS,
                tempX509Util.getSslHandshakeTimeoutMillis());
    }
}