Sync up MockAsyncContext implementations in src/test

This commit is contained in:
Rossen Stoyanchev 2012-10-27 05:46:07 -04:00
parent d4e7d19237
commit f7ec738857
4 changed files with 53 additions and 57 deletions

View File

@ -26,6 +26,8 @@ import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.BeanUtils;
import org.springframework.mock.web.MockHttpServletRequest;
@ -40,9 +42,9 @@ import org.springframework.web.util.WebUtils;
*/
class MockAsyncContext implements AsyncContext {
private final ServletRequest request;
private final HttpServletRequest request;
private final ServletResponse response;
private final HttpServletResponse response;
private final List<AsyncListener> listeners = new ArrayList<AsyncListener>();
@ -52,8 +54,8 @@ class MockAsyncContext implements AsyncContext {
public MockAsyncContext(ServletRequest request, ServletResponse response) {
this.request = request;
this.response = response;
this.request = (HttpServletRequest) request;
this.response = (HttpServletResponse) response;
}
public ServletRequest getRequest() {
@ -73,7 +75,7 @@ class MockAsyncContext implements AsyncContext {
}
public void dispatch() {
dispatch(null);
dispatch(this.request.getRequestURI());
}
public void dispatch(String path) {
@ -89,13 +91,12 @@ class MockAsyncContext implements AsyncContext {
if (mockRequest != null) {
mockRequest.setAsyncStarted(false);
}
for (AsyncListener listener : this.listeners) {
try {
listener.onComplete(new AsyncEvent(this, this.request, this.response));
}
catch (IOException e) {
throw new IllegalStateException("AsyncListener failed", e);
throw new IllegalStateException("AsyncListener failure", e);
}
}
}

View File

@ -22,11 +22,12 @@ import java.util.List;
import javax.servlet.AsyncContext;
import javax.servlet.AsyncEvent;
import javax.servlet.AsyncListener;
import javax.servlet.DispatcherType;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.BeanUtils;
import org.springframework.web.util.WebUtils;
@ -39,22 +40,20 @@ import org.springframework.web.util.WebUtils;
*/
public class MockAsyncContext implements AsyncContext {
private final ServletRequest request;
private final HttpServletRequest request;
private final ServletResponse response;
private final MockHttpServletRequest mockRequest;
private final HttpServletResponse response;
private final List<AsyncListener> listeners = new ArrayList<AsyncListener>();
private String dispatchPath;
private String dispatchedPath;
private long timeout = 10 * 1000L; // 10 seconds is Tomcat's default
private long timeout = 10 * 60 * 1000L;
public MockAsyncContext(ServletRequest request, ServletResponse response) {
this.request = request;
this.response = response;
this.mockRequest = WebUtils.getNativeRequest(request, MockHttpServletRequest.class);
this.request = (HttpServletRequest) request;
this.response = (HttpServletResponse) response;
}
public ServletRequest getRequest() {
@ -66,15 +65,15 @@ public class MockAsyncContext implements AsyncContext {
}
public boolean hasOriginalRequestAndResponse() {
return false;
return (this.request instanceof MockHttpServletRequest) && (this.response instanceof MockHttpServletResponse);
}
public String getDispatchPath() {
return this.dispatchPath;
public String getDispatchedPath() {
return this.dispatchedPath;
}
public void dispatch() {
dispatch(null);
dispatch(this.request.getRequestURI());
}
public void dispatch(String path) {
@ -82,16 +81,13 @@ public class MockAsyncContext implements AsyncContext {
}
public void dispatch(ServletContext context, String path) {
this.dispatchPath = path;
if (this.mockRequest != null) {
this.mockRequest.setDispatcherType(DispatcherType.ASYNC);
this.mockRequest.setAsyncStarted(false);
}
this.dispatchedPath = path;
}
public void complete() {
if (this.mockRequest != null) {
this.mockRequest.setAsyncStarted(false);
MockHttpServletRequest mockRequest = WebUtils.getNativeRequest(request, MockHttpServletRequest.class);
if (mockRequest != null) {
mockRequest.setAsyncStarted(false);
}
for (AsyncListener listener : this.listeners) {
try {
@ -103,7 +99,8 @@ public class MockAsyncContext implements AsyncContext {
}
}
public void start(Runnable run) {
public void start(Runnable runnable) {
runnable.run();
}
public List<AsyncListener> getListeners() {

View File

@ -34,6 +34,7 @@ import javax.servlet.DispatcherType;
import org.junit.Before;
import org.junit.Test;
import org.springframework.core.task.AsyncTaskExecutor;
import org.springframework.mock.web.MockAsyncContext;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.web.context.request.NativeWebRequest;
@ -57,7 +58,7 @@ public class WebAsyncManagerTimeoutTests {
@Before
public void setUp() {
this.servletRequest = new MockHttpServletRequest();
this.servletRequest = new MockHttpServletRequest("GET", "/test");
this.servletRequest.setAsyncSupported(true);
this.asyncWebRequest = new StandardServletAsyncWebRequest(servletRequest, new MockHttpServletResponse());
@ -107,7 +108,7 @@ public class WebAsyncManagerTimeoutTests {
this.asyncWebRequest.onTimeout(ASYNC_EVENT);
assertEquals(22, this.asyncManager.getConcurrentResult());
assertEquals(DispatcherType.ASYNC, this.servletRequest.getDispatcherType());
assertEquals("/test", ((MockAsyncContext) this.servletRequest.getAsyncContext()).getDispatchedPath());
verify(interceptor);
}
@ -128,7 +129,7 @@ public class WebAsyncManagerTimeoutTests {
this.asyncWebRequest.onTimeout(ASYNC_EVENT);
assertEquals(exception, this.asyncManager.getConcurrentResult());
assertEquals(DispatcherType.ASYNC, this.servletRequest.getDispatcherType());
assertEquals("/test", ((MockAsyncContext) this.servletRequest.getAsyncContext()).getDispatchedPath());
verify(interceptor);
}
@ -174,7 +175,7 @@ public class WebAsyncManagerTimeoutTests {
this.asyncWebRequest.onTimeout(event);
assertEquals(23, this.asyncManager.getConcurrentResult());
assertEquals(DispatcherType.ASYNC, this.servletRequest.getDispatcherType());
assertEquals("/test", ((MockAsyncContext) this.servletRequest.getAsyncContext()).getDispatchedPath());
}
@Test
@ -195,7 +196,7 @@ public class WebAsyncManagerTimeoutTests {
this.asyncWebRequest.onTimeout(event);
assertEquals(23, this.asyncManager.getConcurrentResult());
assertEquals(DispatcherType.ASYNC, this.servletRequest.getDispatcherType());
assertEquals("/test", ((MockAsyncContext) this.servletRequest.getAsyncContext()).getDispatchedPath());
}
@Test
@ -217,7 +218,7 @@ public class WebAsyncManagerTimeoutTests {
this.asyncWebRequest.onTimeout(event);
assertEquals(exception, this.asyncManager.getConcurrentResult());
assertEquals(DispatcherType.ASYNC, this.servletRequest.getDispatcherType());
assertEquals("/test", ((MockAsyncContext) this.servletRequest.getAsyncContext()).getDispatchedPath());
}

View File

@ -22,11 +22,12 @@ import java.util.List;
import javax.servlet.AsyncContext;
import javax.servlet.AsyncEvent;
import javax.servlet.AsyncListener;
import javax.servlet.DispatcherType;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.BeanUtils;
import org.springframework.web.util.WebUtils;
@ -39,22 +40,20 @@ import org.springframework.web.util.WebUtils;
*/
public class MockAsyncContext implements AsyncContext {
private final ServletRequest request;
private final HttpServletRequest request;
private final ServletResponse response;
private final MockHttpServletRequest mockRequest;
private final HttpServletResponse response;
private final List<AsyncListener> listeners = new ArrayList<AsyncListener>();
private String dispatchPath;
private String dispatchedPath;
private long timeout = 10 * 1000L; // 10 seconds is Tomcat's default
private long timeout = 10 * 60 * 1000L;
public MockAsyncContext(ServletRequest request, ServletResponse response) {
this.request = request;
this.response = response;
this.mockRequest = WebUtils.getNativeRequest(request, MockHttpServletRequest.class);
this.request = (HttpServletRequest) request;
this.response = (HttpServletResponse) response;
}
public ServletRequest getRequest() {
@ -66,15 +65,15 @@ public class MockAsyncContext implements AsyncContext {
}
public boolean hasOriginalRequestAndResponse() {
return false;
return (this.request instanceof MockHttpServletRequest) && (this.response instanceof MockHttpServletResponse);
}
public String getDispatchPath() {
return this.dispatchPath;
public String getDispatchedPath() {
return this.dispatchedPath;
}
public void dispatch() {
dispatch(null);
dispatch(this.request.getRequestURI());
}
public void dispatch(String path) {
@ -82,16 +81,13 @@ public class MockAsyncContext implements AsyncContext {
}
public void dispatch(ServletContext context, String path) {
this.dispatchPath = path;
if (this.mockRequest != null) {
this.mockRequest.setDispatcherType(DispatcherType.ASYNC);
this.mockRequest.setAsyncStarted(false);
}
this.dispatchedPath = path;
}
public void complete() {
if (this.mockRequest != null) {
this.mockRequest.setAsyncStarted(false);
MockHttpServletRequest mockRequest = WebUtils.getNativeRequest(request, MockHttpServletRequest.class);
if (mockRequest != null) {
mockRequest.setAsyncStarted(false);
}
for (AsyncListener listener : this.listeners) {
try {
@ -103,7 +99,8 @@ public class MockAsyncContext implements AsyncContext {
}
}
public void start(Runnable run) {
public void start(Runnable runnable) {
runnable.run();
}
public List<AsyncListener> getListeners() {