|
|
|
|
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
|
|
|
|
/* |
|
|
|
|
* Copyright 2002-2014 the original author or authors. |
|
|
|
|
* Copyright 2002-2015 the original author or authors. |
|
|
|
|
* |
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
|
@ -15,6 +15,11 @@
@@ -15,6 +15,11 @@
|
|
|
|
|
*/ |
|
|
|
|
package org.springframework.test.web.servlet.samples.standalone; |
|
|
|
|
|
|
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; |
|
|
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; |
|
|
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.request; |
|
|
|
|
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.*; |
|
|
|
|
|
|
|
|
|
import java.util.Collection; |
|
|
|
|
import java.util.concurrent.Callable; |
|
|
|
|
import java.util.concurrent.CopyOnWriteArrayList; |
|
|
|
|
@ -34,10 +39,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
@@ -34,10 +39,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
|
import org.springframework.web.bind.annotation.ResponseBody; |
|
|
|
|
import org.springframework.web.context.request.async.DeferredResult; |
|
|
|
|
|
|
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; |
|
|
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; |
|
|
|
|
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.*; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Tests with asynchronous request handling. |
|
|
|
|
* |
|
|
|
|
@ -55,32 +56,33 @@ public class AsyncTests {
@@ -55,32 +56,33 @@ public class AsyncTests {
|
|
|
|
|
this.asyncController = new AsyncController(); |
|
|
|
|
this.mockMvc = standaloneSetup(this.asyncController).build(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void testCallable() throws Exception { |
|
|
|
|
MvcResult mvcResult = this.mockMvc.perform(get("/1").param("callable", "true")) |
|
|
|
|
.andExpect(request().asyncStarted()) |
|
|
|
|
.andExpect(request().asyncResult(new Person("Joe"))) |
|
|
|
|
.andReturn(); |
|
|
|
|
.andExpect(request().asyncStarted()) |
|
|
|
|
.andExpect(request().asyncResult(new Person("Joe"))) |
|
|
|
|
.andReturn(); |
|
|
|
|
|
|
|
|
|
this.mockMvc.perform(asyncDispatch(mvcResult)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andExpect(content().string("{\"name\":\"Joe\",\"someDouble\":0.0,\"someBoolean\":false}")); |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andExpect(content().string("{\"name\":\"Joe\",\"someDouble\":0.0,\"someBoolean\":false}")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void testDeferredResult() throws Exception { |
|
|
|
|
MvcResult mvcResult = this.mockMvc.perform(get("/1").param("deferredResult", "true")) |
|
|
|
|
.andExpect(request().asyncStarted()) |
|
|
|
|
.andReturn(); |
|
|
|
|
.andExpect(request().asyncStarted()) |
|
|
|
|
.andReturn(); |
|
|
|
|
|
|
|
|
|
this.asyncController.onMessage("Joe"); |
|
|
|
|
|
|
|
|
|
this.mockMvc.perform(asyncDispatch(mvcResult)) |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andExpect(content().string("{\"name\":\"Joe\",\"someDouble\":0.0,\"someBoolean\":false}")); |
|
|
|
|
.andExpect(status().isOk()) |
|
|
|
|
.andExpect(content().contentType(MediaType.APPLICATION_JSON)) |
|
|
|
|
.andExpect(content().string("{\"name\":\"Joe\",\"someDouble\":0.0,\"someBoolean\":false}")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|