package com.levelup.java.net;
import static org.junit.Assert.assertEquals;
import java.net.URI;
import org.junit.Test;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
import org.springframework.web.util.UriComponents;
/**
* This java example will demonstrate constructing or building
* a URI from http servlet request.
*
* @author Justin Musgrove
* @see <a href='http://www.leveluplunch.com/java/examples/construct-build-uri-from-http-servlet-request/'>Construct or Build URI from request</a>
*/
public class BuildURIFromHttpRequest {
@Test
public void create_URI_from_http_request () {
MockHttpServletRequest request = new MockHttpServletRequest();
UriComponents ucb =
ServletUriComponentsBuilder
.fromContextPath(request)
.path("/examples/java")
.build();
URI uri = ucb.toUri();
assertEquals("http://localhost/examples/java", uri.toString());
}
@Test
public void replace_query_parameter () {
MockHttpServletRequest request = new MockHttpServletRequest();
request.setQueryString("primaryKey=987");
UriComponents ucb =
ServletUriComponentsBuilder
.fromRequest(request)
.replaceQueryParam("primaryKey", "{id}")
.build()
.expand("123")
.encode();
assertEquals("http://localhost?primaryKey=123", ucb.toString());
}
@Test
public void replace_path () {
MockHttpServletRequest request = new MockHttpServletRequest();
request.setPathInfo("/java/examples");
UriComponents ucb =
ServletUriComponentsBuilder
.fromRequest(request)
.replacePath("/java/exercises")
.build()
.encode();
URI uri = ucb.toUri();
assertEquals("http://localhost/java/exercises", uri.toString());
}
}