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

📄 simpleactionvalidationtest.java

📁 在Struts2中的jar包xwork的源代码.版本为2.0.7
💻 JAVA
字号:
/* * Copyright (c) 2002-2003 by OpenSymphony * All rights reserved. */package com.opensymphony.xwork2.validator;import com.opensymphony.xwork2.*;import com.opensymphony.xwork2.config.ConfigurationManager;import com.opensymphony.xwork2.config.providers.MockConfigurationProvider;import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;import com.opensymphony.xwork2.util.ValueStack;import com.opensymphony.xwork2.util.ValueStackFactory;import com.opensymphony.xwork2.validator.validators.ValidatorSupport;import java.util.*;/** * SimpleActionValidationTest * <p/> * Created : Jan 20, 2003 11:04:25 PM * * @author Jason Carreira */public class SimpleActionValidationTest extends XWorkTestCase {    private Locale origLocale;    public void testAliasValidation() {        HashMap params = new HashMap();        params.put("baz", "10");        //valid values        params.put("bar", "7");        params.put("date", "12/23/2002");        params.put("percentage", "1.23456789");        HashMap extraContext = new HashMap();        extraContext.put(ActionContext.PARAMETERS, params);        try {            ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.VALIDATION_ACTION_NAME, extraContext);            proxy.execute();            ValidationAware validationAware = (ValidationAware) proxy.getAction();            assertFalse(validationAware.hasFieldErrors());            // put in an out-of-range value to see if the old validators still work            params.put("bar", "42");            proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.VALIDATION_ALIAS_NAME, extraContext);            proxy.execute();            validationAware = (ValidationAware) proxy.getAction();            assertTrue(validationAware.hasFieldErrors());            Map errors = validationAware.getFieldErrors();            assertTrue(errors.containsKey("baz"));            List bazErrors = (List) errors.get("baz");            assertEquals(1, bazErrors.size());            String message = (String) bazErrors.get(0);            assertEquals("baz out of range.", message);            assertTrue(errors.containsKey("bar"));            List barErrors = (List) errors.get("bar");            assertEquals(1, barErrors.size());            message = (String) barErrors.get(0);            assertEquals("bar must be between 6 and 10, current value is 42.", message);        } catch (Exception e) {            e.printStackTrace();            fail();        }    }    public void testLookingUpFieldNameAsTextKey() {        HashMap params = new HashMap();        // should cause a message        params.put("baz", "-1");        //valid values        params.put("bar", "7");        HashMap extraContext = new HashMap();        extraContext.put(ActionContext.PARAMETERS, params);        try {            ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.VALIDATION_ACTION_NAME, extraContext);            proxy.execute();            assertTrue(((ValidationAware) proxy.getAction()).hasFieldErrors());            Map errors = ((ValidationAware) proxy.getAction()).getFieldErrors();            List bazErrors = (List) errors.get("baz");            assertEquals(1, bazErrors.size());            String errorMessage = (String) bazErrors.get(0);            assertNotNull(errorMessage);            assertEquals("Baz Field must be greater than 0", errorMessage);        } catch (Exception e) {            e.printStackTrace();            fail();        }    }    public void testMessageKey() {        HashMap params = new HashMap();        params.put("foo", "200");        HashMap extraContext = new HashMap();        extraContext.put(ActionContext.PARAMETERS, params);        try {            ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.VALIDATION_ACTION_NAME, extraContext);            ValueStack stack = ValueStackFactory.getFactory().createValueStack();            ActionContext.setContext(new ActionContext(stack.getContext()));            ActionContext.getContext().setLocale(Locale.US);            proxy.execute();            assertTrue(((ValidationAware) proxy.getAction()).hasFieldErrors());            Map errors = ((ValidationAware) proxy.getAction()).getFieldErrors();            List fooErrors = (List) errors.get("foo");            assertEquals(1, fooErrors.size());            String errorMessage = (String) fooErrors.get(0);            assertNotNull(errorMessage);            assertEquals("Foo Range Message", errorMessage);        } catch (Exception e) {            e.printStackTrace();            fail();        }    }    public void testMessageKeyIsReturnedIfNoOtherDefault() throws ValidationException {        Validator validator = new ValidatorSupport() {            public void validate(Object object) throws ValidationException {                addActionError(object);            }        };        String messageKey = "does.not.exist";        validator.setMessageKey(messageKey);        ValidatorContext validatorContext = new DelegatingValidatorContext(new SimpleAction());        validator.setValidatorContext(validatorContext);        validator.validate(this);        assertTrue(validatorContext.hasActionErrors());        Collection errors = validatorContext.getActionErrors();        assertEquals(1, errors.size());        assertEquals(messageKey, errors.toArray()[0]);    }    public void testParamterizedMessage() {        HashMap params = new HashMap();        params.put("bar", "42");        HashMap extraContext = new HashMap();        extraContext.put(ActionContext.PARAMETERS, params);        try {            ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.VALIDATION_ACTION_NAME, extraContext);            proxy.execute();            assertTrue(((ValidationAware) proxy.getAction()).hasFieldErrors());            Map errors = ((ValidationAware) proxy.getAction()).getFieldErrors();            List barErrors = (List) errors.get("bar");            assertEquals(1, barErrors.size());            String errorMessage = (String) barErrors.get(0);            assertNotNull(errorMessage);            assertEquals("bar must be between 6 and 10, current value is 42.", errorMessage);        } catch (Exception e) {            e.printStackTrace();            fail();        }    }    public void testSubPropertiesAreValidated() {        HashMap params = new HashMap();        params.put("baz", "10");        //valid values        params.put("foo", "8");        params.put("bar", "7");        params.put("date", "12/23/2002");        params.put("bean.name", "Name should be valid");        // this should cause a message        params.put("bean.count", "100");        HashMap extraContext = new HashMap();        extraContext.put(ActionContext.PARAMETERS, params);        try {            ActionProxy proxy = actionProxyFactory.createActionProxy("", MockConfigurationProvider.VALIDATION_SUBPROPERTY_NAME, extraContext);            proxy.execute();            assertTrue(((ValidationAware) proxy.getAction()).hasFieldErrors());            Map errors = ((ValidationAware) proxy.getAction()).getFieldErrors();            List beanCountErrors = (List) errors.get("bean.count");            assertEquals(1, beanCountErrors.size());            String errorMessage = (String) beanCountErrors.get(0);            assertNotNull(errorMessage);            assertEquals("bean.count out of range.", errorMessage);        } catch (Exception e) {            e.printStackTrace();            fail();        }    }    protected void setUp() throws Exception {        origLocale = Locale.getDefault();        Locale.setDefault(Locale.US);        loadConfigurationProviders(new XmlConfigurationProvider("xwork-test-beans.xml"), new MockConfigurationProvider());    }    protected void tearDown() throws Exception {        Locale.setDefault(origLocale);    }}

⌨️ 快捷键说明

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