Package org.springmodules.validation.commons

Source Code of org.springmodules.validation.commons.DefaultPageBeanValidatorTests

package org.springmodules.validation.commons;

import java.util.Locale;

import junit.framework.TestCase;
import org.apache.commons.validator.Validator;
import org.apache.commons.validator.ValidatorResources;
import org.easymock.MockControl;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.validation.BindException;
import org.springframework.validation.FieldError;

/**
* @author robh
*/
public class DefaultPageBeanValidatorTests extends TestCase {

    public void testSupports() {
        DefaultPageBeanValidator validator = getValidator(0);

        assertTrue(validator.supports(FooBean.class));
        assertFalse(validator.supports(String.class));
    }

    public void testSupportsWithFullyQualifiedName() {
        DefaultPageBeanValidator validator = getValidator(0);
        validator.setUseFullyQualifiedClassName(true);

        assertTrue(validator.supports(FooBarBean.class));
        assertFalse(validator.supports(String.class));
    }

    public void testGetLocale() {
        DefaultPageBeanValidator validator = getValidator(0);
        assertEquals(validator.getLocale(), Locale.getDefault());
    }

    public void testValidate_WithPageSettings() {
        DefaultPageBeanValidator validator = getValidator(0);

        FooBean bean = new FooBean();
        BindException errors = new BindException(bean, "pagedFooBean");

        validator.validate(bean, errors);
        assertTrue(errors.hasFieldErrors("name"));
        assertEquals(1, errors.getErrorCount());
        assertEquals("name", ((FieldError) errors.getAllErrors().iterator().next()).getField());

        errors = new BindException(bean, "pagedFooBean");
        bean.setName("name");
        validator.validate(bean, errors);
        assertFalse(errors.hasFieldErrors("name"));
    }

    public void testValidate() {
        FooBean bean = new FooBean();

        MockControl ctl = MockControl.createControl(ValidatorFactory.class);
        ValidatorFactory factory = (ValidatorFactory) ctl.getMock();

        // expect call to get validator with args "fooBean", bean and null
        factory.getValidator("fooBean", bean, null);
        ctl.setReturnValue(getCommonsValidator());

        ctl.replay();

        DefaultBeanValidator validator = new DefaultBeanValidator();
        validator.setValidatorFactory(factory);
        validator.validate(bean, null);

        ctl.verify();
    }

    private DefaultPageBeanValidator getValidator(int page) {
        DefaultPageBeanValidator validator = new DefaultPageBeanValidator(page);
        DefaultValidatorFactory factory = new DefaultValidatorFactory();
        factory.setValidationConfigLocations(new Resource[]{
            new ClassPathResource("testValidation.xml", getClass()),
            new ClassPathResource("validation-rules.xml", getClass())
        });
        validator.setValidatorFactory(factory);
        return validator;
    }

    private Validator getCommonsValidator() {
        ValidatorResources res = new ValidatorResources();
        res.process();
        return new Validator(res);
    }
}
TOP

Related Classes of org.springmodules.validation.commons.DefaultPageBeanValidatorTests

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.