InMemoryRepository implements SessionRepository { @Override public boolean prepareRemove(SessionData session) { sessionDataCache.remove(id(session.getId())); return true; } InMemoryRepository(String namespace); @Override SessionData getSessionData(String id); @Override void storeSessionData(SessionData sessionData); @Override Set<String> getAllKeys(SessionData session); @Override Object getSessionAttribute(SessionData session, String attribute); @Override void remove(SessionData session); @Override boolean prepareRemove(SessionData session); @Override SessionRepository.CommitTransaction startCommit(SessionData session); @Override void setSessionManager(final SessionManager sessionManager); @Override void requestFinished(); @Override void setSessionAttribute(SessionData session, String name, Object value); @Override void removeSessionAttribute(SessionData session, String name); @Override boolean cleanSessionsOnShutdown(); @Override Collection<String> getOwnedSessionIds(); @Override void close(); @Override void reset(); @Override void sessionIdChange(SessionData sessionData); @Override boolean isConnected();  }
@Test public void testPrepareRemove() { SessionData sessionData = new SessionData("test", 1000, 10); repository.storeSessionData(sessionData); repository.prepareRemove(sessionData); assertThat(repository.getOwnedSessionIds(), not(hasItem("test"))); }