From f14942edb01bf4d67e1b46e99c66a45669137636 Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Fri, 4 Dec 2015 12:05:19 -0600 Subject: [PATCH] Add Tests for Lazy Updates of Spring Session Ensure that the session is only modified if it is accessed. This allows for optimizations to ensure that for things like static resources there is no need for hitting a data store. --- .../http/SessionRepositoryFilterTests.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/spring-session/src/test/java/org/springframework/session/web/http/SessionRepositoryFilterTests.java b/spring-session/src/test/java/org/springframework/session/web/http/SessionRepositoryFilterTests.java index 5a60881..09aafc7 100644 --- a/spring-session/src/test/java/org/springframework/session/web/http/SessionRepositoryFilterTests.java +++ b/spring-session/src/test/java/org/springframework/session/web/http/SessionRepositoryFilterTests.java @@ -1165,6 +1165,39 @@ public class SessionRepositoryFilterTests { verifyZeroInteractions(sessionRepository); } + @Test + public void doFilterLazySessionCreation() throws Exception { + SessionRepository sessionRepository = spy(new MapSessionRepository()); + + filter = new SessionRepositoryFilter(sessionRepository); + + doFilter(new DoInFilter(){ + @Override + public void doFilter(HttpServletRequest wrappedRequest, HttpServletResponse wrappedResponse) throws IOException { + } + }); + + verifyZeroInteractions(sessionRepository); + } + + @Test + public void doFilterLazySessionUpdates() throws Exception { + ExpiringSession session = this.sessionRepository.createSession(); + this.sessionRepository.save(session); + SessionRepository sessionRepository = spy(this.sessionRepository); + setSessionCookie(session.getId()); + + filter = new SessionRepositoryFilter(sessionRepository); + + doFilter(new DoInFilter(){ + @Override + public void doFilter(HttpServletRequest wrappedRequest, HttpServletResponse wrappedResponse) throws IOException { + } + }); + + verifyZeroInteractions(sessionRepository); + } + // --- order @Test