package org.jboss.resteasy.test.util;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.jboss.resteasy.test.util.resource.LinkResource;
import org.junit.Assert;
import org.junit.Test;
import javax.ws.rs.core.Link;
import javax.ws.rs.core.UriBuilderException;
import java.lang.reflect.Method;
import java.net.URI;
/**
* @tpSubChapter Util tests
* @tpChapter Unit tests
* @tpTestCaseDetails Test for javax.ws.rs.core.Link class.
* @tpSince RESTEasy 3.0.16
*/
public class LinkTest {
protected static final Logger logger = LogManager.getLogger(LinkTest.class.getName());
/**
* @tpTestDetails Check relative path option
* @tpSince RESTEasy 3.0.16
*/
@Test
public void testRelativized() throws Exception {
URI uri = new URI("a").relativize(new URI("a/d/e"));
logger.info(uri);
Link link = Link.fromUri("a/d/e")
.rel("update").type("text/plain")
.buildRelativized(new URI("a"));
logger.info(link.toString());
link = Link.fromUri("a/d/e")
.rel("update").type("text/plain")
.baseUri("http://localhost/")
.buildRelativized(new URI("http://localhost/a"));
logger.info(link.toString());
}
/**
* @tpTestDetails Check fromMethod method.
* @tpSince RESTEasy 3.0.16
*/
@Test
public void testFromMethod() {
for (Method m : LinkResource.class.getDeclaredMethods()) {
Link link = Link.fromMethod(LinkResource.class, m.getName()).build();
String string = link.toString();
logger.info("initial: " + string);
Link fromValueOf = Link.valueOf(string);
Assert.assertEquals(string, fromValueOf.toString());
}
}
/**
* @tpTestDetails Check wrong URI
* @tpSince RESTEasy 3.0.16
*/
@Test
public void testIllegalUri() {
Link.Builder builder = Link.fromUri("http://:@");
try {
builder.build();
Assert.fail();
} catch (UriBuilderException e) {
}
}
}