@Nullable
	static ProxyProvider createFrom(Properties properties) {
		Objects.requireNonNull(properties, "properties");

		if (properties.containsKey(HTTP_PROXY_HOST) || properties.containsKey(HTTPS_PROXY_HOST)) {
			return createHttpProxyFrom(properties);
		}
		if (properties.containsKey(SOCKS_PROXY_HOST)) {
			return createSocksProxyFrom(properties);
		}

		return null;
	}
@Test
	void proxyFromSystemProperties_errorWhenHttpsPortIsEmptyString() {
		Properties properties = new Properties();
		properties.setProperty(ProxyProvider.HTTPS_PROXY_HOST, "host");
		properties.setProperty(ProxyProvider.HTTPS_PROXY_PORT, "");

		assertThatIllegalArgumentException()
				.isThrownBy(() -> ProxyProvider.createFrom(properties))
				.withMessage("expected system property https.proxyPort to be a number but got empty string");
	}