List of usage examples for org.springframework.mock.web MockHttpServletRequest setParameter
public void setParameter(String name, String... values)
From source file:org.openmrs.web.controller.ConceptFormControllerTest.java
/** * Test adding a concept with a preferred name, short name, description and synonyms. * /*from w w w.ja va 2s . c o m*/ * @throws Exception */ @Test public void shouldReplacePreviousDescription() throws Exception { final String EXPECTED_PREFERRED_NAME = "no such concept"; final String EXPECTED_SHORT_NAME = "nonesuch"; final String ORIGINAL_DESCRIPTION = "this is indescribable"; final String EXPECTED_DESCRIPTION = "this is not really a concept"; final String EXPECTED_SYNONYM_A = "phantom"; final String EXPECTED_SYNONYM_B = EXPECTED_SHORT_NAME; final String EXPECTED_SYNONYM_C = "mock"; ConceptService cs = Context.getConceptService(); // first, add the concept with an original description Concept conceptToUpdate = new Concept(); conceptToUpdate.addName(new ConceptName("demo name", Context.getLocale())); ConceptDescription originalConceptDescription = new ConceptDescription(); originalConceptDescription.setLocale(britishEn); originalConceptDescription.setDescription(ORIGINAL_DESCRIPTION); conceptToUpdate.addDescription(originalConceptDescription); cs.saveConcept(conceptToUpdate); // then submit changes through the controller ConceptFormController conceptFormController = (ConceptFormController) applicationContext .getBean("conceptForm"); MockHttpServletRequest mockRequest = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); mockRequest.setMethod("POST"); mockRequest.setParameter("action", ""); mockRequest.setParameter("synonymsByLocale[en_GB][0].name", EXPECTED_SYNONYM_A); mockRequest.setParameter("synonymsByLocale[en_GB][1].name", EXPECTED_SYNONYM_B); mockRequest.setParameter("synonymsByLocale[en_GB][2].name", EXPECTED_SYNONYM_C); mockRequest.setParameter("shortNamesByLocale[en_GB].name", EXPECTED_SHORT_NAME); mockRequest.setParameter("descriptionsByLocale[en_GB].description", EXPECTED_DESCRIPTION); mockRequest.setParameter("namesByLocale[en_GB].name", EXPECTED_PREFERRED_NAME); mockRequest.setParameter("concept.datatype", "1"); ModelAndView mav = conceptFormController.handleRequest(mockRequest, response); assertNotNull(mav); assertTrue(mav.getModel().isEmpty()); Concept actualConcept = cs.getConceptByName(EXPECTED_PREFERRED_NAME); assertNotNull(actualConcept); assertNotNull(actualConcept.getDescription(britishEn)); assertEquals(EXPECTED_DESCRIPTION, actualConcept.getDescription(britishEn).getDescription()); }
From source file:com.fengduo.bee.commons.component.FormModelMethodArgumentResolver.java
@SuppressWarnings("unused") private ServletRequest prepareServletRequest(Object target, NativeWebRequest request, MethodParameter parameter) {// w w w . ja va 2 s . c o m String modelPrefixName = parameter.getParameterAnnotation(FormBean.class).value(); HttpServletRequest nativeRequest = (HttpServletRequest) request.getNativeRequest(); MultipartRequest multipartRequest = WebUtils.getNativeRequest(nativeRequest, MultipartRequest.class); MockHttpServletRequest mockRequest = null; if (multipartRequest != null) { MockMultipartHttpServletRequest mockMultipartRequest = new MockMultipartHttpServletRequest(); for (MultipartFile file : multipartRequest.getFileMap().values()) { mockMultipartRequest.addFile( new MultipartFileWrapper(getNewParameterName(file.getName(), modelPrefixName), file)); } mockRequest = mockMultipartRequest; } else { mockRequest = new MockHttpServletRequest(); } for (Entry<String, String> entry : getUriTemplateVariables(request).entrySet()) { String parameterName = entry.getKey(); String value = entry.getValue(); if (isFormModelAttribute(parameterName, modelPrefixName)) { mockRequest.setParameter(getNewParameterName(parameterName, modelPrefixName), value); } } for (Object parameterEntry : nativeRequest.getParameterMap().entrySet()) { Entry<String, String[]> entry = (Entry<String, String[]>) parameterEntry; String parameterName = entry.getKey(); String[] value = entry.getValue(); if (isFormModelAttribute(parameterName, modelPrefixName)) { mockRequest.setParameter(getNewParameterName(parameterName, modelPrefixName), value); } } return mockRequest; }
From source file:org.openmrs.web.controller.ConceptFormControllerTest.java
/** * Test adding a concept with a preferred name, short name, description and synonyms. * /*from w w w . j a v a 2 s.c o m*/ * @throws Exception */ @Test public void shouldAddConceptWithAllNamingSpecified() throws Exception { final String EXPECTED_PREFERRED_NAME = "no such concept"; final String EXPECTED_SHORT_NAME = "nonesuch"; final String EXPECTED_DESCRIPTION = "this is not really a concept"; final String EXPECTED_SYNONYM_A = "phantom"; final String EXPECTED_SYNONYM_B = "imaginary"; final String EXPECTED_SYNONYM_C = "mock"; AdministrationService as = Context.getAdministrationService(); GlobalProperty gp = as.getGlobalPropertyObject(OpenmrsConstants.GLOBAL_PROPERTY_LOCALE_ALLOWED_LIST); gp.setPropertyValue("en_GB, en_US"); as.saveGlobalProperty(gp); ConceptService cs = Context.getConceptService(); // make sure the concept doesn't already exist Concept conceptToAdd = cs.getConceptByName(EXPECTED_PREFERRED_NAME); assertNull(conceptToAdd); ConceptFormController conceptFormController = (ConceptFormController) applicationContext .getBean("conceptForm"); MockHttpServletRequest mockRequest = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); mockRequest.setMethod("POST"); mockRequest.setParameter("action", ""); mockRequest.setParameter("synonymsByLocale[en_GB][0].name", EXPECTED_SYNONYM_A); mockRequest.setParameter("synonymsByLocale[en_GB][1].name", EXPECTED_SYNONYM_B); mockRequest.setParameter("synonymsByLocale[en_GB][2].name", EXPECTED_SYNONYM_C); mockRequest.setParameter("shortNamesByLocale[en_GB].name", EXPECTED_SHORT_NAME); mockRequest.setParameter("descriptionsByLocale[en_GB].description", EXPECTED_DESCRIPTION); mockRequest.setParameter("namesByLocale[en_GB].name", EXPECTED_PREFERRED_NAME); mockRequest.setParameter("concept.datatype", "1"); ModelAndView mav = conceptFormController.handleRequest(mockRequest, response); assertNotNull(mav); assertTrue(mav.getModel().isEmpty()); Concept actualConcept = cs.getConceptByName(EXPECTED_PREFERRED_NAME); assertNotNull(actualConcept); Collection<ConceptName> actualNames = actualConcept.getNames(); assertEquals(5, actualNames.size()); assertEquals(EXPECTED_PREFERRED_NAME, actualConcept.getFullySpecifiedName(britishEn).getName()); assertNotNull(actualConcept.getShortNameInLocale(britishEn)); assertEquals(EXPECTED_SHORT_NAME, actualConcept.getShortNameInLocale(britishEn).getName()); assertNotNull(actualConcept.getDescription(britishEn)); assertEquals(EXPECTED_DESCRIPTION, actualConcept.getDescription(britishEn).getDescription()); }
From source file:org.openmrs.web.controller.ConceptFormControllerTest.java
/** * @see ConceptFormController#onSubmit(HttpServletRequest,HttpServletResponse,Object,BindException) * @verifies edit short name when there are multiple allowed locales *///from w ww. j a v a 2s. c om @Test public void onSubmit_shouldEditShortNameWhenThereAreMultipleAllowedLocales() throws Exception { AdministrationService as = Context.getAdministrationService(); GlobalProperty gp = as.getGlobalPropertyObject(OpenmrsConstants.GLOBAL_PROPERTY_LOCALE_ALLOWED_LIST); gp.setPropertyValue(britishEn + ", en_US"); as.saveGlobalProperty(gp); final Integer conceptId = 5089; Concept concept = conceptService.getConcept(conceptId); assertEquals("WT", concept.getShortNameInLocale(britishEn).getName()); ConceptFormController controller = applicationContext.getBean("conceptForm", ConceptFormController.class); MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); final String newShortName = "WGT"; request.setMethod("POST"); request.setParameter("action", "Save Concept"); request.setParameter("conceptId", conceptId.toString()); request.setParameter("shortNamesByLocale[" + britishEn + "].name", newShortName); request.setParameter("shortNamesByLocale[en_US].name", ""); ModelAndView mav = controller.handleRequest(request, response); assertNotNull(mav); assertTrue(mav.getModel().isEmpty()); concept = conceptService.getConcept(conceptId); ConceptName shortConceptName = concept.getShortNameInLocale(britishEn); assertNotNull(shortConceptName); assertEquals(newShortName, shortConceptName.getName()); }
From source file:com.openmeap.services.ServletManagementServletTest.java
@Test public void testRefreshApplication() throws Exception { MockHttpServletRequest request = new Request(); MockHttpServletResponse response = new MockHttpServletResponse(); String randomUuid = UUID.randomUUID().toString(); GlobalSettings settings = modelManager.getGlobalSettings(); ///////////////// // validate that finding the application, modifying it, and then finding it again // will return an object with the same modifications. Application app = modelManager.getModelService().findByPrimaryKey(Application.class, 1L); app.setName(randomUuid);/* w w w . j av a 2 s . c om*/ Assert.assertTrue(modelManager.getModelService().findByPrimaryKey(Application.class, 1L).getName() .equals(randomUuid)); modelManager.refresh(app, null); app = modelManager.getModelService().findByPrimaryKey(Application.class, 1L); Assert.assertTrue(!modelManager.getModelService().findByPrimaryKey(Application.class, 1L).getName() .equals(randomUuid)); ServiceManagementServlet servlet = new ServiceManagementServlet(); servlet.setModelManager(modelManager); servlet.setModelServiceRefreshHandler(new ModelServiceRefreshHandler()); servlet.getModelServiceRefreshHandler().setModelManager(modelManager); //////////////////// // validate the happy path of providing all the required information String authSalt = servlet.getAuthSalt(); String authToken = AuthTokenProvider.newAuthToken(authSalt); request.setParameter(UrlParamConstants.REFRESH_TYPE, "Application"); request.setParameter(UrlParamConstants.REFRESH_OBJ_PKID, "1"); request.setParameter(UrlParamConstants.AUTH_TOKEN, authToken); request.setParameter(UrlParamConstants.ACTION, ModelEntityEventAction.MODEL_REFRESH.getActionName()); servlet.service(request, response); String contentString = response.getContentAsString(); JSONObjectBuilder job = new JSONObjectBuilder(); Result result = (Result) job.fromJSON(new JSONObject(contentString), new Result()); Assert.assertTrue(result.getStatus().equals(Result.Status.SUCCESS)); Assert.assertTrue(!modelManager.getModelService().findByPrimaryKey(Application.class, 1L).getName() .equals(randomUuid)); //////////////////// // validate that failing to provide auth token fails to refresh cache app = modelManager.getModelService().findByPrimaryKey(Application.class, 1L); app.setName(randomUuid); response = new MockHttpServletResponse(); request.removeParameter(UrlParamConstants.AUTH_TOKEN); request.setParameter(UrlParamConstants.ACTION, ModelEntityEventAction.MODEL_REFRESH.getActionName()); request.setParameter(UrlParamConstants.REFRESH_TYPE, "Application"); request.setParameter(UrlParamConstants.REFRESH_OBJ_PKID, "1"); servlet.service(request, response); contentString = response.getContentAsString(); result = (Result) job.fromJSON(new JSONObject(contentString), new Result()); Assert.assertTrue(result.getStatus().equals(Result.Status.FAILURE)); Assert.assertTrue(modelManager.getModelService().findByPrimaryKey(Application.class, 1L).getName() .equals(randomUuid)); }
From source file:org.openmrs.module.htmlformentry.ObsTagTest.java
@Test public void shouldEditObsWithAutocomplete() throws Exception { new RegressionTestHelper() { @Override// w w w. j a v a 2 s . c om public String getFormName() { return "singleObsFormWithAutocomplete"; } public Patient getPatient() { return patient; } @Override public String[] widgetLabels() { return new String[] { "Date:", "Location:", "Provider:", "Coded:!!1" }; } @Override public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) { request.addParameter(widgets.get("Date:"), dateAsString(new Date())); request.addParameter(widgets.get("Location:"), "2"); request.addParameter(widgets.get("Provider:"), "502"); request.addParameter(widgets.get("Coded:!!1"), "1001"); } @Override public boolean doEditEncounter() { return true; } @Override public String[] widgetLabelsForEdit() { return new String[] { "Coded:!!1" }; } @Override public void setupEditRequest(MockHttpServletRequest request, Map<String, String> widgets) { request.setParameter(widgets.get("Coded:!!1"), "1002"); } @Override public void testEditedResults(SubmissionResults results) { results.assertNoErrors(); results.assertObsCreatedCount(1); results.assertObsVoided(1000, "PENICILLIN"); results.assertObsCreated(1000, "CATS"); } }.run(); }
From source file:org.openmrs.module.htmlformentry.ObsTagTest.java
@Test public void dynamicAutocomplete_shouldVoidAllExistingObsIfEmpty() throws Exception { new RegressionTestHelper() { @Override//from www. ja va2 s . com public String getFormName() { return "singleObsFormWithMultiAutocomplete"; } public Patient getPatient() { return patient; } @Override public String[] widgetLabels() { return new String[] { "Date:", "Location:", "Provider:", "Coded:" }; } @Override public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) { request.addParameter(widgets.get("Date:"), dateAsString(new Date())); request.addParameter(widgets.get("Location:"), "2"); request.addParameter(widgets.get("Provider:"), "502"); request.addParameter(widgets.get("Coded:"), "2"); // in the dynamic autocomplete, the widget value is just the count of the number of entries request.addParameter("w8span_0_hid", "1001"); request.addParameter("w8span_1_hid", "1002"); } @Override public boolean doEditEncounter() { return true; } @Override public String[] widgetLabelsForEdit() { return new String[] { "Coded:" }; } @Override public void setupEditRequest(MockHttpServletRequest request, Map<String, String> widgets) { request.setParameter(widgets.get("Coded:"), "0"); // in the dynamic autocomplete, the widget value is just the count of the number of entries request.removeParameter("w8span_0_hid"); request.removeParameter("w8span_1_hid"); } @Override public void testEditedResults(SubmissionResults results) { results.assertNoErrors(); Encounter encounter = results.getEncounterCreated(); assertThat(encounter.getAllObs(false).size(), is(0)); // no none-voided obs assertThat(encounter.getAllObs(true).size(), is(2)); // the existing obs should have been voided } }.run(); }
From source file:org.openmrs.module.htmlformentry.ObsTagTest.java
@Test public void dynamicAutocomplete_shouldEditExistingObs() throws Exception { new RegressionTestHelper() { @Override/*from w w w . ja va 2s .c om*/ public String getFormName() { return "singleObsFormWithMultiAutocomplete"; } public Patient getPatient() { return patient; } @Override public String[] widgetLabels() { return new String[] { "Date:", "Location:", "Provider:", "Coded:" }; } @Override public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) { request.addParameter(widgets.get("Date:"), dateAsString(new Date())); request.addParameter(widgets.get("Location:"), "2"); request.addParameter(widgets.get("Provider:"), "502"); request.addParameter(widgets.get("Coded:"), "2"); // in the dynamic autocomplete, the widget value is just the count of the number of entries request.addParameter("w8span_0_hid", "1001"); request.addParameter("w8span_1_hid", "1002"); } @Override public boolean doEditEncounter() { return true; } @Override public String[] widgetLabelsForEdit() { return new String[] { "Coded:" }; } @Override public void setupEditRequest(MockHttpServletRequest request, Map<String, String> widgets) { request.setParameter(widgets.get("Coded:"), "2"); // in the dynamic autocomplete, the widget value is just the count of the number of entries request.setParameter("w8span_0_hid", "1002"); request.setParameter("w8span_1_hid", "1003"); } @Override public void testEditedResults(SubmissionResults results) { results.assertNoErrors(); Encounter encounter = results.getEncounterCreated(); assertThat(encounter.getAllObs(false).size(), is(2)); // should be two non-voided obs of value 1002 & 1003 assertThat(encounter.getAllObs(true).size(), is(3)); // should be three obs included the voided obs for 1001 Set<Integer> valueCoded = new HashSet<Integer>(); for (Obs obs : encounter.getAllObs(true)) { if (obs.isVoided()) { assertThat(obs.getValueCoded().getId(), is(1001)); } else { valueCoded.add(obs.getValueCoded().getId()); } } assertTrue(valueCoded.contains(1002)); assertTrue(valueCoded.contains(1003)); } }.run(); }
From source file:org.openmrs.module.htmlformentry.ObsTagTest.java
@Test public void dynamicAutocomplete_shouldEditExistingObsWhenSomeObsAreRemoved() throws Exception { new RegressionTestHelper() { @Override// w w w . j ava 2 s. c o m public String getFormName() { return "singleObsFormWithMultiAutocomplete"; } public Patient getPatient() { return patient; } @Override public String[] widgetLabels() { return new String[] { "Date:", "Location:", "Provider:", "Coded:" }; } @Override public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) { request.addParameter(widgets.get("Date:"), dateAsString(new Date())); request.addParameter(widgets.get("Location:"), "2"); request.addParameter(widgets.get("Provider:"), "502"); request.addParameter(widgets.get("Coded:"), "2"); // in the dynamic autocomplete, the widget value is just the count of the number of entries request.addParameter("w8span_0_hid", "1001"); request.addParameter("w8span_1_hid", "1002"); } @Override public boolean doEditEncounter() { return true; } @Override public String[] widgetLabelsForEdit() { return new String[] { "Coded:" }; } @Override public void setupEditRequest(MockHttpServletRequest request, Map<String, String> widgets) { request.setParameter(widgets.get("Coded:"), "1"); // in the dynamic autocomplete, the widget value is just the count of the number of entries request.setParameter("w8span_0_hid", "1003"); request.removeParameter("w8span_1_hid"); } @Override public void testEditedResults(SubmissionResults results) { results.assertNoErrors(); Encounter encounter = results.getEncounterCreated(); assertThat(encounter.getAllObs(false).size(), is(1)); // should be one non-voided obs of value 1003 assertThat(encounter.getAllObs(true).size(), is(3)); // should be three obs included the voided obs for 1001 and 1002 Set<Integer> valueCoded = new HashSet<Integer>(); for (Obs obs : encounter.getAllObs(true)) { if (!obs.isVoided()) { assertThat(obs.getValueCoded().getId(), is(1003)); } else { valueCoded.add(obs.getValueCoded().getId()); } } assertTrue(valueCoded.contains(1002)); assertTrue(valueCoded.contains(1001)); } }.run(); }
From source file:org.openmrs.module.htmlformentry.ObsTagTest.java
/** * verifies whether the previous obs is correctly voided when a new obs created, with changing the numeric value * of checkbox, tests the changing of numeric value too. * @throws Exception/* www. j a v a2s .c o m*/ */ @Test public void shouldVoidPreviousObsWhenEditNumericValueCheckbox() throws Exception { new RegressionTestHelper() { Date date = new Date(); @Override public String getFormName() { return "SingleObsFormWithNumericCheckbox"; } public Patient getPatient() { return patient; } @Override public String[] widgetLabels() { return new String[] { "Date:", "Location:", "Provider:", "NumericValue:" }; } @Override public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) { request.addParameter(widgets.get("Date:"), dateAsString(date)); request.addParameter(widgets.get("Location:"), "2"); request.addParameter(widgets.get("Provider:"), "502"); request.addParameter(widgets.get("NumericValue:"), "8"); } @Override public void testResults(SubmissionResults results) { results.assertNoErrors(); results.assertEncounterCreated(); results.assertProvider(502); results.assertLocation(2); results.assertObsCreatedCount(1); results.assertObsCreated(1, "8.0"); } @Override public boolean doEditEncounter() { return true; } @Override public String[] widgetLabelsForEdit() { return new String[] { "Date:", "NumericValue:" }; } @Override public void setupEditRequest(MockHttpServletRequest request, Map<String, String> widgets) { request.setParameter(widgets.get("NumericValue:"), "4"); } @Override public void testEditedResults(SubmissionResults results) { results.assertNoErrors(); results.assertObsCreatedCount(1); results.assertObsVoided(1, "8.0"); results.assertObsCreated(1, "4.0"); } }.run(); }