package org.cyclopsgroup.jmxterm;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import java.io.IOException;
import org.junit.Test;
/**
* Test case of {@link SyntaxUtils}
*
* @author <a href="mailto:jiaqi.guo@gmail.com">Jiaqi Guo</a>
*/
public class SyntaxUtilsTest
{
/**
* Test how getUrl() figure out MBeanServer URL based on various pattern of input
*
* @throws IOException Thrown when syntax is invalid
*/
@Test
public void testGetUrl()
throws IOException
{
assertEquals( "/jndi/rmi://xyz-host.cyclopsgroup.org:12345/jmxrmi",
SyntaxUtils.getUrl( "xyz-host.cyclopsgroup.org:12345", null ).getURLPath() );
assertEquals(
"/jndi/rmi://xyz-host.cyclopsgroup.org:12345/jmxrmi",
SyntaxUtils.getUrl( "service:jmx:rmi:///jndi/rmi://xyz-host.cyclopsgroup.org:12345/jmxrmi", null ).getURLPath() );
}
/**
* Verify string expression of type is correctly parsed
*/
@Test
public void testParseNormally()
{
assertEquals( "x", SyntaxUtils.parse( "x", "java.lang.String" ) );
assertEquals( 3, SyntaxUtils.parse( "3", "int" ) );
assertEquals( 3L, SyntaxUtils.parse( "3", "long" ) );
assertEquals( "", SyntaxUtils.parse( "", "java.lang.String" ) );
assertNull( SyntaxUtils.parse( "", "java.util.Date" ) );
assertNull( SyntaxUtils.parse( "null", "java.lang.String" ) );
}
/**
* Verify that Exception is thrown when type is wrong
*/
@Test( expected = IllegalArgumentException.class )
public void testParseWithWrongType()
{
SyntaxUtils.parse( "x", "x" );
}
}