Skip to content

Commit

Permalink
Sync up MockAsyncContext implementations in src/test
Browse files Browse the repository at this point in the history
  • Loading branch information
rstoyanchev committed Oct 28, 2012
1 parent d4e7d19 commit f7ec738
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
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;
Expand All @@ -40,9 +42,9 @@
*/
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>();

Expand All @@ -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() {
Expand All @@ -73,7 +75,7 @@ public String getDispatchedPath() {
}

public void dispatch() {
dispatch(null);
dispatch(this.request.getRequestURI());
}

public void dispatch(String path) {
Expand All @@ -89,13 +91,12 @@ public void complete() {
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);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@
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;
Expand All @@ -39,22 +40,20 @@
*/
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() {
Expand All @@ -66,32 +65,29 @@ public ServletResponse getResponse() {
}

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) {
dispatch(null, path);
}

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 {
Expand All @@ -103,7 +99,8 @@ public void complete() {
}
}

public void start(Runnable run) {
public void start(Runnable runnable) {
runnable.run();
}

public List<AsyncListener> getListeners() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
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;
Expand All @@ -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());

Expand Down Expand Up @@ -107,7 +108,7 @@ public void startCallableProcessingTimeoutAndResume() throws Exception {
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);
}
Expand All @@ -128,7 +129,7 @@ public void startCallableProcessingAfterTimeoutException() throws Exception {
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);
}
Expand Down Expand Up @@ -174,7 +175,7 @@ public <T> void afterTimeout(NativeWebRequest request, DeferredResult<T> result)
this.asyncWebRequest.onTimeout(event);

assertEquals(23, this.asyncManager.getConcurrentResult());
assertEquals(DispatcherType.ASYNC, this.servletRequest.getDispatcherType());
assertEquals("/test", ((MockAsyncContext) this.servletRequest.getAsyncContext()).getDispatchedPath());
}

@Test
Expand All @@ -195,7 +196,7 @@ public <T> void afterTimeout(NativeWebRequest request, DeferredResult<T> result)
this.asyncWebRequest.onTimeout(event);

assertEquals(23, this.asyncManager.getConcurrentResult());
assertEquals(DispatcherType.ASYNC, this.servletRequest.getDispatcherType());
assertEquals("/test", ((MockAsyncContext) this.servletRequest.getAsyncContext()).getDispatchedPath());
}

@Test
Expand All @@ -217,7 +218,7 @@ public <T> void afterTimeout(NativeWebRequest request, DeferredResult<T> result)
this.asyncWebRequest.onTimeout(event);

assertEquals(exception, this.asyncManager.getConcurrentResult());
assertEquals(DispatcherType.ASYNC, this.servletRequest.getDispatcherType());
assertEquals("/test", ((MockAsyncContext) this.servletRequest.getAsyncContext()).getDispatchedPath());
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@
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;
Expand All @@ -39,22 +40,20 @@
*/
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() {
Expand All @@ -66,32 +65,29 @@ public ServletResponse getResponse() {
}

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) {
dispatch(null, path);
}

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 {
Expand All @@ -103,7 +99,8 @@ public void complete() {
}
}

public void start(Runnable run) {
public void start(Runnable runnable) {
runnable.run();
}

public List<AsyncListener> getListeners() {
Expand Down

0 comments on commit f7ec738

Please sign in to comment.