@Test public void validate_shouldPassIfFullySpecifiedNameIsTheSameAsShortName() { ConceptName conceptFullySpecifiedName = new ConceptName("YES", new Locale("pl")); conceptFullySpecifiedName.setConceptNameType(ConceptNameType.FULLY_SPECIFIED); ConceptName conceptShortName = new ConceptName("yes", new Locale("pl")); conceptShortName.setConceptNameType(ConceptNameType.SHORT); concept.addName(conceptFullySpecifiedName); concept.addName(conceptShortName); concept.addDescription(new ConceptDescription("some description",null)); concept.setConceptClass(new ConceptClass()); concept.setDatatype(new ConceptDatatype()); validator.validate(concept, errors); Assert.assertFalse(errors.hasErrors()); }
@Test public void validate_shouldFailIfTheConceptDatatypeIsNull() { concept.addName(new ConceptName("some name", Context.getLocale())); concept.addDescription(new ConceptDescription("some description", null)); concept.setConceptClass(new ConceptClass(1)); validator.validate(concept, errors); assertThat(errors, hasFieldErrors("datatype", "Concept.datatype.empty")); }
@Test public void validate_shouldFailValidationIfFieldLengthsAreNotCorrect() { concept.addName(new ConceptName("CD4", Context.getLocale())); concept.addDescription(new ConceptDescription("some description",null)); concept.setConceptClass(new ConceptClass()); concept.setDatatype(new ConceptDatatype()); concept.setVersion("too long text too long text too long text too long text"); concept .setRetireReason("too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text too long text"); validator.validate(concept, errors); assertThat(errors, hasFieldErrors("version", "error.exceededMaxLengthOfField")); assertThat(errors, hasFieldErrors("retireReason", "error.exceededMaxLengthOfField")); }
/** * @see ConceptServiceImpl#saveConcept(Concept) */ @Test public void saveConcept_shouldReturnTheConceptWithNewConceptIDIfCreatingNewConcept() { Concept c = new Concept(); ConceptName fullySpecifiedName = new ConceptName("requires one name min", new Locale("fr", "CA")); c.addName(fullySpecifiedName); c.addDescription(new ConceptDescription("some description", null)); c.setDatatype(new ConceptDatatype(1)); c.setConceptClass(new ConceptClass(1)); Concept savedC = Context.getConceptService().saveConcept(c); assertNotNull(savedC); assertTrue(savedC.getConceptId() > 0); }
@Test //TRUNK-4967 public void isConceptNameDuplicate_shouldNotFailIfConceptDoesNotHaveADefaultNameForLocale() { //given ConceptClass diagnosis = dao.getConceptClasses("Diagnosis").get(0); ConceptDatatype na = dao.getConceptDatatypeByName("N/A"); Concept tuberculosis = new Concept(); tuberculosis.addName(new ConceptName("Tuberculosis", Locale.US)); tuberculosis.setDatatype(na); tuberculosis.setConceptClass(diagnosis); dao.saveConcept(tuberculosis); ConceptName shortName = new ConceptName("TB", Locale.FRANCE); shortName.setConceptNameType(ConceptNameType.SHORT); tuberculosis.addName(shortName); //when boolean duplicate = dao.isConceptNameDuplicate(shortName); //then //no NPE exception thrown assertThat(duplicate, is(false)); }
@Test public void saveConcept_shouldCreateNewConceptInDatabase() { executeDataSet(INITIAL_CONCEPTS_XML); Concept conceptToAdd = new Concept(); ConceptName cn = new ConceptName("new name", Context.getLocale()); conceptToAdd.addName(cn); conceptToAdd.addDescription(new ConceptDescription("some description",null)); conceptToAdd.setDatatype(new ConceptDatatype(1)); conceptToAdd.setConceptClass(new ConceptClass(1)); assertFalse(conceptService.getAllConcepts().contains(conceptToAdd)); conceptService.saveConcept(conceptToAdd); assertTrue(conceptService.getAllConcepts().contains(conceptToAdd)); }
@Test public void validate_shouldFailIfAnyNameIsANullValue() { concept.addDescription(new ConceptDescription("some description", null)); concept.setConceptClass(new ConceptClass(1)); concept.setDatatype(new ConceptDatatype(1)); concept.addName(new ConceptName("name", Context.getLocale())); concept.addName(new ConceptName(null, Context.getLocale())); validator.validate(concept, errors); assertThat(errors, hasGlobalErrors("Concept.name.empty")); }
@Test public void validate_shouldFailIfAnyNameIsAnEmptyString() { concept.addDescription(new ConceptDescription("some description", null)); concept.setConceptClass(new ConceptClass(1)); concept.setDatatype(new ConceptDatatype(1)); concept.addName(new ConceptName("name", Context.getLocale())); concept.addName(new ConceptName("", Context.getLocale())); validator.validate(concept, errors); assertThat(errors, hasGlobalErrors("Concept.name.empty")); }
@Test public void saveConcept_shouldTrimWhitespacesInConceptName() { //Given Concept concept = new Concept(); String nameWithSpaces = " jwm "; concept.addName(new ConceptName(nameWithSpaces, new Locale("en", "US"))); concept.addDescription(new ConceptDescription("some description", null)); concept.setDatatype(new ConceptDatatype(1)); concept.setConceptClass(new ConceptClass(1)); //When Context.getConceptService().saveConcept(concept); //Then assertNotEquals(concept.getName().getName(), nameWithSpaces); assertEquals(concept.getName().getName(), "jwm"); }
/** * @see ConceptServiceImpl#saveConcept(Concept) */ @Test public void saveConcept_shouldReturnTheConceptWithSameConceptIDIfUpdatingExistingConcept() { Concept c = new Concept(); ConceptName fullySpecifiedName = new ConceptName("requires one name min", new Locale("fr", "CA")); c.addName(fullySpecifiedName); c.addDescription(new ConceptDescription("some description", null)); c.setDatatype(new ConceptDatatype(1)); c.setConceptClass(new ConceptClass(1)); Concept savedC = Context.getConceptService().saveConcept(c); assertNotNull(savedC); Concept updatedC = Context.getConceptService().saveConcept(c); assertNotNull(updatedC); assertEquals(updatedC.getConceptId(), savedC.getConceptId()); }
@Test public void validate_shouldPassIfTheConceptHasAtleastOneFullySpecifiedNameAddedToIt() { concept.addName(new ConceptName("one name", Context.getLocale())); concept.addDescription(new ConceptDescription("some description",null)); concept.setConceptClass(new ConceptClass()); concept.setDatatype(new ConceptDatatype()); validator.validate(concept, errors); Assert.assertFalse(errors.hasErrors()); }
@Test public void validate_shouldPassIfNoneofTheConceptDescriptionsIsNull() { concept.addName(new ConceptName("some name",Context.getLocale())); concept.addDescription(new ConceptDescription("some description",null)); concept.setConceptClass(new ConceptClass()); concept.setDatatype(new ConceptDatatype()); validator.validate(concept, errors); Assert.assertFalse(errors.hasErrors()); }
/** * @see ConceptService#saveConcept(Concept) */ @Test public void saveConcept_shouldGenerateIdForNewConceptIfNoneIsSpecified() { Concept concept = new Concept(); ConceptName cn = new ConceptName("Weight", Context.getLocale()); concept.addName(cn); concept.addDescription(new ConceptDescription("some description",null)); concept.setConceptId(null); concept.setDatatype(Context.getConceptService().getConceptDatatypeByName("Numeric")); concept.setConceptClass(Context.getConceptService().getConceptClassByName("Finding")); concept = Context.getConceptService().saveConcept(concept); assertFalse(concept.getConceptId().equals(5089)); }
@Test public void validate_shouldFailIfATermIsMappedMultipleTimesToTheSameConcept() { concept.setConceptClass(new ConceptClass()); concept.setDatatype(new ConceptDatatype()); concept.addName(new ConceptName("my name", Context.getLocale())); concept.addDescription(new ConceptDescription("some description",null)); ConceptMap map1 = new ConceptMap(conceptService.getConceptReferenceTerm(1), conceptService.getConceptMapType(1)); concept.addConceptMapping(map1); ConceptMap map2 = new ConceptMap(conceptService.getConceptReferenceTerm(1), conceptService.getConceptMapType(1)); concept.addConceptMapping(map2); validator.validate(concept, errors); assertThat(errors, hasFieldErrors("conceptMappings[1]")); }
@Test public void validate_shouldPassValidationIfFieldLengthsAreCorrect() { concept.addName(new ConceptName("CD4", Context.getLocale())); concept.addDescription(new ConceptDescription("some description",null)); concept.setVersion("version"); concept.setRetireReason("retireReason"); concept.setConceptClass(new ConceptClass()); concept.setDatatype(new ConceptDatatype()); validator.validate(concept, errors); Assert.assertFalse(errors.hasErrors()); }
/** * @see ConceptService#saveConcept(Concept) */ @Test public void saveConcept_shouldKeepIdForNewConceptIfOneIsSpecified() { Integer conceptId = 343434; // a nonexistent concept id; Assert.assertNull(conceptService.getConcept(conceptId)); // sanity check Concept concept = new Concept(); ConceptName cn = new ConceptName("Weight", Context.getLocale()); concept.addName(cn); concept.addDescription(new ConceptDescription("some description",null)); concept.setConceptId(conceptId); concept.setDatatype(Context.getConceptService().getConceptDatatypeByName("Numeric")); concept.setConceptClass(Context.getConceptService().getConceptClassByName("Finding")); concept = Context.getConceptService().saveConcept(concept); assertTrue(concept.getConceptId().equals(conceptId)); }
@Test public void validate_shouldFailIfAnyNamesInTheSameLocaleForThisConceptAreSimilar() { concept.addName(new ConceptName("same name", Context.getLocale())); concept.addName(new ConceptName("same name", Context.getLocale())); concept.addDescription(new ConceptDescription("some description",null)); concept.setConceptClass(new ConceptClass()); concept.setDatatype(new ConceptDatatype()); expectedException.expect(DuplicateConceptNameException.class); expectedException .expectMessage("'same name' is a duplicate name in locale '" + Context.getLocale() + "'"); validator.validate(concept, errors); }
@Test public void validate_shouldPassIfTheConceptHasASynonymThatIsAlsoAShortName() { concept.addName(new ConceptName("CD4", Context.getLocale())); concept.addDescription(new ConceptDescription("some description",null)); concept.setConceptClass(new ConceptClass()); concept.setDatatype(new ConceptDatatype()); // Add the short name. Because the short name is not counted as a Synonym. // ConceptValidator will not record any errors. ConceptName name = new ConceptName("CD4", Context.getLocale()); name.setConceptNameType(ConceptNameType.SHORT); concept.addName(name); validator.validate(concept, errors); Assert.assertFalse(errors.hasErrors()); }
@Test public void validate_shouldPassForANewConceptWithAMapCreatedWithDeprecatedConceptMapMethods() { concept.addName(new ConceptName("test name", Context.getLocale())); concept.addDescription(new ConceptDescription("some description",null)); concept.setConceptClass(new ConceptClass()); concept.setDatatype(new ConceptDatatype()); ConceptMap map = new ConceptMap(); map.getConceptReferenceTerm().setCode("unique code"); map.getConceptReferenceTerm().setConceptSource(conceptService.getConceptSource(1)); concept.addConceptMapping(map); ValidateUtil.validate(concept); }
/** * @see OrderFrequencyValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldPassForAValidNewOrderFrequency() { ConceptService cs = Context.getConceptService(); Concept concept = new Concept(); ConceptName cn = new ConceptName("new name", Context.getLocale()); concept.setDatatype(cs.getConceptDatatype(1)); concept.setConceptClass(cs.getConceptClass(19)); concept.addName(cn); concept.addDescription(new ConceptDescription("some description",null)); cs.saveConcept(concept); OrderFrequency orderFrequency = new OrderFrequency(); orderFrequency.setConcept(concept); Errors errors = new BindException(orderFrequency, "orderFrequency"); new OrderFrequencyValidator().validate(orderFrequency, errors); Assert.assertFalse(errors.hasErrors()); }