Introduce sessionAttributeDoesNotExist in RequestResultMatchers
Analogous to the attributeDoesNotExist() method in ModelResultMatchers, this commit introduces a new sessionAttributeDoesNotExist() method in RequestResultMatchers which asserts that the given attributes are null in the HttpSession. Closes gh-23756
This commit is contained in:
parent
e6f92ae2af
commit
e73344fc71
|
|
@ -31,6 +31,7 @@ import org.springframework.web.context.request.async.WebAsyncTask;
|
|||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.springframework.test.util.AssertionErrors.assertEquals;
|
||||
import static org.springframework.test.util.AssertionErrors.assertTrue;
|
||||
|
||||
/**
|
||||
* Factory for assertions on the request.
|
||||
|
|
@ -150,6 +151,19 @@ public class RequestResultMatchers {
|
|||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Assert the given session attributes do not exist.
|
||||
*/
|
||||
public <T> ResultMatcher sessionAttributeDoesNotExist(String... names) {
|
||||
return result -> {
|
||||
HttpSession session = result.getRequest().getSession();
|
||||
Assert.state(session != null, "No HttpSession");
|
||||
for (String name : names) {
|
||||
assertTrue("Session attribute '" + name + "' exists", session.getAttribute(name) == null);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private static void assertAsyncStarted(HttpServletRequest request) {
|
||||
assertEquals("Async started", true, request.isAsyncStarted());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,6 +65,12 @@ public class SessionAttributeAssertionTests {
|
|||
.andExpect(request().sessionAttribute("locale", notNullValue()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSessionAttributeDoesNotExist() throws Exception {
|
||||
this.mockMvc.perform(get("/"))
|
||||
.andExpect(request().sessionAttributeDoesNotExist("myAttr1", "myAttr2"));
|
||||
}
|
||||
|
||||
|
||||
@Controller
|
||||
@SessionAttributes("locale")
|
||||
|
|
|
|||
Loading…
Reference in New Issue