@Test public void generateHtml_shouldRenderMultipleConceptProperlyInViewMode() { when(context.getMode()).thenReturn(FormEntryContext.Mode.VIEW); DynamicAutocompleteWidget dynamicAutocompleteWidget = new DynamicAutocompleteWidget(generateConceptList(), null); Concept initialValue1 = mock(Concept.class); when(initialValue1.getDisplayString()).thenReturn("concept1"); dynamicAutocompleteWidget.addInitialValue(initialValue1); Concept initialValue2 = mock(Concept.class); when(initialValue2.getDisplayString()).thenReturn("concept2"); dynamicAutocompleteWidget.addInitialValue(initialValue2); String html = dynamicAutocompleteWidget.generateHtml(context); TestUtil.assertFuzzyContains("concept1;concept2;", html); }
private void handleDynamicAutocompleteSubmissionInEditMode(FormEntrySession session, HttpServletRequest submission, Object value, Date obsDatetime, String accessionNumberValue) { List values = (List) value; List<Concept> newConceptList = new Vector<Concept>(); List<Concept> existingConceptList = ((DynamicAutocompleteWidget) valueWidget).getInitialValueList(); // get the list of concepts entered on the form for (Object val : values) { if (StringUtils.isNotBlank((String) val)) { int conceptId = Integer.valueOf((String) val); newConceptList.add(Context.getConceptService().getConcept(conceptId)); } } // figure out what obs we need to create and what ones we need to remove for (Concept c : existingConceptList) { if (newConceptList.contains(c)) newConceptList.remove(c); else { for (Obs o : existingObsList) { if (o.getValueCoded().equals(c)) session.getSubmissionActions().modifyObs(o, concept, null, obsDatetime, accessionNumberValue); } } } if (!newConceptList.isEmpty()) { for (Concept c : newConceptList) { session.getSubmissionActions().createObs(concept, c, obsDatetime, accessionNumberValue); } } }
@Test public void getValue_shouldReturnEmptyListIfNoValuesInRequest() { DynamicAutocompleteWidget dynamicAutocompleteWidget = new DynamicAutocompleteWidget(generateConceptList(), null); List values = (List) dynamicAutocompleteWidget.getValue(context, request); assertThat(values.size(), is(0)); }
@Test public void generateHtml_shouldRenderSingleConceptProperlyInViewMode() { when(context.getMode()).thenReturn(FormEntryContext.Mode.VIEW); DynamicAutocompleteWidget dynamicAutocompleteWidget = new DynamicAutocompleteWidget(generateConceptList(), null); Concept initialValue = mock(Concept.class); when(initialValue.getDisplayString()).thenReturn("concept1"); dynamicAutocompleteWidget.setInitialValue(initialValue); String html = dynamicAutocompleteWidget.generateHtml(context); TestUtil.assertFuzzyContains("concept1", html); }
if (existingObsList != null && !existingObsList.isEmpty()) { for (int i = 0; i < existingObsList.size(); i++) { ((DynamicAutocompleteWidget)valueWidget).addInitialValue(existingObsList.get(i).getValueCoded()); valueWidget = new DynamicAutocompleteWidget(conceptAnswers, cptClasses); ((DynamicAutocompleteWidget)valueWidget).addInitialValue(existingObsList.get(i).getValueCoded());
@Test public void generateHtml_shouldRenderProperHtmlWithConceptList() { when(context.getMode()).thenReturn(FormEntryContext.Mode.EDIT); DynamicAutocompleteWidget dynamicAutocompleteWidget = new DynamicAutocompleteWidget(generateConceptList(), null); String html = dynamicAutocompleteWidget.generateHtml(context); TestUtil.assertFuzzyContains("<div id=\"w2_div\" class=\"dynamicAutocomplete\">" + "<input name=\"w2_hid\" id=\"w2_hid\" type=\"hidden\" class=\"autoCompleteHidden\" />" + "<input type=\"text\" id=\"w2\" name=\"w2\" onfocus=\"setupAutocomplete\\(this, 'conceptSearch.form','1,2,3','null'\\); \"class=\"autoCompleteText\" onBlur=\"onBlurAutocomplete\\(this\\)\"/>" + "<input id=\"w2_button\" type=\"button\" class=\"addConceptButton\" value=\"Add\" /></div>", html); }
private void handleDynamicAutocompleteSubmissionInEnterMode(FormEntrySession session, HttpServletRequest submission, Object value, Date obsDatetime, String accessionNumberValue) { List values = (List) value; // create an obs for each value for (Object val : values) { int conceptId = Integer.valueOf((String) val); ((DynamicAutocompleteWidget)valueWidget).addInitialValue(Context.getConceptService().getConcept(conceptId)); session.getSubmissionActions().createObs(concept, conceptId, obsDatetime, accessionNumberValue); } }
@Test public void generateHtml_shouldRenderProperHtmlWithConceptClasses() { when(context.getMode()).thenReturn(FormEntryContext.Mode.EDIT); DynamicAutocompleteWidget dynamicAutocompleteWidget = new DynamicAutocompleteWidget(null, generateConceptClassList()); String html = dynamicAutocompleteWidget.generateHtml(context); TestUtil.assertFuzzyContains("<div id=\"w2_div\" class=\"dynamicAutocomplete\">" + "<input name=\"w2_hid\" id=\"w2_hid\" type=\"hidden\" class=\"autoCompleteHidden\" />" + "<input type=\"text\" id=\"w2\" name=\"w2\" onfocus=\"setupAutocomplete\\(this, 'conceptSearch.form','null','someClass,anotherClass'\\); \"class=\"autoCompleteText\" onBlur=\"onBlurAutocomplete\\(this\\)\"/>" + "<input id=\"w2_button\" type=\"button\" class=\"addConceptButton\" value=\"Add\" /></div>", html); }
@Test public void getValue_shouldReturnProperValues() { when(request.getParameter("w2_hid")).thenReturn("3"); when(request.getParameter("w2span_0_hid")).thenReturn("1001"); when(request.getParameter("w2span_1_hid")).thenReturn("1002"); when(request.getParameter("w2span_2_hid")).thenReturn("1003"); DynamicAutocompleteWidget dynamicAutocompleteWidget = new DynamicAutocompleteWidget(generateConceptList(), null); List values = (List) dynamicAutocompleteWidget.getValue(context, request); assertThat(values.size(), is(3)); Set<String> results = new HashSet<String>(); for (Object val : values) { results.add((String) val); } assertTrue(results.contains("1001")); assertTrue(results.contains("1002")); assertTrue(results.contains("1003")); }