import javax.servlet.Filter;
import javax.servlet.Servlet;
import javax.servlet.ServletContextListener;
-import org.junit.Ignore;
import org.junit.Test;
/**
public class WebContextApiTest {
@Test
public void testEmptyBuilder() {
- final WebContextBuilder builder = WebContext.builder();
- assertThrows(IllegalStateException.class, () -> builder.build());
+ final var builder = WebContext.builder();
+ assertThrows(IllegalStateException.class, builder::build);
}
@Test
public void testMinimalBuilder() {
- assertTrue(WebContext.builder().contextPath("test").build().supportsSessions());
- assertEquals("test", WebContext.builder().contextPath("test").supportsSessions(false).build().contextPath());
+ assertTrue(WebContext.builder().contextPath("/test").build().supportsSessions());
+ assertEquals("/test", WebContext.builder().contextPath("/test").supportsSessions(false).build().contextPath());
}
@Test
public void testAddSimpleServlet() {
- WebContext webContext = WebContext.builder().contextPath("test")
- .addServlet(ServletDetails.builder().servlet(mock(Servlet.class)).addUrlPattern("test").build())
+ WebContext webContext = WebContext.builder().contextPath("/test")
+ .addServlet(ServletDetails.builder().servlet(mock(Servlet.class)).addUrlPattern("/test").build())
.build();
assertThat(webContext.servlets(), hasSize(1));
ServletDetails firstServletDetail = webContext.servlets().get(0);
@Test
public void testAddFullServlet() {
- WebContext.builder().contextPath("test").addServlet(ServletDetails.builder().servlet(mock(Servlet.class))
- .addUrlPattern("test").addUrlPattern("another").name("custom").putInitParam("key", "value").build())
+ WebContext.builder().contextPath("/test").addServlet(ServletDetails.builder().servlet(mock(Servlet.class))
+ .addUrlPattern("/test").addUrlPattern("/another").name("custom").putInitParam("key", "value").build())
.build();
}
@Test
public void testAddFilter() {
- WebContext.builder().contextPath("test")
- .addFilter(FilterDetails.builder().filter(mock(Filter.class)).addUrlPattern("test").build()).build();
+ WebContext.builder().contextPath("/test")
+ .addFilter(FilterDetails.builder().filter(mock(Filter.class)).addUrlPattern("/test").build()).build();
}
@Test
public void testAddListener() {
- assertThat(WebContext.builder().contextPath("test").addListener(mock(ServletContextListener.class)).build()
+ assertThat(WebContext.builder().contextPath("/test").addListener(mock(ServletContextListener.class)).build()
.listeners(), hasSize(1));
}
@Test
public void testContextParam() {
assertEquals(Map.of("key", "value"),
- WebContext.builder().contextPath("test").putContextParam("key", "value").build().contextParams());
+ WebContext.builder().contextPath("/test").putContextParam("key", "value").build().contextParams());
}
@Test
- @Ignore
public void testBadContextPath() {
- // FIXME: this is completely broken usage -- which call is expected to raise the exception?!
- assertThrows(IllegalArgumentException.class, () -> WebContext.builder().contextPath("test/sub").build());
- assertThrows(IllegalArgumentException.class, () -> WebContext.builder().contextPath("test space").build());
- assertThrows(IllegalArgumentException.class, () -> WebContext.builder().contextPath("/test").build());
- assertThrows(IllegalArgumentException.class, () -> WebContext.builder().contextPath("test/").build());
+ assertBadContextPath("Context path is empty", "");
+ assertBadContextPath("Context path 'test/sub' does not start with '/'", "test/sub");
+ assertBadContextPath("Context path 'test space' does not start with '/'", "test space");
+ assertBadContextPath("Context path 'test/' does not start with '/'", "test/");
+ assertBadContextPath("Context path '/test/' ends with '/'", "/test/");
}
- @Test
- public void testBadServletWithoutAnyURL() {
- final WebContextBuilder builder = WebContext.builder().contextPath("test")
- .addServlet(ServletDetails.builder().servlet(mock(Servlet.class)).build());
- assertThrows(IllegalArgumentException.class, () -> builder.build());
+ private static void assertBadContextPath(final String expectedMessage, final String contextPath) {
+ final var builder = WebContext.builder();
+ final var ex = assertThrows(IllegalArgumentException.class, () -> builder.contextPath(contextPath));
+ assertEquals(expectedMessage, ex.getMessage());
}
- @Test
- public void testBadFilterWithoutAnyURL() {
- final WebContextBuilder builder = WebContext.builder().contextPath("test")
- .addFilter(FilterDetails.builder().filter(mock(Filter.class)).build());
- assertThrows(IllegalArgumentException.class, () -> builder.build());
- }
}