Example usage for org.springframework.mock.web MockHttpServletRequest setParameter

List of usage examples for org.springframework.mock.web MockHttpServletRequest setParameter

Introduction

In this page you can find the example usage for org.springframework.mock.web MockHttpServletRequest setParameter.

Prototype

public void setParameter(String name, String... values) 

Source Link

Document

Set an array of values for the specified HTTP parameter.

Usage

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();
}