webwork/src/test/webwork/action/factory SessionMapTestCase.java,NONE,1.1
[email protected] Sun, 28 Dec 2003 16:25:34 -0800
| Newsgroups | gmane.comp.java.open-symphony.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/opensymphony/webwork/src/test/webwork/action/factory In directory sc8-pr-cvs1:/tmp/cvs-serv6667/src/test/webwork/action/factory Added Files: SessionMapTestCase.java Log Message: Fix for WW-428 --- NEW FILE: SessionMapTestCase.java --- package webwork.action.factory; import com.mockobjects.constraint.Constraint; import com.mockobjects.constraint.IsEqual; import com.mockobjects.constraint.IsAnything; import com.mockobjects.dynamic.Mock; import junit.framework.TestCase; import javax.servlet.http.HttpSession; import java.util.Map; import java.util.HashMap; /** * @author Robert Dawson ([email protected]) */ public class SessionMapTestCase extends TestCase { public void testGetOnSessionMapUsesWrappedSessionsGetAttribute() throws Exception { Mock sessionMock = new Mock(HttpSession.class); Object value = new Object(); sessionMock.expectAndReturn("getAttribute", new Constraint[]{new IsEqual("KEY")}, value); SessionMap sessionMap = new SessionMap((HttpSession) sessionMock.proxy()); assertEquals("Expected the get using KEY to return the value object setup in the mockSession", value, sessionMap.get("KEY")); sessionMock.verify(); } public void testPutOnSessionMapUsesWrappedSessionsSetsAttribute() throws Exception { Mock sessionMock = new Mock(HttpSession.class); Object value = new Object(); sessionMock.expect("getAttribute",new Constraint[]{new IsAnything()}); sessionMock.expect("setAttribute", new Constraint[]{new IsEqual("KEY"),new IsEqual(value)}); SessionMap sessionMap = new SessionMap((HttpSession) sessionMock.proxy()); sessionMap.put("KEY", value); sessionMock.verify(); } /** * class that extends session map, making the values available in a local map -- useful * for confirming put and get calls in the superclass. ie useful for testing that the get is done before * putting new data into the map. */ private class MockSessionMap extends SessionMap{ public MockSessionMap(HttpSession s) { super(s); } private Map map = new HashMap(); public Object get(Object key) { return map.get(key); } public Object put(Object key, Object value) { Object originalValue = super.put(key, value); map.put(key,value); //put the value into our map after putting it in the superclass map to avoid polluting the get call. return originalValue; } } public void testPuttingObjectInMapReturnsNullForPreviouslyUnusedKey() throws Exception { Mock sessionMock = new Mock(HttpSession.class); Object value = new Object(); sessionMock.expect("setAttribute", new Constraint[]{new IsEqual("KEY"),new IsEqual(value)}); MockSessionMap sessionMap = new MockSessionMap((HttpSession) sessionMock.proxy()); assertNull("should be null, as the contract for Map says that put returns the previous value in the map for the key",sessionMap.put("KEY", value)); sessionMock.verify(); } public void testPuttingObjectInMapReturnsPreviousValueForKey() throws Exception { Mock sessionMock = new Mock(HttpSession.class); Object originalValue = new Object(); Object value = new Object(); sessionMock.expect("setAttribute", new Constraint[]{new IsEqual("KEY"),new IsEqual(originalValue)}); sessionMock.expect("setAttribute", new Constraint[]{new IsEqual("KEY"),new IsEqual(value)}); MockSessionMap sessionMap = new MockSessionMap((HttpSession) sessionMock.proxy()); sessionMap.put("KEY", originalValue); assertEquals("should be the OriginalValue, as the contract for Map says that put returns the previous value in the map for the key",originalValue, sessionMap.put("KEY", value)); sessionMock.verify(); } public void testRemovePassThroughCallToRemoveAttribute() throws Exception { Mock sessionMock = new Mock(HttpSession.class); Object value = new Object(); sessionMock.expectAndReturn("getAttribute", new Constraint[]{new IsEqual("KEY")}, value); sessionMock.expect("removeAttribute", new Constraint[]{new IsEqual("KEY")}); SessionMap sessionMap = new SessionMap((HttpSession) sessionMock.proxy()); assertEquals(value, sessionMap.remove("KEY")); sessionMock.verify(); } public void testClearInvalidatesTheSession() throws Exception { Mock sessionMock = new Mock(HttpSession.class); sessionMock.expect("invalidate"); SessionMap sessionMap = new SessionMap((HttpSession) sessionMock.proxy()); sessionMap.clear(); sessionMock.verify(); } } ------------------------------------------------------- This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click