package io.vertx.test.core; import io.vertx.core.json.JsonArray; import io.vertx.core.json.JsonObject; import io.vertx.core.net.ProxyOptions; import io.vertx.core.net.ProxyType; import org.junit.Test; import static io.vertx.test.core.TestUtils.assertIllegalArgumentException; import static io.vertx.test.core.TestUtils.assertNullPointerException; /** * @author <a href="mailto:julien@julienviet.com">Julien Viet</a> */ public class ProxyOptionsTest extends VertxTestBase { ProxyType randType; String randHost; int randPort; String randUsername; String randPassword; @Override public void setUp() throws Exception { super.setUp(); randType = TestUtils.randomElement(ProxyType.values()); randHost = TestUtils.randomAlphaString(10); randPort = TestUtils.randomPortInt(); randUsername = TestUtils.randomAlphaString(10); randPassword = TestUtils.randomAlphaString(10); } @Test public void testProxyOptions() { ProxyOptions options = new ProxyOptions(); assertEquals(ProxyOptions.DEFAULT_TYPE, options.getType()); assertEquals(options, options.setType(randType)); assertEquals(randType, options.getType()); assertNullPointerException(() -> options.setType(null)); assertEquals(ProxyOptions.DEFAULT_HOST, options.getHost()); assertEquals(options, options.setHost(randHost)); assertEquals(randHost, options.getHost()); assertNullPointerException(() -> options.setHost(null)); assertEquals(ProxyOptions.DEFAULT_PORT, options.getPort()); assertEquals(options, options.setPort(randPort)); assertEquals(randPort, options.getPort()); assertIllegalArgumentException(() -> options.setPort(-1)); assertIllegalArgumentException(() -> options.setPort(65536)); assertEquals(null, options.getUsername()); assertEquals(options, options.setUsername(randUsername)); assertEquals(randUsername, options.getUsername()); assertEquals(null, options.getPassword()); assertEquals(options, options.setPassword(randPassword)); assertEquals(randPassword, options.getPassword()); } @Test public void testCopyProxyOptions() { ProxyOptions options = new ProxyOptions(); options.setType(randType); options.setHost(randHost); options.setPort(randPort); options.setUsername(randUsername); options.setPassword(randPassword); ProxyOptions copy = new ProxyOptions(options); assertEquals(randType, copy.getType()); assertEquals(randPort, copy.getPort()); assertEquals(randHost, copy.getHost()); assertEquals(randUsername, copy.getUsername()); assertEquals(randPassword, copy.getPassword()); } @Test public void testDefaultOptionsJson() { ProxyOptions def = new ProxyOptions(); ProxyOptions options = new ProxyOptions(new JsonObject()); assertEquals(def.getType(), options.getType()); assertEquals(def.getPort(), options.getPort()); assertEquals(def.getHost(), options.getHost()); assertEquals(def.getUsername(), options.getUsername()); assertEquals(def.getPassword(), options.getPassword()); } @Test public void testOptionsJson() { JsonObject json = new JsonObject(); json.put("type", randType.toString()) .put("host", randHost) .put("port", randPort) .put("username", randUsername) .put("password", randPassword); ProxyOptions options = new ProxyOptions(json); assertEquals(randType, options.getType()); assertEquals(randPort, options.getPort()); assertEquals(randHost, options.getHost()); assertEquals(randUsername, options.getUsername()); assertEquals(randPassword, options.getPassword()); } }