Sync up MockAsyncContext implementations in src/test
This commit is contained in:
parent
d4e7d19237
commit
f7ec738857
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue