PersonMergeLogValidatorTest.java

package org.openmrs.validator;

import org.junit.Assert;
import org.junit.Test;
import org.openmrs.Person;
import org.openmrs.person.PersonMergeLog;
import org.openmrs.person.PersonMergeLogData;
import org.springframework.validation.BindException;
import org.springframework.validation.Errors;

public class PersonMergeLogValidatorTest {
	
	/**
	 * @see PersonMergeLogValidator#validate(Object,Errors)
	 * @verifies fail validation if personMergeLogData is null
	 */
	@Test
	public void validate_shouldFailValidationIfPersonMergeLogDataIsNull() throws Exception {
		PersonMergeLog personMergeLog = new PersonMergeLog();
		personMergeLog.setWinner(new Person());
		personMergeLog.setLoser(new Person());
		PersonMergeLogValidator validator = new PersonMergeLogValidator();
		Errors errors = new BindException(personMergeLog, "personMergeLog");
		validator.validate(personMergeLog, errors);
		Assert.assertTrue(errors.hasFieldErrors("personMergeLogData"));
	}
	
	/**
	 * @see PersonMergeLogValidator#validate(Object,Errors)
	 * @verifies fail validation if winner is null
	 */
	@Test
	public void validate_shouldFailValidationIfWinnerIsNull() throws Exception {
		PersonMergeLog personMergeLog = new PersonMergeLog();
		personMergeLog.setLoser(new Person());
		personMergeLog.setPersonMergeLogData(new PersonMergeLogData());
		PersonMergeLogValidator validator = new PersonMergeLogValidator();
		Errors errors = new BindException(personMergeLog, "personMergeLog");
		validator.validate(personMergeLog, errors);
		Assert.assertTrue(errors.hasFieldErrors("winner"));
	}
	
	/**
	 * @see PersonMergeLogValidator#validate(Object,Errors)
	 * @verifies fail validation if loser is null
	 */
	@Test
	public void validate_shouldFailValidationIfLoserIsNull() throws Exception {
		PersonMergeLog personMergeLog = new PersonMergeLog();
		personMergeLog.setWinner(new Person());
		personMergeLog.setPersonMergeLogData(new PersonMergeLogData());
		PersonMergeLogValidator validator = new PersonMergeLogValidator();
		Errors errors = new BindException(personMergeLog, "personMergeLog");
		validator.validate(personMergeLog, errors);
		Assert.assertTrue(errors.hasFieldErrors("loser"));
	}
	
	/**
	 * @see PersonMergeLogValidator#validate(Object,Errors)
	 * @verifies pass validation if all fields are correct
	 */
	@Test
	public void validate_shouldPassValidationIfAllFieldsAreCorrect() throws Exception {
		PersonMergeLog personMergeLog = new PersonMergeLog();
		personMergeLog.setWinner(new Person());
		personMergeLog.setLoser(new Person());
		personMergeLog.setPersonMergeLogData(new PersonMergeLogData());
		PersonMergeLogValidator validator = new PersonMergeLogValidator();
		Errors errors = new BindException(personMergeLog, "personMergeLog");
		validator.validate(personMergeLog, errors);
		Assert.assertFalse(errors.hasFieldErrors());
	}
}