⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 defaultactionvalidatormanagertest.java

📁 在Struts2中的jar包xwork的源代码.版本为2.0.7
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        List validatorList2 = actionValidatorManager.getValidators(SimpleAction2.class, alias);        assertFalse(validatorList.size() == validatorList2.size());    }    public void testSkipUserMarkerActionLevelShortCircuit() {        // get validators        List validatorList = actionValidatorManager.getValidators(User.class, null);        assertEquals(10, validatorList.size());        try {            User user = new User();            user.setName("Mark");            user.setEmail("bad_email");            user.setEmail2("bad_email");            ValidatorContext context = new GenericValidatorContext(user);            actionValidatorManager.validate(user, null, context);            assertTrue(context.hasFieldErrors());            // check field errors            List l = (List) context.getFieldErrors().get("email");            assertNotNull(l);            assertEquals(1, l.size());            assertEquals("Not a valid e-mail.", l.get(0));            l = (List) context.getFieldErrors().get("email2");            assertNotNull(l);            assertEquals(2, l.size());            assertEquals("Not a valid e-mail2.", l.get(0));            assertEquals("Email2 not from the right company.", l.get(1));            // check action errors            assertTrue(context.hasActionErrors());            l = (List) context.getActionErrors();            assertNotNull(l);            assertEquals(2, l.size()); // both expression test failed see User-validation.xml            assertEquals("Email does not start with mark", l.get(0));        } catch (ValidationException ex) {            ex.printStackTrace();            fail("Validation error: " + ex.getMessage());        }    }    public void testSkipAllActionLevelShortCircuit2() {        // get validators        List validatorList = actionValidatorManager.getValidators(User.class, null);        assertEquals(10, validatorList.size());        try {            User user = new User();            user.setName("Mark");            // * mark both email to starts with mark to get pass the action-level validator,            // so we could concentrate on testing the field-level validators (User-validation.xml)            // * make both email the same to pass the action-level validator at             // UserMarker-validation.xml            user.setEmail("mark_bad_email_for_field_val@foo.com");            user.setEmail2("mark_bad_email_for_field_val@foo.com");            ValidatorContext context = new GenericValidatorContext(user);            actionValidatorManager.validate(user, null, context);            assertTrue(context.hasFieldErrors());            // check field errors            // we have an error in this field level, email does not ends with mycompany.com            List l = (List) context.getFieldErrors().get("email");            assertNotNull(l);            assertEquals(1, l.size()); // because email-field-val is short-circuit            assertEquals("Email not from the right company.", l.get(0));                        // check action errors            l = (List) context.getActionErrors();            assertFalse(context.hasActionErrors());            assertEquals(0, l.size());                                } catch (ValidationException ex) {            ex.printStackTrace();            fail("Validation error: " + ex.getMessage());        }    }        public void testActionLevelShortCircuit() throws Exception {    	    	List validatorList = actionValidatorManager.getValidators(User.class, null);        assertEquals(10, validatorList.size());                User user = new User();        // all fields will trigger error, but sc of action-level, cause it to not appear        user.setName(null);		        user.setEmail("tmjee(at)yahoo.co.uk");        user.setEmail("tm_jee(at)yahoo.co.uk");                ValidatorContext context = new GenericValidatorContext(user);        actionValidatorManager.validate(user, null, context);    	    	// check field level errors        // shouldn't have any because action error prevents validation of anything else        List l = (List) context.getFieldErrors().get("email2");        assertNull(l);    	    	        // check action errors        assertTrue(context.hasActionErrors());        l = (List) context.getActionErrors();        assertNotNull(l);        // we only get one, because UserMarker-validation.xml action-level validator        // already sc it   :-)        assertEquals(1, l.size());         assertEquals("Email not the same as email2", l.get(0));    }            public void testShortCircuitNoErrors() {        // get validators        List validatorList = actionValidatorManager.getValidators(User.class, null);        assertEquals(10, validatorList.size());        try {            User user = new User();            user.setName("Mark");            user.setEmail("mark@mycompany.com");            user.setEmail2("mark@mycompany.com");            ValidatorContext context = new GenericValidatorContext(user);            actionValidatorManager.validate(user, null, context);            assertFalse(context.hasErrors());        } catch (ValidationException ex) {            ex.printStackTrace();            fail("Validation error: " + ex.getMessage());        }    }        public void testFieldErrorsOrder() throws Exception {    	ValidationOrderAction action = new ValidationOrderAction();    	actionValidatorManager.validate(action, "actionContext");    	Map fieldErrors = action.getFieldErrors();    	Iterator i = fieldErrors.entrySet().iterator();    	    	assertNotNull(fieldErrors);    	assertEquals(fieldErrors.size(), 12);    	    	    	Map.Entry e = (Map.Entry) i.next();    	assertEquals(e.getKey(), "username");    	assertEquals(((List)e.getValue()).get(0), "username required");    	    	e = (Map.Entry) i.next();    	assertEquals(e.getKey(), "password");    	assertEquals(((List)e.getValue()).get(0), "password required");    	    	e = (Map.Entry) i.next();    	assertEquals(e.getKey(), "confirmPassword");    	assertEquals(((List)e.getValue()).get(0), "confirm password required");    	    	e = (Map.Entry) i.next();    	assertEquals(e.getKey(), "firstName");    	assertEquals(((List)e.getValue()).get(0), "first name required");    	    	e = (Map.Entry) i.next();    	assertEquals(e.getKey(), "lastName");    	assertEquals(((List)e.getValue()).get(0), "last name required");    	    	e = (Map.Entry) i.next();    	assertEquals(e.getKey(), "city");    	assertEquals(((List)e.getValue()).get(0), "city is required");    	    	e = (Map.Entry) i.next();    	assertEquals(e.getKey(), "province");    	assertEquals(((List)e.getValue()).get(0), "province is required");    	    	e = (Map.Entry) i.next();    	assertEquals(e.getKey(), "country");    	assertEquals(((List)e.getValue()).get(0), "country is required");    	    	e = (Map.Entry) i.next();    	assertEquals(e.getKey(), "postalCode");    	assertEquals(((List)e.getValue()).get(0), "postal code is required");    	    	e = (Map.Entry) i.next();    	assertEquals(e.getKey(), "email");    	assertEquals(((List)e.getValue()).get(0), "email is required");    	    	e = (Map.Entry) i.next();    	assertEquals(e.getKey(), "website");    	assertEquals(((List)e.getValue()).get(0), "website is required");    	    	e = (Map.Entry) i.next();    	assertEquals(e.getKey(), "passwordHint");    	assertEquals(((List)e.getValue()).get(0), "password hint is required");    	    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -