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());
     }
 
 }