org.mifos.core.AbstractDtoValidationTest.java Source code

Java tutorial

Introduction

Here is the source code for org.mifos.core.AbstractDtoValidationTest.java

Source

/*
 * Copyright (c) 2005-2009 Grameen Foundation USA
 * All rights reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * permissions and limitations under the License.
 * 
 * See also http://www.apache.org/licenses/LICENSE-2.0.html for an
 * explanation of the license and how it is applied.
 */

package org.mifos.core;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.validation.Errors;
import org.springframework.validation.FieldError;
import org.springframework.validation.Validator;
import org.testng.Assert;
import org.testng.annotations.Test;

@ContextConfiguration(locations = { "classpath:unitTestContext.xml" })
public abstract class AbstractDtoValidationTest extends AbstractTestNGSpringContextTests {

    protected Validator validator;

    @Autowired
    @Test(enabled = false)
    public void setValidator(Validator validator) {
        this.validator = validator;
    }

    protected void verifyNoErrors(Object dto) {
        Assert.assertEquals(getErrors(dto).getErrorCount(), 0);
    }

    protected void verifyFieldError(Object dto, String fieldName, String errorMessage) {
        Errors errors = getErrors(dto);
        Assert.assertTrue(errors.getErrorCount() > 0, "Expected errors but got none.");
        FieldError fieldError = errors.getFieldError(fieldName);
        Assert.assertNotNull(fieldError, "Expected error on field " + fieldName + ", but got none");
        Assert.assertEquals(fieldError.getDefaultMessage(), errorMessage, "Incorrect validation error message.");
    }

    protected Errors getErrors(Object dto) {
        BeanPropertyBindingResult errors = new BeanPropertyBindingResult(dto, dto.getClass().getName());
        validator.validate(dto, errors);
        return errors;
    }
}