package org.infinispan.cli; import static org.testng.AssertJUnit.assertEquals; import org.infinispan.cli.connection.jmx.JMXUrl; import org.infinispan.cli.connection.jmx.remoting.DirectJMXRemotingUrl; import org.testng.annotations.Test; @Test(groups="functional", testName="cli.JMXRemotingUrlTest") public class JMXRemotingUrlTest { public void testValidJMXUrl() { JMXUrl jmxUrl = new DirectJMXRemotingUrl("remoting://localhost:12345"); assertEquals("service:jmx:remoting-jmx://localhost:12345", jmxUrl.getJMXServiceURL()); } public void testValidJMXUrlWithContainer() { JMXUrl jmxUrl = new DirectJMXRemotingUrl("remoting://localhost:12345/container"); assertEquals("service:jmx:remoting-jmx://localhost:12345", jmxUrl.getJMXServiceURL()); assertEquals("container", jmxUrl.getContainer()); } public void testValidJMXUrlWithContainerAndCache() { JMXUrl jmxUrl = new DirectJMXRemotingUrl("remoting://localhost:12345/container/cache"); assertEquals("service:jmx:remoting-jmx://localhost:12345", jmxUrl.getJMXServiceURL()); assertEquals("container", jmxUrl.getContainer()); assertEquals("cache", jmxUrl.getCache()); } public void testValidIPV6JMXUrl() { JMXUrl jmxUrl = new DirectJMXRemotingUrl("remoting://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:12345"); assertEquals("service:jmx:remoting-jmx://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:12345", jmxUrl.getJMXServiceURL()); } public void testValidIPV6JMXUrlWithContainerAndCache() { JMXUrl jmxUrl = new DirectJMXRemotingUrl("remoting://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:12345/container/cache"); assertEquals("service:jmx:remoting-jmx://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:12345", jmxUrl.getJMXServiceURL()); assertEquals("container", jmxUrl.getContainer()); assertEquals("cache", jmxUrl.getCache()); } public void testEmptyJMXUrl() { JMXUrl jmxUrl = new DirectJMXRemotingUrl(""); assertEquals("service:jmx:remoting-jmx://localhost:9999", jmxUrl.getJMXServiceURL()); } @Test(expectedExceptions=IllegalArgumentException.class) public void testInvalidJMXUrl() { new DirectJMXRemotingUrl("hotrod://localhost:12345"); } }