@Bean
    @ConfigurationProperties(prefix = "shenyu.httpclient")
    public HttpClientProperties httpClientProperties() {
        return new HttpClientProperties();
    }
@Test
    public void testHttpClientProperties() {
        applicationContextRunner
                .withPropertyValues(
                        "debug=true",
                        "shenyu.httpclient.connectTimeout=3",
                        "shenyu.httpclient.responseTimeout=0",
                        "shenyu.httpclient.pool.PoolType=0",
                        "shenyu.httpclient.pool.name=proxy",
                        "shenyu.httpclient.pool.maxConnections=1",
                        "shenyu.httpclient.pool.acquireTimeout=45000",
                        "shenyu.httpclient.proxy.host=http://localhost",
                        "shenyu.httpclient.proxy.port=18848",
                        "shenyu.httpclient.proxy.username=itmiwang",
                        "shenyu.httpclient.proxy.password=itmiwang",
                        "shenyu.httpclient.proxy.nonProxyHostsPattern=itmiwang",
                        "shenyu.httpclient.ssl.X509Certificate[]=[]",
                        "shenyu.httpclient.ssl.handshakeTimeout=10000",
                        "shenyu.httpclient.ssl.closeNotifyFlushTimeout=3000",
                        "shenyu.httpclient.ssl.closeNotifyReadTimeout=0"
                )
                .run(context -> {
                    HttpClientProperties properties = context.getBean("httpClientProperties", HttpClientProperties.class);
                    assertNotNull(properties);
                    assertThat(properties.getConnectTimeout(), is(3));
                    assertThat(properties.getResponseTimeout(), is(Duration.ZERO));
                    assertThat(properties.getPool().getType(), is(HttpClientProperties.Pool.PoolType.ELASTIC));
                    assertThat(properties.getPool().getName(), is("proxy"));
                    assertThat(properties.getPool().getMaxConnections(), is(1));
                    assertThat(properties.getPool().getAcquireTimeout(), is(ConnectionProvider.DEFAULT_POOL_ACQUIRE_TIMEOUT));
                    assertThat(properties.getProxy().getHost(), is("http://localhost"));
                    assertThat(properties.getProxy().getPort(), is(18848));
                    assertThat(properties.getProxy().getUsername(), is("itmiwang"));
                    assertThat(properties.getProxy().getPassword(), is("itmiwang"));
                    assertThat(properties.getProxy().getNonProxyHostsPattern(), is("itmiwang"));
                    assertThat(properties.getSsl().getHandshakeTimeout(), is(Duration.ofMillis(10000)));
                    assertNotNull(properties.getSsl().getTrustedX509Certificates());
                    assertThat(properties.getSsl().getCloseNotifyFlushTimeout(), is(Duration.ofMillis(3000)));
                    assertThat(properties.getSsl().getCloseNotifyReadTimeout(), is(Duration.ZERO));
                });
    }