/** * Make sure that multiple forms are returned if a field is on a form more than once * * @see {@link FormService#getForms(String, Boolean, java.util.Collection, Boolean, java.util.Collection, java.util.Collection, java.util.Collection) */ @Test public void getForms_shouldReturnDuplicateFormWhenGivenFieldsIncludedInFormMultipleTimes() { executeDataSet(INITIAL_FIELDS_XML); executeDataSet("org/openmrs/api/include/FormServiceTest-formFields.xml"); FormService formService = Context.getFormService(); List<Field> fields = new ArrayList<>(); fields.add(new Field(1)); List<Form> forms = formService.getForms(null, null, null, null, null, null, fields); assertEquals(3, forms.size()); }
/** * @ * @see FormService#getForms(String,Boolean,Collection,Boolean,Collection,Collection,Collection) */ @Test public void getForms_shouldReturnFormsContainingAllFormFieldsInContainingAllFormFields() { executeDataSet(INITIAL_FIELDS_XML); executeDataSet("org/openmrs/api/include/FormServiceTest-formFields.xml"); FormService formService = Context.getFormService(); Set<FormField> formFields = new HashSet<>(); formFields.add(new FormField(3)); formFields.add(new FormField(5)); formFields.add(new FormField(7)); List<Form> forms = formService.getForms(null, null, null, null, null, formFields, null); assertEquals(1, forms.size()); formFields = new HashSet<>(); formFields.add(new FormField(2)); formFields.add(new FormField(4)); formFields.add(new FormField(6)); forms = formService.getForms(null, null, null, null, null, formFields, null); assertEquals(0, forms.size()); }
/** * ensure that FormFields in containingAnyFormField parameter are considered when filtering the results * * @see {@link FormService#getForms(String, Boolean, java.util.Collection, Boolean, java.util.Collection, java.util.Collection, java.util.Collection) */ @Test public void getForms_shouldReturnFormsThatHaveAnyMatchingFormFieldsInContainingAnyFormField() { Integer numberOfExpectedForms = 2; executeDataSet(INITIAL_FIELDS_XML); executeDataSet(MULTIPLE_FORMS_FORM_FIELDS_XML); FormService formService = Context.getFormService(); Collection<FormField> containingAnyFormField = makeFormFieldCollectionSample(formService); List<Form> formsReturned = formService.getForms(null, null, null, null, containingAnyFormField, null, null); Integer currentNumberOfForms = formsReturned.size(); assertEquals(numberOfExpectedForms, currentNumberOfForms); assertTrue(wasFormsSuccessfullyFilteredByMatchingFormFieldsInContainingAnyFormField(containingAnyFormField, formsReturned)); }
/** * @see FormService#getFormsContainingConcept(Concept) */ @Test public void mergeDuplicateFields_shouldMergeDuplicateFieldsInFormFieldsAndThenPurgeTheDuplicateFields() { executeDataSet(INITIAL_FIELDS_XML); executeDataSet(FORM_FIELDS_XML); Context.getFormService().mergeDuplicateFields(); // duplicateField should no longer be referenced Assert.assertNull(Context.getFormService().getFieldByUuid("b1843148-da2f-4349-c9c7-1164b98d91dd")); // duplicateField should be purged assertEquals(2, Context.getFormService().getAllFields().size()); }
/** * @see FormService#getFormField(Form,Concept,Collection<QFormField;>,null) */ @Test public void getFormField_shouldIgnoreFormFieldsPassedToIgnoreFormFields() { executeDataSet(INITIAL_FIELDS_XML); executeDataSet("org/openmrs/api/include/FormServiceTest-formFields.xml"); FormField ff = Context.getFormService().getFormField(new Form(1), new Concept(1), null, false); assertNotNull(ff); // sanity check // test that the first formfield is ignored when a second fetch // is done on the same form and same concept List<FormField> ignoreFormFields = new ArrayList<>(); ignoreFormFields.add(ff); FormField ff2 = Context.getFormService().getFormField(new Form(1), new Concept(1), ignoreFormFields, false); assertNotNull(ff2); assertNotSame(ff, ff2); }
@Test public void saveFormField_shouldInjectFormFieldsFromSerializableComplexObsHandlers() { executeDataSet("org/openmrs/api/include/ConceptComplex.xml"); Context.getObsService().registerHandler("NeigborHandler", new NeighborHandler()); Concept concept = Context.getConceptService().getConcept(6043);
public void shouldFieldCreateModifyDelete() { executeDataSet(INITIAL_FIELDS_XML);