Update MockHttpSession across the test suite

This commit is contained in:
Sam Brannen 2012-08-16 13:38:51 +02:00
parent 8059625670
commit 3b9833c538
5 changed files with 109 additions and 43 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2011 the original author or authors. * Copyright 2002-2012 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -17,12 +17,12 @@
package org.springframework.mock.web; package org.springframework.mock.web;
import java.io.Serializable; import java.io.Serializable;
import java.util.Collections;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import java.util.Vector;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionBindingEvent;
@ -36,14 +36,20 @@ import org.springframework.util.Assert;
* *
* <p>Compatible with Servlet 2.5 as well as Servlet 3.0. * <p>Compatible with Servlet 2.5 as well as Servlet 3.0.
* *
* <p>Used for testing the web framework; also useful for testing application
* controllers.
*
* @author Juergen Hoeller * @author Juergen Hoeller
* @author Rod Johnson * @author Rod Johnson
* @author Mark Fisher * @author Mark Fisher
* @author Sam Brannen
* @since 1.0.2 * @since 1.0.2
*/ */
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public class MockHttpSession implements HttpSession { public class MockHttpSession implements HttpSession {
public static final String SESSION_COOKIE_NAME = "JSESSION";
private static int nextId = 1; private static int nextId = 1;
private final String id; private final String id;
@ -64,9 +70,9 @@ public class MockHttpSession implements HttpSession {
/** /**
* Create a new MockHttpSession with a default {@link org.springframework.mock.web.MockServletContext}. * Create a new MockHttpSession with a default {@link MockServletContext}.
* *
* @see org.springframework.mock.web.MockServletContext * @see MockServletContext
*/ */
public MockHttpSession() { public MockHttpSession() {
this(null); this(null);
@ -135,7 +141,7 @@ public class MockHttpSession implements HttpSession {
} }
public Enumeration<String> getAttributeNames() { public Enumeration<String> getAttributeNames() {
return new Vector<String>(this.attributes.keySet()).elements(); return Collections.enumeration(this.attributes.keySet());
} }
public String[] getValueNames() { public String[] getValueNames() {
@ -186,7 +192,17 @@ public class MockHttpSession implements HttpSession {
} }
} }
/**
* Invalidates this session then unbinds any objects bound to it.
*
* @throws IllegalStateException if this method is called on an already invalidated session
*/
public void invalidate() { public void invalidate() {
if (this.invalid) {
throw new IllegalStateException("The session has already been invalidated");
}
// else
this.invalid = true; this.invalid = true;
clearAttributes(); clearAttributes();
} }

View File

@ -17,12 +17,12 @@
package org.springframework.mock.web; package org.springframework.mock.web;
import java.io.Serializable; import java.io.Serializable;
import java.util.Collections;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import java.util.Vector;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSessionBindingEvent;
@ -36,6 +36,9 @@ import org.springframework.util.Assert;
* *
* <p>Compatible with Servlet 2.5 as well as Servlet 3.0. * <p>Compatible with Servlet 2.5 as well as Servlet 3.0.
* *
* <p>Used for testing the web framework; also useful for testing application
* controllers.
*
* @author Juergen Hoeller * @author Juergen Hoeller
* @author Rod Johnson * @author Rod Johnson
* @author Mark Fisher * @author Mark Fisher
@ -45,6 +48,8 @@ import org.springframework.util.Assert;
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public class MockHttpSession implements HttpSession { public class MockHttpSession implements HttpSession {
public static final String SESSION_COOKIE_NAME = "JSESSION";
private static int nextId = 1; private static int nextId = 1;
private final String id; private final String id;
@ -136,7 +141,7 @@ public class MockHttpSession implements HttpSession {
} }
public Enumeration<String> getAttributeNames() { public Enumeration<String> getAttributeNames() {
return new Vector<String>(this.attributes.keySet()).elements(); return Collections.enumeration(this.attributes.keySet());
} }
public String[] getValueNames() { public String[] getValueNames() {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2009 the original author or authors. * Copyright 2002-2012 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -33,23 +33,25 @@ import org.springframework.util.Assert;
/** /**
* Mock implementation of the {@link javax.servlet.http.HttpSession} interface. * Mock implementation of the {@link javax.servlet.http.HttpSession} interface.
* Supports the Servlet 2.4 API level.
* *
* <p>Used for testing the web framework; also useful for testing * <p>Compatible with Servlet 2.5 as well as Servlet 3.0.
* application controllers. *
* <p>Used for testing the web framework; also useful for testing application
* controllers.
* *
* @author Juergen Hoeller * @author Juergen Hoeller
* @author Rod Johnson * @author Rod Johnson
* @author Mark Fisher * @author Mark Fisher
* @author Sam Brannen
* @since 1.0.2 * @since 1.0.2
*/ */
@SuppressWarnings("deprecation")
public class MockHttpSession implements HttpSession { public class MockHttpSession implements HttpSession {
public static final String SESSION_COOKIE_NAME = "JSESSION"; public static final String SESSION_COOKIE_NAME = "JSESSION";
private static int nextId = 1; private static int nextId = 1;
private final String id; private final String id;
private final long creationTime = System.currentTimeMillis(); private final long creationTime = System.currentTimeMillis();
@ -69,6 +71,7 @@ public class MockHttpSession implements HttpSession {
/** /**
* Create a new MockHttpSession with a default {@link MockServletContext}. * Create a new MockHttpSession with a default {@link MockServletContext}.
*
* @see MockServletContext * @see MockServletContext
*/ */
public MockHttpSession() { public MockHttpSession() {
@ -77,6 +80,7 @@ public class MockHttpSession implements HttpSession {
/** /**
* Create a new MockHttpSession. * Create a new MockHttpSession.
*
* @param servletContext the ServletContext that the session runs in * @param servletContext the ServletContext that the session runs in
*/ */
public MockHttpSession(ServletContext servletContext) { public MockHttpSession(ServletContext servletContext) {
@ -85,6 +89,7 @@ public class MockHttpSession implements HttpSession {
/** /**
* Create a new MockHttpSession. * Create a new MockHttpSession.
*
* @param servletContext the ServletContext that the session runs in * @param servletContext the ServletContext that the session runs in
* @param id a unique identifier for this session * @param id a unique identifier for this session
*/ */
@ -93,7 +98,6 @@ public class MockHttpSession implements HttpSession {
this.id = (id != null ? id : Integer.toString(nextId++)); this.id = (id != null ? id : Integer.toString(nextId++));
} }
public long getCreationTime() { public long getCreationTime() {
return this.creationTime; return this.creationTime;
} }
@ -188,7 +192,17 @@ public class MockHttpSession implements HttpSession {
} }
} }
/**
* Invalidates this session then unbinds any objects bound to it.
*
* @throws IllegalStateException if this method is called on an already invalidated session
*/
public void invalidate() { public void invalidate() {
if (this.invalid) {
throw new IllegalStateException("The session has already been invalidated");
}
// else
this.invalid = true; this.invalid = true;
clearAttributes(); clearAttributes();
} }
@ -205,10 +219,10 @@ public class MockHttpSession implements HttpSession {
return this.isNew; return this.isNew;
} }
/** /**
* Serialize the attributes of this session into an object that can * Serialize the attributes of this session into an object that can be
* be turned into a byte array with standard Java serialization. * turned into a byte array with standard Java serialization.
*
* @return a representation of this session's serialized state * @return a representation of this session's serialized state
*/ */
public Serializable serializeState() { public Serializable serializeState() {
@ -233,8 +247,9 @@ public class MockHttpSession implements HttpSession {
} }
/** /**
* Deserialize the attributes of this session from a state object * Deserialize the attributes of this session from a state object created by
* created by {@link #serializeState()}. * {@link #serializeState()}.
*
* @param state a representation of this session's serialized state * @param state a representation of this session's serialized state
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2009 the original author or authors. * Copyright 2002-2012 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -33,23 +33,25 @@ import org.springframework.util.Assert;
/** /**
* Mock implementation of the {@link javax.servlet.http.HttpSession} interface. * Mock implementation of the {@link javax.servlet.http.HttpSession} interface.
* Supports the Servlet 2.4 API level.
* *
* <p>Used for testing the web framework; also useful for testing * <p>Compatible with Servlet 2.5 as well as Servlet 3.0.
* application controllers. *
* <p>Used for testing the web framework; also useful for testing application
* controllers.
* *
* @author Juergen Hoeller * @author Juergen Hoeller
* @author Rod Johnson * @author Rod Johnson
* @author Mark Fisher * @author Mark Fisher
* @author Sam Brannen
* @since 1.0.2 * @since 1.0.2
*/ */
@SuppressWarnings("deprecation")
public class MockHttpSession implements HttpSession { public class MockHttpSession implements HttpSession {
public static final String SESSION_COOKIE_NAME = "JSESSION"; public static final String SESSION_COOKIE_NAME = "JSESSION";
private static int nextId = 1; private static int nextId = 1;
private final String id; private final String id;
private final long creationTime = System.currentTimeMillis(); private final long creationTime = System.currentTimeMillis();
@ -68,8 +70,9 @@ public class MockHttpSession implements HttpSession {
/** /**
* Create a new MockHttpSession with a default {@link org.springframework.mock.web.MockServletContext}. * Create a new MockHttpSession with a default {@link MockServletContext}.
* @see org.springframework.mock.web.MockServletContext *
* @see MockServletContext
*/ */
public MockHttpSession() { public MockHttpSession() {
this(null); this(null);
@ -77,6 +80,7 @@ public class MockHttpSession implements HttpSession {
/** /**
* Create a new MockHttpSession. * Create a new MockHttpSession.
*
* @param servletContext the ServletContext that the session runs in * @param servletContext the ServletContext that the session runs in
*/ */
public MockHttpSession(ServletContext servletContext) { public MockHttpSession(ServletContext servletContext) {
@ -85,6 +89,7 @@ public class MockHttpSession implements HttpSession {
/** /**
* Create a new MockHttpSession. * Create a new MockHttpSession.
*
* @param servletContext the ServletContext that the session runs in * @param servletContext the ServletContext that the session runs in
* @param id a unique identifier for this session * @param id a unique identifier for this session
*/ */
@ -93,7 +98,6 @@ public class MockHttpSession implements HttpSession {
this.id = (id != null ? id : Integer.toString(nextId++)); this.id = (id != null ? id : Integer.toString(nextId++));
} }
public long getCreationTime() { public long getCreationTime() {
return this.creationTime; return this.creationTime;
} }
@ -188,7 +192,17 @@ public class MockHttpSession implements HttpSession {
} }
} }
/**
* Invalidates this session then unbinds any objects bound to it.
*
* @throws IllegalStateException if this method is called on an already invalidated session
*/
public void invalidate() { public void invalidate() {
if (this.invalid) {
throw new IllegalStateException("The session has already been invalidated");
}
// else
this.invalid = true; this.invalid = true;
clearAttributes(); clearAttributes();
} }
@ -205,10 +219,10 @@ public class MockHttpSession implements HttpSession {
return this.isNew; return this.isNew;
} }
/** /**
* Serialize the attributes of this session into an object that can * Serialize the attributes of this session into an object that can be
* be turned into a byte array with standard Java serialization. * turned into a byte array with standard Java serialization.
*
* @return a representation of this session's serialized state * @return a representation of this session's serialized state
*/ */
public Serializable serializeState() { public Serializable serializeState() {
@ -233,8 +247,9 @@ public class MockHttpSession implements HttpSession {
} }
/** /**
* Deserialize the attributes of this session from a state object * Deserialize the attributes of this session from a state object created by
* created by {@link #serializeState()}. * {@link #serializeState()}.
*
* @param state a representation of this session's serialized state * @param state a representation of this session's serialized state
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2009 the original author or authors. * Copyright 2002-2012 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -33,23 +33,25 @@ import org.springframework.util.Assert;
/** /**
* Mock implementation of the {@link javax.servlet.http.HttpSession} interface. * Mock implementation of the {@link javax.servlet.http.HttpSession} interface.
* Supports the Servlet 2.4 API level.
* *
* <p>Used for testing the web framework; also useful for testing * <p>Compatible with Servlet 2.5 as well as Servlet 3.0.
* application controllers. *
* <p>Used for testing the web framework; also useful for testing application
* controllers.
* *
* @author Juergen Hoeller * @author Juergen Hoeller
* @author Rod Johnson * @author Rod Johnson
* @author Mark Fisher * @author Mark Fisher
* @author Sam Brannen
* @since 1.0.2 * @since 1.0.2
*/ */
@SuppressWarnings("deprecation")
public class MockHttpSession implements HttpSession { public class MockHttpSession implements HttpSession {
public static final String SESSION_COOKIE_NAME = "JSESSION"; public static final String SESSION_COOKIE_NAME = "JSESSION";
private static int nextId = 1; private static int nextId = 1;
private final String id; private final String id;
private final long creationTime = System.currentTimeMillis(); private final long creationTime = System.currentTimeMillis();
@ -69,6 +71,7 @@ public class MockHttpSession implements HttpSession {
/** /**
* Create a new MockHttpSession with a default {@link MockServletContext}. * Create a new MockHttpSession with a default {@link MockServletContext}.
*
* @see MockServletContext * @see MockServletContext
*/ */
public MockHttpSession() { public MockHttpSession() {
@ -77,6 +80,7 @@ public class MockHttpSession implements HttpSession {
/** /**
* Create a new MockHttpSession. * Create a new MockHttpSession.
*
* @param servletContext the ServletContext that the session runs in * @param servletContext the ServletContext that the session runs in
*/ */
public MockHttpSession(ServletContext servletContext) { public MockHttpSession(ServletContext servletContext) {
@ -85,6 +89,7 @@ public class MockHttpSession implements HttpSession {
/** /**
* Create a new MockHttpSession. * Create a new MockHttpSession.
*
* @param servletContext the ServletContext that the session runs in * @param servletContext the ServletContext that the session runs in
* @param id a unique identifier for this session * @param id a unique identifier for this session
*/ */
@ -93,7 +98,6 @@ public class MockHttpSession implements HttpSession {
this.id = (id != null ? id : Integer.toString(nextId++)); this.id = (id != null ? id : Integer.toString(nextId++));
} }
public long getCreationTime() { public long getCreationTime() {
return this.creationTime; return this.creationTime;
} }
@ -188,7 +192,17 @@ public class MockHttpSession implements HttpSession {
} }
} }
/**
* Invalidates this session then unbinds any objects bound to it.
*
* @throws IllegalStateException if this method is called on an already invalidated session
*/
public void invalidate() { public void invalidate() {
if (this.invalid) {
throw new IllegalStateException("The session has already been invalidated");
}
// else
this.invalid = true; this.invalid = true;
clearAttributes(); clearAttributes();
} }
@ -205,10 +219,10 @@ public class MockHttpSession implements HttpSession {
return this.isNew; return this.isNew;
} }
/** /**
* Serialize the attributes of this session into an object that can * Serialize the attributes of this session into an object that can be
* be turned into a byte array with standard Java serialization. * turned into a byte array with standard Java serialization.
*
* @return a representation of this session's serialized state * @return a representation of this session's serialized state
*/ */
public Serializable serializeState() { public Serializable serializeState() {
@ -233,8 +247,9 @@ public class MockHttpSession implements HttpSession {
} }
/** /**
* Deserialize the attributes of this session from a state object * Deserialize the attributes of this session from a state object created by
* created by {@link #serializeState()}. * {@link #serializeState()}.
*
* @param state a representation of this session's serialized state * @param state a representation of this session's serialized state
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")