Newer
Older
package ca.nrc.cadc.ac;
import java.net.URISyntaxException;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.junit.Assert;
import org.junit.Test;
import ca.nrc.cadc.util.Log4jInit;
public class GroupURITest
{
private static Logger log = Logger.getLogger(GroupURITest.class);
static
{
Log4jInit.setLevel("ca.nrc.cadc.ac", Level.DEBUG);
@Test
public void testEquals()
{
GroupURI uri1 = new GroupURI("ivo://example.org/gms?name");
GroupURI uri2 = new GroupURI("ivo://example.org/gms?name");
Assert.assertTrue(uri1.equals(uri2));
uri1 = new GroupURI("ivo://example.org/gms?name");
uri2 = new GroupURI("ivo://example.org/gms#name");
Assert.assertTrue(uri1.equals(uri2));
}
@Test
public void testMalformed()
{
try
{
// no scheme
assertIllegalArgument("example.org/gms?gname", "scheme");
// no authority
assertIllegalArgument("ivo://gms?gname", "authority");
// no path
assertIllegalArgument("ivo://example.org/gname", "name");
}
catch (Throwable t)
{
log.error("Test Failed", t);
Assert.fail();
}
}
@Test
public void testCorrect1()
{
try
{
GroupURI g = new GroupURI("ivo://my.authority/gms?name");
Assert.assertEquals("ivo", g.getURI().getScheme());
Assert.assertEquals("/gms", g.getURI().getPath());
Assert.assertEquals("name", g.getName());
Assert.assertEquals("ivo://my.authority/gms", g.getServiceID().toString());
Assert.assertEquals("ivo://my.authority/gms?name", g.toString());
}
catch (Throwable t)
{
log.error("Test Failed", t);
}
}
@Test
public void testCorrect2()
{
try
{
GroupURI g = new GroupURI("ivo://my.authority/gms#name");
Assert.assertEquals("ivo", g.getURI().getScheme());
Assert.assertEquals("/gms", g.getURI().getPath());
Assert.assertEquals("name", g.getName());
Assert.assertEquals("ivo://my.authority/gms", g.getServiceID().toString());
Assert.assertEquals("ivo://my.authority/gms?name", g.toString());
}
catch (Throwable t)
{
log.error("Test Failed", t);
}
}
private void assertIllegalArgument(String uri, String message) throws URISyntaxException
{
try
{
new GroupURI(uri);
Assert.fail("Expected Illegal argument for URI " + uri);
}
catch (IllegalArgumentException e)
{
// expected
log.debug("Checking if message '" + e.getMessage() + "' contains '" + message + "'");
Assert.assertTrue(e.getMessage().toLowerCase().contains(message));
}
}
}