public void testModelOnSession() throws Exception { inter.setScope("session"); inter.setName("king"); User user = new User(); user.setName("King George"); Map session = new HashMap(); ActionContext.getContext().setSession(session); ActionContext.getContext().getSession().put("king", user); ScopedModelDriven action = new MyUserScopedModelDrivenAction(); MockActionInvocation mai = new MockActionInvocation(); MockActionProxy map = new MockActionProxy(); ActionConfig ac = new ActionConfig.Builder("", "", "").build(); map.setConfig(ac); mai.setAction(action); mai.setProxy(map); inter.intercept(mai); inter.destroy(); assertNotNull(action.getModel()); assertNotNull(action.getScopeKey()); assertEquals("king", action.getScopeKey()); Object model = ActionContext.getContext().getSession().get(action.getScopeKey()); assertNotNull(model); assertTrue("Model should be an User object", model instanceof User); assertEquals("King George", ((User) model).getName()); }
public void testModelAlreadySetOnAction() throws Exception { inter.setScope("request"); inter.setName("king"); User user = new User(); user.setName("King George"); ScopedModelDriven action = new MyUserScopedModelDrivenAction(); action.setModel(user); MockActionInvocation mai = new MockActionInvocation(); MockActionProxy map = new MockActionProxy(); ActionConfig ac = new ActionConfig.Builder("", "", "").build(); map.setConfig(ac); mai.setAction(action); mai.setProxy(map); inter.intercept(mai); inter.destroy(); assertNotNull(action.getModel()); assertNull(action.getScopeKey()); // no scope key as nothing happended }
/** XW-281 */ public void testSetBigIndexedValue() { ValueStack stack = ActionContext.getContext().getValueStack(); Map stackContext = stack.getContext(); stackContext.put(ReflectionContextState.CREATE_NULL_OBJECTS, Boolean.FALSE); stackContext.put(ReflectionContextState.DENY_METHOD_EXECUTION, Boolean.TRUE); stackContext.put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE); User user = new User(); stack.push(user); // indexed string w/ existing array user.setList(new ArrayList()); String[] foo = new String[] {"asdf"}; ((OgnlValueStack) stack).setDevMode("true"); try { stack.setValue("list.1114778947765", foo); fail("non-valid expression: list.1114778947765"); } catch (RuntimeException ex) {; // it's oke } try { stack.setValue("1114778947765", foo); fail("non-valid expression: 1114778947765"); } catch (RuntimeException ex) {; } try { stack.setValue("1234", foo); fail("non-valid expression: 1114778947765"); } catch (RuntimeException ex) {; } ((OgnlValueStack) stack).setDevMode("false"); stack.setValue("list.1114778947765", foo); stack.setValue("1114778947765", foo); stack.setValue("1234", foo); }
/** Test that type conversion is performed on indexed collection properties. */ public void testSetIndexedValue() { ValueStack stack = ActionContext.getContext().getValueStack(); Map<String, Object> stackContext = stack.getContext(); stackContext.put(ReflectionContextState.CREATE_NULL_OBJECTS, Boolean.TRUE); stackContext.put(ReflectionContextState.DENY_METHOD_EXECUTION, Boolean.TRUE); stackContext.put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE); User user = new User(); stack.push(user); // indexed string w/ existing array user.setList(new ArrayList<String>()); user.getList().add(""); String[] foo = new String[] {"asdf"}; stack.setValue("list[0]", foo); assertNotNull(user.getList()); assertEquals(1, user.getList().size()); assertEquals(String.class, user.getList().get(0).getClass()); assertEquals("asdf", user.getList().get(0)); }