package com.levelup.java.net;
import static org.junit.Assert.assertEquals;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.core.UriBuilder;
import org.apache.http.NameValuePair;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.junit.Test;
import org.springframework.web.util.UriComponents;
import org.springframework.web.util.UriComponentsBuilder;
/**
* This java example will demonstrate constructing a URI
* using java, apache and spring framework.
*
* @author Justin Musgrove
* @see <a href='http://www.leveluplunch.com/java/examples/construct-build-uri/'>Construct or Build URI</a>
*/
public class ConstructBuildURI {
@Test
public void construct_uri_jersey () {
UriBuilder builder = UriBuilder
.fromPath("www.leveluplunch.com")
.scheme("http")
.path("java/examples/");
URI uri = builder.build();
assertEquals(
"http:/www.leveluplunch.com/java/examples/",
uri.toString());
}
@Test
public void construct_uri_encoded_jersey () {
UriBuilder builder = UriBuilder
.fromPath("www.leveluplunch.com")
.scheme("http")
.path("java/examples/?sample=uri encode");
URI uri = builder.build();
assertEquals(
"http:/www.leveluplunch.com/java/examples/%3Fsample=uri%20encode",
uri.toString());
}
@Test
public void construct_uri_template_jersey () {
UriBuilder builder = UriBuilder
.fromPath("www.leveluplunch.com")
.path("/{lanuage}/{type}/");
URI uri = builder.build("java", "examples");
assertEquals(
"www.leveluplunch.com/java/examples/",
uri.toString());
}
@Test
public void construct_uri_parameter_jersey () {
UriBuilder builder = UriBuilder
.fromPath("www.leveluplunch.com")
.path("/{lanuage}/{type}/")
.queryParam("test", "a", "b");
URI uri = builder.build("java", "examples");
assertEquals(
"www.leveluplunch.com/java/examples/?test=a&test=b",
uri.toString());
}
@Test
public void construct_uri_guava () {
// https://code.google.com/p/guava-libraries/issues/detail?id=1005
}
// apache
@Test
public void contruct_uri_apache () throws URISyntaxException {
URIBuilder builder = new URIBuilder()
.setScheme("http")
.setHost("www.leveluplunch.com")
.setPath("/java/examples/");
URI uri = builder.build();
assertEquals(
"http://www.leveluplunch.com/java/examples/",
uri.toString());
}
@Test
public void contruct_uri_encoded_apache () throws URISyntaxException {
URIBuilder builder = new URIBuilder()
.setScheme("http")
.setHost("www.leveluplunch.com")
.setPath("/java/examples/?sample=uri encode");
URI uri = builder.build();
assertEquals(
"http://www.leveluplunch.com/java/examples/%3Fsample=uri%20encode",
uri.toString());
}
@Test
public void contruct_uri_parameters_apache () throws URISyntaxException {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("test","a"));
nameValuePairs.add(new BasicNameValuePair("test","b"));
URIBuilder builder = new URIBuilder()
.setScheme("http")
.setHost("www.leveluplunch.com")
.setParameters(nameValuePairs);
URI uri = builder.build();
assertEquals(
"http://www.leveluplunch.com?test=a&test=b",
uri.toString());
}
// spring
@Test
public void construct_uri_spring () {
UriComponents uriComponents =
UriComponentsBuilder.newInstance()
.scheme("http").host("www.leveluplunch.com").path("/java/examples/")
.build();
assertEquals("http://www.leveluplunch.com/java/examples/", uriComponents.toUriString());
}
@Test
public void construct_uri_encoded_spring () {
UriComponents uriComponents =
UriComponentsBuilder.newInstance()
.scheme("http").host("www.leveluplunch.com")
.path("/java/examples/?sample=uri encode")
.build()
.encode();
assertEquals("http://www.leveluplunch.com/java/examples/%3Fsample=uri%20encode",
uriComponents.toUriString());
}
@Test
public void construct_uri_template_spring () {
UriComponents uriComponents =
UriComponentsBuilder.newInstance()
.scheme("http")
.host("www.leveluplunch.com")
.path("/{lanuage}/{type}/")
.build()
.expand("java", "examples")
.encode();
assertEquals("http://www.leveluplunch.com/java/examples/",
uriComponents.toUriString());
}
@Test
public void construct_uri_queryparmeter_spring () {
UriComponents uriComponents =
UriComponentsBuilder.newInstance()
.scheme("http")
.host("www.leveluplunch.com")
.path("/{lanuage}/{type}/")
.queryParam("test", "a", "b")
.build()
.expand("java", "examples")
.encode();
assertEquals("http://www.leveluplunch.com/java/examples/?test=a&test=b",
uriComponents.toUriString());
}
}