org.openmrs.web.controller.encounter.EncounterFormControllerTest.java Source code

Java tutorial

Introduction

Here is the source code for org.openmrs.web.controller.encounter.EncounterFormControllerTest.java

Source

/**
 * This Source Code Form is subject to the terms of the Mozilla Public License,
 * v. 2.0. If a copy of the MPL was not distributed with this file, You can
 * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under
 * the terms of the Healthcare Disclaimer located at http://openmrs.org/license.
 *
 * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS
 * graphic logo is a trademark of OpenMRS Inc.
 */
package org.openmrs.web.controller.encounter;

import org.apache.struts.mock.MockHttpServletResponse;
import org.junit.Assert;
import org.junit.Test;
import org.openmrs.Encounter;
import org.openmrs.Patient;
import org.openmrs.api.context.Context;
import org.openmrs.test.Verifies;
import org.openmrs.web.test.BaseModuleWebContextSensitiveTest;
import org.openmrs.web.test.BaseWebContextSensitiveTest;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.validation.BindException;

import java.util.List;

public class EncounterFormControllerTest extends BaseModuleWebContextSensitiveTest {

    protected static final String ENC_INITIAL_DATA_XML = "org/openmrs/api/include/EncounterServiceTest-initialData.xml";

    protected static final String TRANSFER_ENC_DATA_XML = "org/openmrs/api/include/EncounterServiceTest-transferEncounter.xml";

    /**
     * @see EncounterFormController#onSubmit(javax.servlet.http.HttpServletRequest,
     *      javax.servlet.http.HttpServletResponse, java.lang.Object,
     *      org.springframework.validation.BindException)
     */
    @Test
    @Verifies(value = "transfer encounter to another patient when encounter patient was changed", method = "onSubmit(HttpServletRequest, HttpServletResponse, Object, BindException)")
    public void onSubmit_shouldSaveANewEncounterRoleObject() throws Exception {
        executeDataSet(ENC_INITIAL_DATA_XML);
        executeDataSet(TRANSFER_ENC_DATA_XML);

        EncounterFormController controller = new EncounterFormController();

        MockHttpServletResponse response = new MockHttpServletResponse();
        MockHttpServletRequest request = new MockHttpServletRequest();
        request.setParameter("patientId", "201");

        Encounter encounter = Context.getEncounterService().getEncounter(200);

        Patient oldPatient = encounter.getPatient();
        Patient newPatient = Context.getPatientService().getPatient(201);
        Assert.assertNotEquals(oldPatient, newPatient);

        List<Encounter> newEncounter = Context.getEncounterService()
                .getEncountersByPatientId(newPatient.getPatientId());
        Assert.assertEquals(0, newEncounter.size());

        BindException errors = new BindException(encounter, "encounterRole");

        controller.onSubmit(request, response, encounter, errors);

        Assert.assertEquals(true, encounter.isVoided());
        newEncounter = Context.getEncounterService().getEncountersByPatientId(newPatient.getPatientId());
        Assert.assertEquals(1, newEncounter.size());
        Assert.assertEquals(false, newEncounter.get(0).isVoided());
    }
}