diff --git a/core/src/main/java/org/apache/struts2/dispatcher/RequestMap.java b/core/src/main/java/org/apache/struts2/dispatcher/RequestMap.java index 51d30a2b7..a75dffb75 100644 --- a/core/src/main/java/org/apache/struts2/dispatcher/RequestMap.java +++ b/core/src/main/java/org/apache/struts2/dispatcher/RequestMap.java @@ -94,6 +94,7 @@ public class RequestMap extends AbstractMap implements Serializa * @param key the name of the request attribute. * @return the request attribute or null if it doesn't exist. */ + @Override public Object get(final Object key) { if (key == null) { return null; diff --git a/core/src/test/java/org/apache/struts2/dispatcher/RequestMapTest.java b/core/src/test/java/org/apache/struts2/dispatcher/RequestMapTest.java new file mode 100644 index 000000000..1b1873745 --- /dev/null +++ b/core/src/test/java/org/apache/struts2/dispatcher/RequestMapTest.java @@ -0,0 +1,75 @@ +package org.apache.struts2.dispatcher; + +import org.junit.Test; +import org.springframework.mock.web.MockHttpServletRequest; + +import javax.servlet.http.HttpServletRequest; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +public class RequestMapTest { + + @Test + public void shouldAccessRequestAttributes() { + // given + HttpServletRequest request = new MockHttpServletRequest(); + request.setAttribute("attr", "value"); + + // when + RequestMap rm = new RequestMap(request); + Object value = rm.get("attr"); + + // then + assertEquals("value", value); + } + + @Test + public void shouldReturnNullIfKeyIsNull() { + // given + HttpServletRequest request = new MockHttpServletRequest(); + + // when + RequestMap rm = new RequestMap(request); + Object value = rm.get(null); + + // then + assertNull(value); + } + + @Test + public void shouldRemoveAttributeFromRequest() { + // given + HttpServletRequest request = new MockHttpServletRequest(); + request.setAttribute("attr", "value"); + + // when + RequestMap rm = new RequestMap(request); + Object value = rm.remove("attr"); + + // then + assertEquals("value", value); + assertNull(request.getAttribute("attr")); + } + + @Test + public void shouldClearAttributes() { + // given + HttpServletRequest request = new MockHttpServletRequest(); + request.setAttribute("attr", "value"); + + // when + RequestMap rm = new RequestMap(request); + Object value = rm.get("attr"); + + // then + assertEquals("value", value); + + // when + rm.clear(); + + // then + assertNull(request.getAttribute("attr")); + } + +}