/** * @see org.openmrs.api.ConceptService#convertBooleanConceptToCoded(org.openmrs.Concept) */ @Override public void convertBooleanConceptToCoded(Concept conceptToChange) throws APIException { if (conceptToChange != null) { if (!conceptToChange.getDatatype().isBoolean()) { throw new APIException("Concept.datatype.invalid", (Object[]) null); } conceptToChange.setDatatype(getConceptDatatypeByName("Coded")); conceptToChange.addAnswer(new ConceptAnswer(getTrueConcept())); conceptToChange.addAnswer(new ConceptAnswer(getFalseConcept())); Context.getConceptService().saveConcept(conceptToChange); } }
@Test public void shouldChangeConceptAnswerReferenceToParentConcept() { Concept c = new Concept(123); c.addAnswer(new ConceptAnswer(1)); c.addAnswer(new ConceptAnswer(2)); ConceptNumeric cn = new ConceptNumeric(c); for (ConceptAnswer cAnswer : cn.getAnswers()) { Assert.assertSame(cn, cAnswer.getConcept()); } }
/** * @see Concept#addAnswer(ConceptAnswer) */ @Test public void addAnswer_shouldNotFailIfAnswersListIsNull() { ConceptAnswer ca = new ConceptAnswer(123); Concept c = new Concept(); c.setAnswers(null); // make sure the list is null c.addAnswer(ca); }
@Test public void validate_shouldFailIfCodedConceptContainsItselfAsAnAnswer() { Concept concept = conceptService.getConcept(30); ConceptAnswer conceptAnswer = new ConceptAnswer(concept); concept.addAnswer(conceptAnswer); Errors errors = new BindException(concept, "concept"); validator.validate(concept, errors); assertThat(errors, hasGlobalErrors("Concept.contains.itself.as.answer")); }
/** * @see Concept#addAnswer(ConceptAnswer) */ @Test public void addAnswer_shouldSetTheSortWeightToTheMaxPlusOneIfNotProvided() { ConceptAnswer ca = new ConceptAnswer(123); Concept c = new Concept(); c.setAnswers(null);//make sure null list c.addAnswer(ca); Assert.assertEquals(1d, ca.getSortWeight(), 0); ConceptAnswer ca2 = new ConceptAnswer(456); c.addAnswer(ca2); Assert.assertEquals(2d, ca2.getSortWeight(), 0); }
/** * @see Concept#getAnswers() */ @Test public void getAnswers_shouldReturnRetiredByDefault() { ConceptAnswer ca = new ConceptAnswer(new Concept(123)); Concept c = new Concept(); Assert.assertEquals(0, c.getAnswers().size()); ca.getAnswerConcept().setRetired(false);//set test condition explicitly c.addAnswer(ca); ConceptAnswer ca2 = new ConceptAnswer(new Concept(456)); ca2.getAnswerConcept().setRetired(true); c.addAnswer(ca2); Assert.assertEquals(2, c.getAnswers().size()); }
/** * @see Concept#getAnswers() */ @Test public void getAnswers_shouldNotReturnRetiredIfFalse() { ConceptAnswer ca = new ConceptAnswer(new Concept(123)); Concept c = new Concept(); Assert.assertEquals(0, c.getAnswers(false).size()); ca.getAnswerConcept().setRetired(false);//set test condition explicitly c.addAnswer(ca); ConceptAnswer ca2 = new ConceptAnswer(new Concept(456)); ca2.getAnswerConcept().setRetired(true); c.addAnswer(ca2); Assert.assertEquals(1, c.getAnswers(false).size()); }
/** * @see Concept#getAnswers() */ @Test public void getAnswers_shouldReturnRetiredIfTrue() { ConceptAnswer ca = new ConceptAnswer(new Concept(123)); Concept c = new Concept(); Assert.assertEquals(0, c.getAnswers(true).size()); ca.getAnswerConcept().setRetired(false);//set test condition explicitly c.addAnswer(ca); ConceptAnswer ca2 = new ConceptAnswer(new Concept(456)); ca2.getAnswerConcept().setRetired(true); c.addAnswer(ca2); Assert.assertEquals(2, c.getAnswers(true).size()); }
/** * @see ConceptService#saveConcept(Concept) */ @Test public void saveConcept_shouldSetAuditInfoIfAnItemIsRemovedFromAnyOfItsChildCollections() { Concept concept = conceptService.getConcept(3); Assert.assertNull(concept.getDateChanged()); Assert.assertNull(concept.getChangedBy()); Concept concept1= conceptService.getConcept(5); ConceptAnswer conceptanswer = new ConceptAnswer(concept1); concept.addAnswer(conceptanswer); conceptService.saveConcept(concept); Assert.assertNotNull(concept.getDateChanged()); Date date=concept.getDateChanged(); Assert.assertTrue(concept.removeAnswer(conceptanswer)); conceptService.saveConcept(concept); Assert.assertNotNull(concept.getDateChanged()); Date date1=concept.getDateChanged(); Assert.assertFalse(date.equals(date1)); Assert.assertNotNull(concept.getChangedBy()); }
instance.addAnswer(answerToAdd);
@Test public void testForcingLocaleOnCheckboxLabel() throws Exception { ConceptDatatype coded = new ConceptDatatype(); coded.setUuid(ConceptDatatype.CODED_UUID); Concept option = new Concept(456); option.addName(new ConceptName("English", Locale.ENGLISH)); option.addName(new ConceptName("Kreyol", LocaleUtility.fromSpecification("ht"))); Concept options = new Concept(123); options.setDatatype(coded); options.addAnswer(new ConceptAnswer(option)); mockStatic(HtmlFormEntryUtil.class); PowerMockito.when(HtmlFormEntryUtil.getConcept("123")).thenReturn(options); PowerMockito.when(HtmlFormEntryUtil.getConcept("456")).thenReturn(option); params.put("conceptId", "123"); params.put("answerConceptId", "456"); params.put("locale", "ht"); ObsSubmissionElement element = new ObsSubmissionElement(context, params); String html = element.generateHtml(context); assertTrue(html.matches(".*<label.*>Kreyol</label>.*")); }
@Test public void testForcingLocaleOnRadioLabels() throws Exception { ConceptDatatype coded = new ConceptDatatype(); coded.setUuid(ConceptDatatype.CODED_UUID); Concept option1 = new Concept(1); option1.addName(new ConceptName("English 1", Locale.ENGLISH)); option1.addName(new ConceptName("Kreyol 1", LocaleUtility.fromSpecification("ht"))); Concept option2 = new Concept(1); option2.addName(new ConceptName("English 2", Locale.ENGLISH)); option2.addName(new ConceptName("Kreyol 2", LocaleUtility.fromSpecification("ht"))); Concept options = new Concept(123); options.setDatatype(coded); options.addAnswer(new ConceptAnswer(option1)); options.addAnswer(new ConceptAnswer(option2)); mockStatic(HtmlFormEntryUtil.class); PowerMockito.when(HtmlFormEntryUtil.getConcept("123")).thenReturn(options); PowerMockito.when(HtmlFormEntryUtil.getConcept("1")).thenReturn(option1); PowerMockito.when(HtmlFormEntryUtil.getConcept("2")).thenReturn(option2); params.put("conceptId", "123"); params.put("answerConceptIds", "1,2"); params.put("style", "radio"); params.put("locale", "ht"); ObsSubmissionElement element = new ObsSubmissionElement(context, params); String html = element.generateHtml(context); System.out.println(html); assertTrue(html.matches(".*<label.*>Kreyol 1</label>.*<label.*>Kreyol 2</label>.*")); }