You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ss...@apache.org on 2015/09/03 08:17:31 UTC
svn commit: r1700936 - in /sling/trunk/testing/mocks/sling-mock/src:
main/java/org/apache/sling/testing/mock/sling/servlet/
test/java/org/apache/sling/testing/mock/sling/servlet/
Author: sseifert
Date: Thu Sep 3 06:17:31 2015
New Revision: 1700936
URL: http://svn.apache.org/r1700936
Log:
SLING-4990 Support HttpSession invalidate, new, lastAccessedTime, maxInteractiveInterval
Modified:
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSession.java
sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/package-info.java
sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSessionTest.java
Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSession.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSession.java?rev=1700936&r1=1700935&r2=1700936&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSession.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSession.java Thu Sep 3 06:17:31 2015
@@ -37,6 +37,9 @@ public final class MockHttpSession imple
private final Map<String, Object> attributeMap = new HashMap<String, Object>();
private final String sessionID = UUID.randomUUID().toString();
private final long creationTime = System.currentTimeMillis();
+ private boolean invalidated = false;
+ private boolean isNew = true;
+ private int maxActiveInterval = 1800;
@Override
public ServletContext getServletContext() {
@@ -45,12 +48,14 @@ public final class MockHttpSession imple
@Override
public Object getAttribute(final String name) {
+ checkInvalidatedState();
return this.attributeMap.get(name);
}
@SuppressWarnings("unchecked")
@Override
public Enumeration<String> getAttributeNames() {
+ checkInvalidatedState();
return IteratorUtils.asEnumeration(this.attributeMap.keySet().iterator());
}
@@ -61,68 +66,92 @@ public final class MockHttpSession imple
@Override
public long getCreationTime() {
+ checkInvalidatedState();
return this.creationTime;
}
@Override
public Object getValue(final String name) {
+ checkInvalidatedState();
return getAttribute(name);
}
@Override
public String[] getValueNames() {
+ checkInvalidatedState();
return this.attributeMap.keySet().toArray(new String[this.attributeMap.keySet().size()]);
}
@Override
public void putValue(final String name, final Object value) {
+ checkInvalidatedState();
setAttribute(name, value);
}
@Override
public void removeAttribute(final String name) {
+ checkInvalidatedState();
this.attributeMap.remove(name);
}
@Override
public void removeValue(final String name) {
+ checkInvalidatedState();
this.attributeMap.remove(name);
}
@Override
public void setAttribute(final String name, final Object value) {
+ checkInvalidatedState();
this.attributeMap.put(name, value);
}
- // --- unsupported operations ---
@Override
- public long getLastAccessedTime() {
- throw new UnsupportedOperationException();
+ public void invalidate() {
+ checkInvalidatedState();
+ this.invalidated = true;
+ }
+
+ private void checkInvalidatedState() {
+ if (invalidated) {
+ throw new IllegalStateException("Session is already invalidated.");
+ }
+ }
+
+ public boolean isInvalidated() {
+ return invalidated;
}
@Override
- public int getMaxInactiveInterval() {
- throw new UnsupportedOperationException();
+ public boolean isNew() {
+ checkInvalidatedState();
+ return isNew;
+ }
+
+ public void setNew(boolean isNew) {
+ this.isNew = isNew;
}
@Override
- @SuppressWarnings("deprecation")
- public javax.servlet.http.HttpSessionContext getSessionContext() {
- throw new UnsupportedOperationException();
+ public long getLastAccessedTime() {
+ checkInvalidatedState();
+ return creationTime;
}
@Override
- public void invalidate() {
- throw new UnsupportedOperationException();
+ public int getMaxInactiveInterval() {
+ return maxActiveInterval;
}
@Override
- public boolean isNew() {
- throw new UnsupportedOperationException();
+ public void setMaxInactiveInterval(final int interval) {
+ this.maxActiveInterval = interval;
}
+ // --- unsupported operations ---
@Override
- public void setMaxInactiveInterval(final int interval) {
+ @SuppressWarnings("deprecation")
+ public javax.servlet.http.HttpSessionContext getSessionContext() {
throw new UnsupportedOperationException();
}
Modified: sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/package-info.java?rev=1700936&r1=1700935&r2=1700936&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/package-info.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/main/java/org/apache/sling/testing/mock/sling/servlet/package-info.java Thu Sep 3 06:17:31 2015
@@ -19,5 +19,5 @@
/**
* Mock implementation of selected Servlet-related Sling APIs.
*/
-@aQute.bnd.annotation.Version("1.1")
+@aQute.bnd.annotation.Version("1.2")
package org.apache.sling.testing.mock.sling.servlet;
Modified: sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSessionTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSessionTest.java?rev=1700936&r1=1700935&r2=1700936&view=diff
==============================================================================
--- sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSessionTest.java (original)
+++ sling/trunk/testing/mocks/sling-mock/src/test/java/org/apache/sling/testing/mock/sling/servlet/MockHttpSessionTest.java Thu Sep 3 06:17:31 2015
@@ -23,52 +23,80 @@ import static org.junit.Assert.assertFal
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-import javax.servlet.http.HttpSession;
-
import org.junit.Before;
import org.junit.Test;
public class MockHttpSessionTest {
- private HttpSession httpSession;
+ private MockHttpSession httpSession;
@Before
public void setUp() throws Exception {
- this.httpSession = new MockHttpSession();
+ httpSession = new MockHttpSession();
}
@Test
public void testServletContext() {
- assertNotNull(this.httpSession.getServletContext());
+ assertNotNull(httpSession.getServletContext());
}
@Test
public void testId() {
- assertNotNull(this.httpSession.getId());
+ assertNotNull(httpSession.getId());
}
@Test
public void testCreationTime() {
- assertNotNull(this.httpSession.getCreationTime());
+ assertNotNull(httpSession.getCreationTime());
}
@Test
public void testAttributes() {
- this.httpSession.setAttribute("attr1", "value1");
- assertTrue(this.httpSession.getAttributeNames().hasMoreElements());
- assertEquals("value1", this.httpSession.getAttribute("attr1"));
- this.httpSession.removeAttribute("attr1");
- assertFalse(this.httpSession.getAttributeNames().hasMoreElements());
+ httpSession.setAttribute("attr1", "value1");
+ assertTrue(httpSession.getAttributeNames().hasMoreElements());
+ assertEquals("value1", httpSession.getAttribute("attr1"));
+ httpSession.removeAttribute("attr1");
+ assertFalse(httpSession.getAttributeNames().hasMoreElements());
}
- @SuppressWarnings("deprecation")
@Test
public void testValues() {
- this.httpSession.putValue("attr1", "value1");
- assertEquals(1, this.httpSession.getValueNames().length);
- assertEquals("value1", this.httpSession.getValue("attr1"));
- this.httpSession.removeValue("attr1");
- assertEquals(0, this.httpSession.getValueNames().length);
+ httpSession.putValue("attr1", "value1");
+ assertEquals(1, httpSession.getValueNames().length);
+ assertEquals("value1", httpSession.getValue("attr1"));
+ httpSession.removeValue("attr1");
+ assertEquals(0, httpSession.getValueNames().length);
+ }
+
+ @Test
+ public void testInvalidate() {
+ httpSession.invalidate();
+ assertTrue(httpSession.isInvalidated());
+ }
+
+ @Test(expected = IllegalStateException.class)
+ public void testInvalidateStateCheck() {
+ httpSession.invalidate();
+ httpSession.getAttribute("attr1");
+ }
+
+ @Test
+ public void testIsNew() {
+ assertTrue(httpSession.isNew());
+ httpSession.setNew(false);
+ assertFalse(httpSession.isNew());
+ }
+
+ @Test
+ public void testGetLastAccessedTime() {
+ assertNotNull(httpSession.getLastAccessedTime());
+ }
+
+ @Test
+ public void testGetMaxInactiveInterval() {
+ assertTrue(httpSession.getMaxInactiveInterval() > 0);
+ httpSession.setMaxInactiveInterval(123);
+ assertEquals(123, httpSession.getMaxInactiveInterval());
}
}