📄 defaultactionvalidatormanagertest.java
字号:
/* * Copyright (c) 2002-2003 by OpenSymphony * All rights reserved. */package com.opensymphony.xwork2.validator;import com.opensymphony.xwork2.SimpleAction;import com.opensymphony.xwork2.TestBean;import com.opensymphony.xwork2.ValidationOrderAction;import com.opensymphony.xwork2.XWorkTestCase;import com.opensymphony.xwork2.XWorkException;import com.opensymphony.xwork2.test.DataAware2;import com.opensymphony.xwork2.test.SimpleAction2;import com.opensymphony.xwork2.test.SimpleAction3;import com.opensymphony.xwork2.test.User;import com.opensymphony.xwork2.validator.validators.*;import java.util.Iterator;import java.util.List;import java.util.Map;/** * DefaultActionValidatorManagerTest * * @author Jason Carreira * @author tm_jee * @version $Date: 2006-07-10 02:30:29 +0200 (Mo, 10 Jul 2006) $ $Id: DefaultActionValidatorManagerTest.java 1063 2006-07-10 00:30:29Z mrdon $ */public class DefaultActionValidatorManagerTest extends XWorkTestCase { protected final String alias = "validationAlias"; ActionValidatorManager actionValidatorManager; protected void setUp() throws Exception { actionValidatorManager = new DefaultActionValidatorManager(); super.setUp(); } protected void tearDown() throws Exception { actionValidatorManager = null; super.tearDown(); } public void testBuildValidatorKey() { String validatorKey = DefaultActionValidatorManager.buildValidatorKey(SimpleAction.class, alias); assertEquals(SimpleAction.class.getName() + "/" + alias, validatorKey); } public void testBuildsValidatorsForAlias() { List validatorList = actionValidatorManager.getValidators(SimpleAction.class, alias); // 6 in the class level + 2 in the alias assertEquals(9, validatorList.size()); } public void testBuildsValidatorsForAliasError() { boolean pass = false; try { List validatorList = actionValidatorManager.getValidators(TestBean.class, "badtest"); } catch (XWorkException ex) { pass = true; } assertTrue("Didn't throw exception on load failure", pass); } public void testDefaultMessageInterpolation() { // get validators List validatorList = actionValidatorManager.getValidators(TestBean.class, "beanMessageBundle"); assertEquals(3, validatorList.size()); try { TestBean bean = new TestBean(); bean.setName("foo"); bean.setCount(99); ValidatorContext context = new GenericValidatorContext(bean); actionValidatorManager.validate(bean, "beanMessageBundle", context); assertTrue(context.hasErrors()); assertTrue(context.hasFieldErrors()); List l = (List) context.getFieldErrors().get("count"); assertNotNull(l); assertEquals(1, l.size()); assertEquals("Smaller Invalid Count: 99", l.get(0)); } catch (ValidationException ex) { ex.printStackTrace(); fail("Validation error: " + ex.getMessage()); } } public void testGetValidatorsForInterface() { List validatorList = actionValidatorManager.getValidators(DataAware2.class, alias); // 3 in interface hierarchy, 2 from parent interface (1 default + 1 context) assertEquals(3, validatorList.size()); final FieldValidator dataValidator1 = (FieldValidator) validatorList.get(0); assertEquals("data", dataValidator1.getFieldName()); assertTrue(dataValidator1 instanceof RequiredFieldValidator); final FieldValidator dataValidator2 = (FieldValidator) validatorList.get(1); assertEquals("data", dataValidator2.getFieldName()); assertTrue(dataValidator2 instanceof RequiredStringValidator); final FieldValidator blingValidator = (FieldValidator) validatorList.get(2); assertEquals("bling", blingValidator.getFieldName()); assertTrue(blingValidator instanceof RequiredStringValidator); } public void testGetValidatorsFromInterface() { List validatorList = actionValidatorManager.getValidators(SimpleAction3.class, alias); // 9 in the class hierarchy + 1 in the interface + 1 in interface alias assertEquals(11, validatorList.size()); // action-level validator comes first final Validator expressionValidator = (Validator) validatorList.get(0); assertTrue(expressionValidator instanceof ExpressionValidator); final FieldValidator barValidator1 = (FieldValidator) validatorList.get(1); assertEquals("bar", barValidator1.getFieldName()); assertTrue(barValidator1 instanceof RequiredFieldValidator); final FieldValidator barValidator2 = (FieldValidator) validatorList.get(2); assertEquals("bar", barValidator2.getFieldName()); assertTrue(barValidator2 instanceof IntRangeFieldValidator); final FieldValidator doubleValidator = (FieldValidator) validatorList.get(3); assertEquals("percentage", doubleValidator.getFieldName()); assertTrue(doubleValidator instanceof DoubleRangeFieldValidator); final FieldValidator dateValidator = (FieldValidator) validatorList.get(4); assertEquals("date", dateValidator.getFieldName()); assertTrue(dateValidator instanceof DateRangeFieldValidator); final FieldValidator fooValidator = (FieldValidator) validatorList.get(5); assertEquals("foo", fooValidator.getFieldName()); assertTrue(fooValidator instanceof IntRangeFieldValidator); final FieldValidator bazValidator = (FieldValidator) validatorList.get(6); assertEquals("baz", bazValidator.getFieldName()); assertTrue(bazValidator instanceof IntRangeFieldValidator); final FieldValidator bazValidator1 = (FieldValidator) validatorList.get(7); assertEquals("baz", bazValidator1.getFieldName()); assertTrue(bazValidator1 instanceof RequiredFieldValidator); final FieldValidator bazValidator2 = (FieldValidator) validatorList.get(8); assertEquals("baz", bazValidator2.getFieldName()); assertTrue(bazValidator2 instanceof IntRangeFieldValidator); final FieldValidator dataValidator1 = (FieldValidator) validatorList.get(9); assertEquals("data", dataValidator1.getFieldName()); assertTrue(dataValidator1 instanceof RequiredFieldValidator); final FieldValidator dataValidator2 = (FieldValidator) validatorList.get(10); assertEquals("data", dataValidator2.getFieldName()); assertTrue(dataValidator2 instanceof RequiredStringValidator); } public void testMessageInterpolation() { // get validators List validatorList = actionValidatorManager.getValidators(TestBean.class, "beanMessageBundle"); assertEquals(3, validatorList.size()); try { TestBean bean = new TestBean(); bean.setName("foo"); bean.setCount(150); ValidatorContext context = new GenericValidatorContext(bean); actionValidatorManager.validate(bean, "beanMessageBundle", context); assertTrue(context.hasErrors()); assertTrue(context.hasFieldErrors()); List l = (List) context.getFieldErrors().get("count"); assertNotNull(l); assertEquals(1, l.size()); assertEquals("Count must be between 1 and 100, current value is 150.", l.get(0)); } catch (ValidationException ex) { ex.printStackTrace(); fail("Validation error: " + ex.getMessage()); } } public void testSameAliasWithDifferentClass() { List validatorList = actionValidatorManager.getValidators(SimpleAction.class, alias);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -