Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TRUNK-4860: Unit tests on validators should check messages from errors or exceptions #4597

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import org.hamcrest.Matchers;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
Expand Down Expand Up @@ -190,5 +191,6 @@ public void validate_shouldRejectNumericReactionValue() {
Errors errors = new BindException(allergy, "allergy");
validator.validate(allergy, errors);
assertTrue(errors.hasErrors());
assertThat(errors.getAllErrors().get(0).getCode(), Matchers.is("allergyapi.patient.required"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,11 @@
*/
package org.openmrs.validator;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

import org.hamcrest.Matchers;
import org.junit.jupiter.api.Test;
import org.openmrs.ConceptClass;
import org.openmrs.test.jupiter.BaseContextSensitiveTest;
Expand All @@ -35,16 +37,19 @@ public void validate_shouldFailValidationIfUserIsNullOrEmptyOrWhitespace() {
Errors errors = new BindException(cc, "cc");
new ConceptClassValidator().validate(cc, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("error.name"));

cc.setName("");
errors = new BindException(cc, "cc");
new ConceptClassValidator().validate(cc, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("error.name"));

cc.setName(" ");
errors = new BindException(cc, "cc");
new ConceptClassValidator().validate(cc, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("error.name"));
}

@Test
Expand Down Expand Up @@ -97,6 +102,7 @@ public void validate_shouldFailValidationIfConceptClassNameAlreadyExist() {
new ConceptClassValidator().validate(cc, errors);

assertTrue(errors.hasErrors());
assertThat(errors.getAllErrors().get(0).getCode(), Matchers.is("conceptclass.duplicate.name"));
}

/**
Expand Down Expand Up @@ -132,7 +138,12 @@ public void validate_shouldFailValidationIfFieldLengthsAreNotCorrect() {
new ConceptClassValidator().validate(cc, errors);

assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));

assertTrue(errors.hasFieldErrors("description"));
assertThat(errors.getFieldErrors("description").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));

assertTrue(errors.hasFieldErrors("retireReason"));
assertThat(errors.getFieldErrors("retireReason").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,11 @@
*/
package org.openmrs.validator;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

import org.hamcrest.Matchers;
import org.junit.jupiter.api.Test;
import org.openmrs.ConceptDatatype;
import org.openmrs.test.jupiter.BaseContextSensitiveTest;
Expand All @@ -35,16 +37,19 @@ public void validate_shouldFailValidationIfNameIsNullOrEmptyOrWhitespace() {
Errors errors = new BindException(cd, "cd");
new ConceptDatatypeValidator().validate(cd, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("error.name"));

cd.setName("");
errors = new BindException(cd, "cd");
new ConceptDatatypeValidator().validate(cd, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("error.name"));

cd.setName(" ");
errors = new BindException(cd, "cd");
new ConceptDatatypeValidator().validate(cd, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("error.name"));
}

/**
Expand Down Expand Up @@ -121,8 +126,15 @@ public void validate_shouldFailValidationIfFieldLengthsAreNotCorrect() {
new ConceptDatatypeValidator().validate(cd, errors);

assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));

assertTrue(errors.hasFieldErrors("description"));
assertThat(errors.getFieldErrors("description").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));

assertTrue(errors.hasFieldErrors("hl7Abbreviation"));
assertThat(errors.getFieldErrors("hl7Abbreviation").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));

assertTrue(errors.hasFieldErrors("retireReason"));
assertThat(errors.getFieldErrors("retireReason").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,11 @@
*/
package org.openmrs.validator;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

import org.hamcrest.Matchers;
import org.junit.jupiter.api.Test;
import org.openmrs.Drug;
import org.springframework.validation.BindException;
Expand All @@ -31,6 +33,7 @@ public void validate_shouldFailIfAConceptIsNotSpecified() {
Errors errors = new BindException(drug, "drug");
new ConceptDrugValidator().validate(drug, errors);
assertTrue(errors.hasErrors());
assertThat(errors.getAllErrors().get(0).getCode(), Matchers.is("ConceptDrug.error.conceptRequired"));
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,12 @@
*/
package org.openmrs.validator;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;

import org.hamcrest.Matchers;
import org.junit.jupiter.api.Test;
import org.openmrs.ConceptMapType;
import org.openmrs.test.jupiter.BaseContextSensitiveTest;
Expand All @@ -34,6 +36,7 @@ public void validate_shouldFailIfTheConceptMapTypeNameIsADuplicate() {
Errors errors = new BindException(mapType, "mapType");
new ConceptMapTypeValidator().validate(mapType, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("ConceptMapType.duplicate.name"));
}

/**
Expand All @@ -55,6 +58,7 @@ public void validate_shouldFailIfTheNameIsAWhiteSpaceCharacter() {
Errors errors = new BindException(mapType, "mapType");
new ConceptMapTypeValidator().validate(mapType, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("ConceptMapType.error.nameRequired"));
}

/**
Expand All @@ -67,6 +71,7 @@ public void validate_shouldFailIfTheNameIsAnEmptyString() {
Errors errors = new BindException(mapType, "mapType");
new ConceptMapTypeValidator().validate(mapType, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("ConceptMapType.error.nameRequired"));
}

/**
Expand All @@ -78,6 +83,7 @@ public void validate_shouldFailIfTheNameIsNull() {
Errors errors = new BindException(mapType, "mapType");
new ConceptMapTypeValidator().validate(mapType, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("ConceptMapType.error.nameRequired"));
}

/**
Expand Down Expand Up @@ -120,6 +126,9 @@ public void validate_shouldFailValidationIfFieldLengthsAreNotCorrect() {
Errors errors = new BindException(mapType, "mapType");
new ConceptMapTypeValidator().validate(mapType, errors);
assertTrue(errors.hasFieldErrors("description"));
assertThat(errors.getFieldErrors("description").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));

assertTrue(errors.hasFieldErrors("retireReason"));
assertThat(errors.getFieldErrors("retireReason").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@
*/
package org.openmrs.validator;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;

import org.hamcrest.Matchers;
import org.junit.jupiter.api.Test;
import org.openmrs.ConceptNameTag;
import org.openmrs.api.context.Context;
Expand Down Expand Up @@ -44,16 +46,19 @@ public void validate_shouldFailValidationIfTagIsNullOrEmptyOrWhitespace() {
Errors errors = new BindException(cnt, "cnt");
new ConceptNameTagValidator().validate(cnt, errors);
assertTrue(errors.hasFieldErrors("tag"));
assertThat(errors.getFieldErrors("tag").get(0).getCode(), Matchers.is("error.name"));

cnt.setTag("");
errors = new BindException(cnt, "cnt");
new ConceptNameTagValidator().validate(cnt, errors);
assertTrue(errors.hasFieldErrors("tag"));
assertThat(errors.getFieldErrors("tag").get(0).getCode(), Matchers.is("error.name"));

cnt.setTag(" ");
errors = new BindException(cnt, "cnt");
new ConceptNameTagValidator().validate(cnt, errors);
assertTrue(errors.hasFieldErrors("tag"));
assertThat(errors.getFieldErrors("tag").get(0).getCode(), Matchers.is("error.name"));
}

/**
Expand Down Expand Up @@ -86,6 +91,7 @@ public void validate_shouldFailIfTheConceptNameTagIsADuplicate() {
new ConceptNameTagValidator().validate(cnt, errors);
assertTrue(errors.hasErrors());
assertTrue(errors.hasFieldErrors("tag"));
assertThat(errors.getFieldErrors("tag").get(0).getCode(), Matchers.is("Concept.name.tag.duplicate"));
}

/**
Expand Down Expand Up @@ -118,7 +124,10 @@ public void validate_shouldFailValidationIfFieldLengthsAreNotCorrect() {
Errors errors = new BindException(cnt, "cnt");
new ConceptNameTagValidator().validate(cnt, errors);
assertTrue(errors.hasFieldErrors("tag"));
assertThat(errors.getFieldErrors("tag").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));

assertTrue(errors.hasFieldErrors("voidReason"));
assertThat(errors.getFieldErrors("voidReason").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@
*/
package org.openmrs.validator;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;

import java.util.LinkedHashSet;
import java.util.Set;

import org.hamcrest.Matchers;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.openmrs.ConceptMapType;
Expand Down Expand Up @@ -44,6 +46,7 @@ public void validate_shouldFailIfTheCodeIsAWhiteSpaceCharacter() {
Errors errors = new BindException(term, "term");
new ConceptReferenceTermValidator().validate(term, errors);
assertTrue(errors.hasFieldErrors("code"));
assertThat(errors.getFieldErrors("code").get(0).getCode(), Matchers.is("ConceptReferenceTerm.error.codeRequired"));
}

/**
Expand All @@ -58,6 +61,7 @@ public void validate_shouldFailIfTheCodeIsAnEmptyString() {
Errors errors = new BindException(term, "term");
new ConceptReferenceTermValidator().validate(term, errors);
assertTrue(errors.hasFieldErrors("code"));
assertThat(errors.getFieldErrors("code").get(0).getCode(), Matchers.is("ConceptReferenceTerm.error.codeRequired"));
}

/**
Expand All @@ -71,6 +75,7 @@ public void validate_shouldFailIfTheCodeIsNull() {
Errors errors = new BindException(term, "term");
new ConceptReferenceTermValidator().validate(term, errors);
assertTrue(errors.hasFieldErrors("code"));
assertThat(errors.getFieldErrors("code").get(0).getCode(), Matchers.is("ConceptReferenceTerm.error.codeRequired"));
}

/**
Expand All @@ -85,6 +90,7 @@ public void validate_shouldFailIfTheConceptReferenceTermCodeIsADuplicateInItsCon
Errors errors = new BindException(term, "term");
new ConceptReferenceTermValidator().validate(term, errors);
assertTrue(errors.hasFieldErrors("code"));
assertThat(errors.getFieldErrors("code").get(0).getCode(), Matchers.is("ConceptReferenceTerm.duplicate.code"));
}

/**
Expand All @@ -107,6 +113,7 @@ public void validate_shouldFailIfTheConceptSourceIsNull() {
Errors errors = new BindException(term, "term");
new ConceptReferenceTermValidator().validate(term, errors);
assertTrue(errors.hasFieldErrors("conceptSource"));
assertThat(errors.getFieldErrors("conceptSource").get(0).getCode(), Matchers.is("ConceptReferenceTerm.error.sourceRequired"));
}

/**
Expand All @@ -123,6 +130,7 @@ public void validate_shouldFailIfTheNameIsAWhiteSpaceCharacter() {
Errors errors = new BindException(term, "term");
new ConceptReferenceTermValidator().validate(term, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("Condition.clinicalStatusShouldNotBeNull"));
}

/**
Expand All @@ -138,6 +146,7 @@ public void validate_shouldFailIfTheNameIsAnEmptyString() {
Errors errors = new BindException(term, "term");
new ConceptReferenceTermValidator().validate(term, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("Condition.clinicalStatusShouldNotBeNull"));
}

/**
Expand All @@ -152,6 +161,7 @@ public void validate_shouldFailIfTheNameIsNull() {
Errors errors = new BindException(term, "term");
new ConceptReferenceTermValidator().validate(term, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("Condition.clinicalStatusShouldNotBeNull"));
}

/**
Expand Down Expand Up @@ -211,6 +221,7 @@ public void validate_shouldFailIfAConceptReferenceTermMapHasNoConceptMapType() {
Errors errors = new BindException(term, "term");
new ConceptReferenceTermValidator().validate(term, errors);
assertTrue(errors.hasFieldErrors("conceptReferenceTermMaps[0].conceptMapType"));
assertThat(errors.getFieldErrors("conceptReferenceTermMaps[0].conceptMapType").get(0).getCode(), Matchers.is("ConceptReferenceTerm.error.mapTypeRequired"));
}

/**
Expand All @@ -228,6 +239,7 @@ public void validate_shouldFailIfTermBOfAConceptReferenceTermMapIsNotSet() {
Errors errors = new BindException(term, "term");
new ConceptReferenceTermValidator().validate(term, errors);
assertTrue(errors.hasFieldErrors("conceptReferenceTermMaps[0].termB"));
assertThat(errors.getFieldErrors("conceptReferenceTermMaps[0].termB").get(0).getCode(), Matchers.is("ConceptReferenceTerm.error.termBRequired"));
}

/**
Expand All @@ -243,6 +255,7 @@ public void validate_shouldFailIfATermIsMappedToItself() {
Errors errors = new BindException(term, "term");
new ConceptReferenceTermValidator().validate(term, errors);
assertTrue(errors.hasFieldErrors("conceptReferenceTermMaps[0].termB"));
assertThat(errors.getFieldErrors("conceptReferenceTermMaps[0].termB").get(0).getCode(), Matchers.is("ConceptReferenceTerm.map.sameTerm"));
}

/**
Expand All @@ -266,6 +279,7 @@ public void validate_shouldFailIfATermIsMappedMultipleTimesToTheSameTerm() {

//the term for second mapping should be rejected
assertTrue(errors.hasFieldErrors("conceptReferenceTermMaps[1].termB"));
assertThat(errors.getFieldErrors("conceptReferenceTermMaps[1].termB").get(0).getCode(), Matchers.is("ConceptReferenceTerm.termToTerm.alreadyMapped"));
}

/**
Expand Down Expand Up @@ -305,10 +319,19 @@ public void validate_shouldFailValidationIfFieldLengthsAreNotCorrect() {
Errors errors = new BindException(term, "term");
new ConceptReferenceTermValidator().validate(term, errors);
assertTrue(errors.hasFieldErrors("name"));
assertThat(errors.getFieldErrors("name").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));

assertTrue(errors.hasFieldErrors("code"));
assertThat(errors.getFieldErrors("code").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));

assertTrue(errors.hasFieldErrors("version"));
assertThat(errors.getFieldErrors("version").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));

assertTrue(errors.hasFieldErrors("description"));
assertThat(errors.getFieldErrors("description").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));

assertTrue(errors.hasFieldErrors("retireReason"));
assertThat(errors.getFieldErrors("retireReason").get(0).getCode(), Matchers.is("error.exceededMaxLengthOfField"));
}

@Test
Expand Down
Loading
Loading