package org.openmrs.module.reporting.validator; import org.junit.Assert; import org.junit.Test; import org.openmrs.Concept; import org.openmrs.module.reporting.cohort.definition.BaseObsCohortDefinition.TimeModifier; import org.openmrs.module.reporting.cohort.definition.CodedObsCohortDefinition; import org.openmrs.module.reporting.cohort.definition.DateObsCohortDefinition; import org.openmrs.module.reporting.cohort.definition.NumericObsCohortDefinition; import org.openmrs.module.reporting.cohort.definition.TextObsCohortDefinition; import org.openmrs.test.BaseModuleContextSensitiveTest; import org.openmrs.test.Verifies; import org.springframework.validation.BindException; import org.springframework.validation.Errors; /** * Tests methods on the {@link CohortDefinitionValidator} class. */ public class BaseObsCohortDefinitionValidatorTest extends BaseModuleContextSensitiveTest { /** * @see {@link CohortDefinitionValidator#validate(Object,Errors)} */ @Test @Verifies(value = "should fail validation if time modifier is null", method = "validate(Object,Errors)") public void validate_shouldFailValidationIfTimeModifierIsNullForCodedObsCohortDefinition() throws Exception { CodedObsCohortDefinition codedObsCohortDefinition = new CodedObsCohortDefinition(); codedObsCohortDefinition.setTimeModifier(null); codedObsCohortDefinition.setQuestion(new Concept(10)); Errors errors = new BindException(codedObsCohortDefinition, "cohortDefinition"); new CohortDefinitionValidator().validate(codedObsCohortDefinition, errors); Assert.assertTrue(errors.hasErrors()); } /** * @see {@link CohortDefinitionValidator#validate(Object,Errors)} */ @Test @Verifies(value = "should fail validation if question is null", method = "validate(Object,Errors)") public void validate_shouldFailValidationIfQuestionIsNullForCodedObsCohortDefinition() throws Exception { CodedObsCohortDefinition codedObsCohortDefinition = new CodedObsCohortDefinition(); codedObsCohortDefinition.setTimeModifier(TimeModifier.ANY); codedObsCohortDefinition.setQuestion(null); Errors errors = new BindException(codedObsCohortDefinition, "cohortDefinition"); new CohortDefinitionValidator().validate(codedObsCohortDefinition, errors); Assert.assertTrue(errors.hasErrors()); } /** * @see {@link CohortDefinitionValidator#validate(Object,Errors)} */ @Test @Verifies(value = "should pass validation if all fields are correct", method = "validate(Object,Errors)") public void validate_shouldPassValidationIfAllFieldsAreCorrectForCodedObsCohortDefinition() throws Exception { CodedObsCohortDefinition codedObsCohortDefinition = new CodedObsCohortDefinition(); codedObsCohortDefinition.setName("Test CD"); codedObsCohortDefinition.setTimeModifier(TimeModifier.ANY); codedObsCohortDefinition.setQuestion(new Concept(10)); Errors errors = new BindException(codedObsCohortDefinition, "cohortDefinition"); new CohortDefinitionValidator().validate(codedObsCohortDefinition, errors); Assert.assertFalse(errors.hasErrors()); } /** * @see {@link CohortDefinitionValidator#validate(Object,Errors)} */ @Test @Verifies(value = "should fail validation if time modifier is null", method = "validate(Object,Errors)") public void validate_shouldFailValidationIfTimeModifierIsNullForDateObsCohortDefinition() throws Exception { DateObsCohortDefinition dateObsCohortDefinition = new DateObsCohortDefinition(); dateObsCohortDefinition.setTimeModifier(null); dateObsCohortDefinition.setQuestion(new Concept(10)); Errors errors = new BindException(dateObsCohortDefinition, "cohortDefinition"); new CohortDefinitionValidator().validate(dateObsCohortDefinition, errors); Assert.assertTrue(errors.hasErrors()); } /** * @see {@link CohortDefinitionValidator#validate(Object,Errors)} */ @Test @Verifies(value = "should fail validation if question is null", method = "validate(Object,Errors)") public void validate_shouldFailValidationIfQuestionIsNullForDateObsCohortDefinition() throws Exception { DateObsCohortDefinition dateObsCohortDefinition = new DateObsCohortDefinition(); dateObsCohortDefinition.setTimeModifier(TimeModifier.ANY); dateObsCohortDefinition.setQuestion(null); Errors errors = new BindException(dateObsCohortDefinition, "cohortDefinition"); new CohortDefinitionValidator().validate(dateObsCohortDefinition, errors); Assert.assertTrue(errors.hasErrors()); } /** * @see {@link CohortDefinitionValidator#validate(Object,Errors)} */ @Test @Verifies(value = "should pass validation if all fields are correct", method = "validate(Object,Errors)") public void validate_shouldPassValidationIfAllFieldsAreCorrectForDateObsCohortDefinition() throws Exception { DateObsCohortDefinition dateObsCohortDefinition = new DateObsCohortDefinition(); dateObsCohortDefinition.setName("Test CD"); dateObsCohortDefinition.setTimeModifier(TimeModifier.ANY); dateObsCohortDefinition.setQuestion(new Concept(10)); Errors errors = new BindException(dateObsCohortDefinition, "cohortDefinition"); new CohortDefinitionValidator().validate(dateObsCohortDefinition, errors); Assert.assertFalse(errors.hasErrors()); } /** * @see {@link CohortDefinitionValidator#validate(Object,Errors)} */ @Test @Verifies(value = "should fail validation if time modifier is null", method = "validate(Object,Errors)") public void validate_shouldFailValidationIfTimeModifierIsNullForNumericObsCohortDefinition() throws Exception { NumericObsCohortDefinition numericObsCohortDefinition = new NumericObsCohortDefinition(); numericObsCohortDefinition.setTimeModifier(null); numericObsCohortDefinition.setQuestion(new Concept(10)); Errors errors = new BindException(numericObsCohortDefinition, "cohortDefinition"); new CohortDefinitionValidator().validate(numericObsCohortDefinition, errors); Assert.assertTrue(errors.hasErrors()); } /** * @see {@link CohortDefinitionValidator#validate(Object,Errors)} */ @Test @Verifies(value = "should fail validation if question is null", method = "validate(Object,Errors)") public void validate_shouldFailValidationIfQuestionIsNullForNumericObsCohortDefinition() throws Exception { NumericObsCohortDefinition numericObsCohortDefinition = new NumericObsCohortDefinition(); numericObsCohortDefinition.setTimeModifier(TimeModifier.ANY); numericObsCohortDefinition.setQuestion(null); Errors errors = new BindException(numericObsCohortDefinition, "cohortDefinition"); new CohortDefinitionValidator().validate(numericObsCohortDefinition, errors); Assert.assertTrue(errors.hasErrors()); } /** * @see {@link CohortDefinitionValidator#validate(Object,Errors)} */ @Test @Verifies(value = "should pass validation if all fields are correct", method = "validate(Object,Errors)") public void validate_shouldPassValidationIfAllFieldsAreCorrectForNumericObsCohortDefinition() throws Exception { NumericObsCohortDefinition numericObsCohortDefinition = new NumericObsCohortDefinition(); numericObsCohortDefinition.setName("Test CD"); numericObsCohortDefinition.setTimeModifier(TimeModifier.ANY); numericObsCohortDefinition.setQuestion(new Concept(10)); Errors errors = new BindException(numericObsCohortDefinition, "cohortDefinition"); new CohortDefinitionValidator().validate(numericObsCohortDefinition, errors); Assert.assertFalse(errors.hasErrors()); } /** * @see {@link CohortDefinitionValidator#validate(Object,Errors)} */ @Test @Verifies(value = "should fail validation if time modifier is null", method = "validate(Object,Errors)") public void validate_shouldFailValidationIfTimeModifierIsNullForTextObsCohortDefinition() throws Exception { TextObsCohortDefinition textObsCohortDefinition = new TextObsCohortDefinition(); textObsCohortDefinition.setTimeModifier(null); textObsCohortDefinition.setQuestion(new Concept(10)); Errors errors = new BindException(textObsCohortDefinition, "cohortDefinition"); new CohortDefinitionValidator().validate(textObsCohortDefinition, errors); Assert.assertTrue(errors.hasErrors()); } /** * @see {@link CohortDefinitionValidator#validate(Object,Errors)} */ @Test @Verifies(value = "should fail validation if question is null", method = "validate(Object,Errors)") public void validate_shouldFailValidationIfQuestionIsNullForTextObsCohortDefinition() throws Exception { TextObsCohortDefinition textObsCohortDefinition = new TextObsCohortDefinition(); textObsCohortDefinition.setTimeModifier(TimeModifier.ANY); textObsCohortDefinition.setQuestion(null); Errors errors = new BindException(textObsCohortDefinition, "cohortDefinition"); new CohortDefinitionValidator().validate(textObsCohortDefinition, errors); Assert.assertTrue(errors.hasErrors()); } /** * @see {@link CohortDefinitionValidator#validate(Object,Errors)} */ @Test @Verifies(value = "should pass validation if all fields are correct", method = "validate(Object,Errors)") public void validate_shouldPassValidationIfAllFieldsAreCorrectForTextObsCohortDefinition() throws Exception { TextObsCohortDefinition textObsCohortDefinition = new TextObsCohortDefinition(); textObsCohortDefinition.setName("Test CD"); textObsCohortDefinition.setTimeModifier(TimeModifier.ANY); textObsCohortDefinition.setQuestion(new Concept(10)); Errors errors = new BindException(textObsCohortDefinition, "cohortDefinition"); new CohortDefinitionValidator().validate(textObsCohortDefinition, errors); Assert.assertFalse(errors.hasErrors()); } }