package com.wesabe.servlet.tests;
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import javax.servlet.http.HttpServletRequest;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
import com.wesabe.servlet.BadRequestException;
@RunWith(Enclosed.class)
public class BadRequestExceptionTest {
public static class Throwing_A_Bad_Request_Exception {
private Exception cause;
private HttpServletRequest request;
private BadRequestException exception;
@Before
public void setup() throws Exception {
this.request = mock(HttpServletRequest.class);
when(request.getMethod()).thenReturn("POST");
when(request.getRequestURI()).thenReturn("/woohoo");
when(request.getRemoteAddr()).thenReturn("1.2.3.4");
this.cause = new Exception("on fire");
this.exception = new BadRequestException(request, cause);
}
@Test
public void itHasACause() throws Exception {
assertThat(exception.getCause(), is((Throwable) cause));
}
@Test
public void itHasAMessage() throws Exception {
assertThat(exception.getMessage(), is("Bad request: POST to /woohoo from 1.2.3.4"));
}
@Test
public void itHasABadRequest() throws Exception {
assertThat(exception.getBadRequest(), is(sameInstance(request)));
}
}
}