public void testInvocationContext() throws Exception { final String resourceName = "something/interesting"; ServletRunner sr = new ServletRunner(); sr.registerServlet(resourceName, StatefulServlet.class.getName()); ServletUnitClient suc = sr.newClient(); WebRequest request = new PostMethodWebRequest("http://localhost/" + resourceName); request.setParameter("color", "red"); InvocationContext ic = suc.newInvocation(request); StatefulServlet ss = (StatefulServlet) ic.getServlet(); assertNull("A session already exists", ss.getColor(ic.getRequest())); ss.setColor(ic.getRequest(), "blue"); assertEquals("Color in session", "blue", ss.getColor(ic.getRequest())); Enumeration e = ic.getRequest().getSession().getAttributeNames(); assertNotNull("No attribute list returned", e); assertTrue("No attribute names in list", e.hasMoreElements()); assertEquals("First attribute name", "color", e.nextElement()); assertTrue("List did not end after one name", !e.hasMoreElements()); String[] names = ic.getRequest().getSession().getValueNames(); assertEquals("number of value names", 1, names.length); assertEquals("first name", "color", names[0]); }