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:ltistarter.LTITests.java

@Test
@Transactional//from   w  w w .j  av  a2  s. c om
public void testLTIRequest() {
    assertNotNull(allRepositories);
    assertNotNull(ltiKeyRepository);
    assertNotNull(ltiContextRepository);
    assertNotNull(ltiLinkRepository);
    assertNotNull(ltiUserRepository);
    assertNotNull(ltiMembershipRepository);
    MockHttpServletRequest request;
    LTIRequest ltiRequest;

    LtiKeyEntity key1 = ltiKeyRepository.save(new LtiKeyEntity("AZkey", "AZsecret"));
    LtiKeyEntity key2 = ltiKeyRepository.save(new LtiKeyEntity("key", "secret"));
    LtiKeyEntity key3 = ltiKeyRepository.save(new LtiKeyEntity("3key", "secret"));
    LtiKeyEntity key4 = ltiKeyRepository.save(new LtiKeyEntity("4key", "secret"));
    LtiKeyEntity key5 = ltiKeyRepository.save(new LtiKeyEntity("5key", "secret"));

    LtiUserEntity user1 = ltiUserRepository.save(new LtiUserEntity("azeckoski", null));
    LtiUserEntity user2 = ltiUserRepository.save(new LtiUserEntity("bzeckoski", null));
    LtiUserEntity user3 = ltiUserRepository.save(new LtiUserEntity("czeckoski", null));
    LtiUserEntity user4 = ltiUserRepository.save(new LtiUserEntity("dzeckoski", null));

    LtiContextEntity context1 = ltiContextRepository
            .save(new LtiContextEntity("AZcontext", key1, "AZCtitle", null));
    LtiContextEntity context2 = ltiContextRepository
            .save(new LtiContextEntity("3context", key3, "3Ctitle", null));
    LtiContextEntity context3 = ltiContextRepository
            .save(new LtiContextEntity("5context", key5, "5Ctitle", null));

    LtiLinkEntity link1 = ltiLinkRepository.save(new LtiLinkEntity("AZlink", context1, "linkTitle"));

    LtiMembershipEntity member1 = ltiMembershipRepository
            .save(new LtiMembershipEntity(context1, user1, LtiMembershipEntity.ROLE_STUDENT));
    LtiMembershipEntity member2 = ltiMembershipRepository
            .save(new LtiMembershipEntity(context1, user2, LtiMembershipEntity.ROLE_STUDENT));
    LtiMembershipEntity member3 = ltiMembershipRepository
            .save(new LtiMembershipEntity(context1, user3, LtiMembershipEntity.ROLE_INTRUCTOR));
    LtiMembershipEntity member4 = ltiMembershipRepository
            .save(new LtiMembershipEntity(context2, user1, LtiMembershipEntity.ROLE_STUDENT));
    LtiMembershipEntity member5 = ltiMembershipRepository
            .save(new LtiMembershipEntity(context2, user3, LtiMembershipEntity.ROLE_INTRUCTOR));

    LtiServiceEntity service11 = ltiServiceRepository.save(new LtiServiceEntity("grading", key1, "format"));
    LtiServiceEntity service12 = ltiServiceRepository.save(new LtiServiceEntity("tracking", key1, "format"));

    request = new MockHttpServletRequest(); // NOT LTI request
    try {
        ltiRequest = new LTIRequest(request);
        fail("Should have died");
    } catch (IllegalStateException e) {
        assertNotNull(e.getMessage());
    }

    request = new MockHttpServletRequest(); // LTI request (minimal)
    request.setParameter(LTIRequest.LTI_VERSION, LTIRequest.LTI_VERSION_1P0);
    request.setParameter(LTIRequest.LTI_MESSAGE_TYPE, LTIRequest.LTI_MESSAGE_TYPE_BASIC);
    request.setParameter(LTIRequest.LTI_CONSUMER_KEY, key1.getKeyKey());
    ltiRequest = new LTIRequest(request);
    assertFalse(ltiRequest.isComplete());
    assertNotNull(ltiRequest.getLtiVersion());
    assertNotNull(ltiRequest.getLtiMessageType());
    assertNotNull(ltiRequest.getLtiConsumerKey());
    assertNull(ltiRequest.getKey()); // not loaded yet
    boolean loaded = ltiRequest.loadLTIDataFromDB(allRepositories); // load up the data
    assertTrue(loaded);
    assertNotNull(ltiRequest.getKey());
    assertEquals(key1, ltiRequest.getKey());

    request = new MockHttpServletRequest(); // LTI request (full)
    request.setParameter(LTIRequest.LTI_VERSION, LTIRequest.LTI_VERSION_1P0);
    request.setParameter(LTIRequest.LTI_MESSAGE_TYPE, LTIRequest.LTI_MESSAGE_TYPE_BASIC);
    request.setParameter(LTIRequest.LTI_CONSUMER_KEY, key1.getKeyKey());
    request.setParameter(LTIRequest.LTI_CONTEXT_ID, context1.getContextKey());
    request.setParameter(LTIRequest.LTI_LINK_ID, link1.getLinkKey());
    request.setParameter(LTIRequest.LTI_USER_ID, user1.getUserKey());
    ltiRequest = new LTIRequest(request, allRepositories, false);
    assertTrue(ltiRequest.isLoaded());
    assertTrue(ltiRequest.isComplete());
    assertNotNull(ltiRequest.getLtiVersion());
    assertNotNull(ltiRequest.getLtiMessageType());
    assertNotNull(ltiRequest.getLtiConsumerKey());
    assertNotNull(ltiRequest.getKey());
    assertEquals(key1, ltiRequest.getKey());
    assertNotNull(ltiRequest.getContext());
    assertNotNull(ltiRequest.getLink());
    assertNotNull(ltiRequest.getLtiUserId());
    assertNotNull(ltiRequest.getMembership());
    assertNull(ltiRequest.getService());
    assertNull(ltiRequest.getResult());

    request = new MockHttpServletRequest(); // LTI request (gaps)
    request.setParameter(LTIRequest.LTI_VERSION, LTIRequest.LTI_VERSION_1P0);
    request.setParameter(LTIRequest.LTI_MESSAGE_TYPE, LTIRequest.LTI_MESSAGE_TYPE_BASIC);
    request.setParameter(LTIRequest.LTI_CONSUMER_KEY, key1.getKeyKey());
    request.setParameter(LTIRequest.LTI_CONTEXT_ID, context1.getContextKey());
    request.setParameter(LTIRequest.LTI_LINK_ID, "invalid_link");
    request.setParameter(LTIRequest.LTI_USER_ID, user1.getUserKey());
    request.setParameter(LTIRequest.LTI_SOURCEDID, "invalid_sourcedid");
    request.setParameter(LTIRequest.LTI_SERVICE, service11.getServiceKey());
    ltiRequest = new LTIRequest(request, allRepositories, false);
    assertTrue(ltiRequest.isLoaded());
    assertFalse(ltiRequest.isComplete()); // missing the link
    assertFalse(ltiRequest.isUpdated());
    assertNotNull(ltiRequest.getLtiVersion());
    assertNotNull(ltiRequest.getLtiMessageType());
    assertNotNull(ltiRequest.getLtiConsumerKey());
    assertNotNull(ltiRequest.getKey());
    assertNotNull(ltiRequest.getContext());
    assertNull(ltiRequest.getLink());
    assertNotNull(ltiRequest.getLtiUserId());
    assertNotNull(ltiRequest.getMembership());
    assertNull(ltiRequest.getResult());
    assertNotNull(ltiRequest.getService());

    // testing updating existing data
    request = new MockHttpServletRequest(); // LTI request (gaps)
    request.setParameter(LTIRequest.LTI_VERSION, LTIRequest.LTI_VERSION_1P0);
    request.setParameter(LTIRequest.LTI_MESSAGE_TYPE, LTIRequest.LTI_MESSAGE_TYPE_BASIC);
    request.setParameter(LTIRequest.LTI_CONSUMER_KEY, key1.getKeyKey());
    request.setParameter(LTIRequest.LTI_CONTEXT_ID, context1.getContextKey());
    request.setParameter(LTIRequest.LTI_CONTEXT_TITLE, "AZ context 1");
    request.setParameter(LTIRequest.LTI_LINK_ID, link1.getLinkKey());
    request.setParameter(LTIRequest.LTI_LINK_TITLE, "AZ link 1");
    request.setParameter(LTIRequest.LTI_USER_ID, user1.getUserKey());
    request.setParameter(LTIRequest.LTI_USER_NAME_FULL, "Aaron Zeckoski");
    request.setParameter(LTIRequest.LTI_USER_EMAIL, "azeckoski@fake.email.com");
    request.setParameter(LTIRequest.LTI_USER_ROLES, "Administrator,Instructor,Learner");
    request.setParameter(LTIRequest.LTI_SOURCEDID, "new_sourcedid_AZ");
    request.setParameter(LTIRequest.LTI_SERVICE, service11.getServiceKey());
    ltiRequest = new LTIRequest(request, allRepositories, true);
    assertTrue(ltiRequest.isLoaded());
    assertTrue(ltiRequest.isComplete());
    assertTrue(ltiRequest.isUpdated());
    assertEquals(2, ltiRequest.getUserRoleNumber());
    assertNotNull(ltiRequest.getLtiVersion());
    assertNotNull(ltiRequest.getLtiMessageType());
    assertNotNull(ltiRequest.getLtiConsumerKey());
    assertNotNull(ltiRequest.getKey());
    assertNotNull(ltiRequest.getContext());
    assertNotNull(ltiRequest.getLink());
    assertNotNull(ltiRequest.getUser());
    assertNotNull(ltiRequest.getMembership());
    assertNotNull(ltiRequest.getResult());
    assertNotNull(ltiRequest.getService());

    // testing inserting all new data (except key of course)
    request = new MockHttpServletRequest(); // LTI request (gaps)
    request.setParameter(LTIRequest.LTI_VERSION, LTIRequest.LTI_VERSION_1P0);
    request.setParameter(LTIRequest.LTI_MESSAGE_TYPE, LTIRequest.LTI_MESSAGE_TYPE_BASIC);
    request.setParameter(LTIRequest.LTI_CONSUMER_KEY, key5.getKeyKey());
    request.setParameter(LTIRequest.LTI_CONTEXT_ID, "context 5555");
    request.setParameter(LTIRequest.LTI_CONTEXT_TITLE, "AZ context 5555");
    request.setParameter(LTIRequest.LTI_LINK_ID, "link 5555");
    request.setParameter(LTIRequest.LTI_LINK_TITLE, "AZ link 5555");
    request.setParameter(LTIRequest.LTI_USER_ID, "rzeckoski");
    request.setParameter(LTIRequest.LTI_USER_NAME_FULL, "Rebecca Zeckoski");
    request.setParameter(LTIRequest.LTI_USER_EMAIL, "rzeckoski@fake.email.com");
    request.setParameter(LTIRequest.LTI_USER_ROLES,
            "Mentor/Advisor,Instructor/GuestInstructor,TeachingAssistant/TeachingAssistant");
    request.setParameter(LTIRequest.LTI_SOURCEDID, "RZ_new_sourcedid");
    request.setParameter(LTIRequest.LTI_SERVICE, "RZ_grading");
    ltiRequest = new LTIRequest(request, allRepositories, true);
    assertTrue(ltiRequest.isLoaded());
    assertTrue(ltiRequest.isComplete());
    assertTrue(ltiRequest.isUpdated());
    assertNotNull(ltiRequest.getLtiVersion());
    assertNotNull(ltiRequest.getLtiMessageType());
    assertNotNull(ltiRequest.getLtiConsumerKey());
    assertNotNull(ltiRequest.getKey());
    assertNotNull(ltiRequest.getContext());
    assertNotNull(ltiRequest.getLink());
    assertNotNull(ltiRequest.getUser());
    assertNotNull(ltiRequest.getMembership());
    assertNotNull(ltiRequest.getResult());
    assertNotNull(ltiRequest.getService());
}

From source file:fr.paris.lutece.portal.web.user.AdminUserJspBeanTest.java

public void testDoModifyAdminUserSuccess() throws AccessDeniedException, UserNotSignedException {
    AdminUser userToModify = getUserToModify();
    try {//from  w w w . j  a  v a 2  s.  c  o  m
        AdminUserJspBean bean = new AdminUserJspBean();
        MockHttpServletRequest request = new MockHttpServletRequest();
        request = new MockHttpServletRequest();
        AdminAuthenticationService.getInstance().registerUser(request, AdminUserHome.findUserByLogin("admin"));
        request.addParameter("id_user", Integer.toString(userToModify.getUserId()));
        final String modifiedName = userToModify.getAccessCode() + "_mod";
        request.addParameter("access_code", modifiedName);
        request.addParameter("last_name", modifiedName);
        request.addParameter("first_name", modifiedName);
        request.addParameter("email", userToModify.getEmail());
        request.addParameter("status", Integer.toString(AdminUser.NOT_ACTIVE_CODE));
        request.addParameter("language", Locale.KOREA.toString());
        request.setParameter(SecurityTokenService.PARAMETER_TOKEN,
                SecurityTokenService.getInstance().getToken(request, "jsp/admin/user/ModifyUser.jsp"));
        bean.doModifyAdminUser(request);
        AdminMessage message = AdminMessageService.getMessage(request);
        assertNull(message);
        AdminUser stored = AdminUserHome.findByPrimaryKey(userToModify.getUserId());
        assertNotNull(stored);
        assertEquals(modifiedName, stored.getAccessCode());
        assertEquals(modifiedName, stored.getFirstName());
        assertEquals(modifiedName, stored.getLastName());
        assertEquals(AdminUser.NOT_ACTIVE_CODE, stored.getStatus());
        assertEquals(Locale.KOREA.toString().toLowerCase(), stored.getLocale().toString().toLowerCase());
    } finally {
        disposeOfUser(userToModify);
    }
}

From source file:fr.paris.lutece.portal.web.user.AdminUserJspBeanTest.java

public void testDoModifyAdminUserInvalidToken() throws AccessDeniedException, UserNotSignedException {
    AdminUser userToModify = getUserToModify();
    try {/*from  w w w  .j  a  v a2 s .c  o  m*/
        AdminUserJspBean bean = new AdminUserJspBean();
        MockHttpServletRequest request = new MockHttpServletRequest();
        request = new MockHttpServletRequest();
        AdminAuthenticationService.getInstance().registerUser(request, AdminUserHome.findUserByLogin("admin"));
        request.addParameter("id_user", Integer.toString(userToModify.getUserId()));
        final String modifiedName = userToModify.getAccessCode() + "_mod";
        request.addParameter("access_code", modifiedName);
        request.addParameter("last_name", modifiedName);
        request.addParameter("first_name", modifiedName);
        request.addParameter("email", userToModify.getEmail());
        request.addParameter("status", Integer.toString(AdminUser.NOT_ACTIVE_CODE));
        request.addParameter("language", Locale.KOREA.toString());
        request.setParameter(SecurityTokenService.PARAMETER_TOKEN,
                SecurityTokenService.getInstance().getToken(request, "jsp/admin/user/ModifyUser.jsp") + "b");
        bean.doModifyAdminUser(request);
        fail("Should have thrown ");
    } catch (AccessDeniedException e) {
        AdminUser stored = AdminUserHome.findByPrimaryKey(userToModify.getUserId());
        assertNotNull(stored);
        assertEquals(userToModify.getAccessCode(), stored.getAccessCode());
        assertEquals(userToModify.getFirstName(), stored.getFirstName());
        assertEquals(userToModify.getLastName(), stored.getLastName());
        assertEquals(AdminUser.ACTIVE_CODE, stored.getStatus());
        assertEquals(LocaleService.getDefault(), stored.getLocale());
    } finally {
        disposeOfUser(userToModify);
    }
}

From source file:fr.paris.lutece.portal.web.user.AdminUserJspBeanTest.java

public void testDoModifyAdminUser() throws AccessDeniedException, UserNotSignedException {
    AdminUser userToModify = getUserToModify();
    try {/* w ww  .ja  v  a  2 s  . co m*/
        AdminUserJspBean bean = new AdminUserJspBean();
        MockHttpServletRequest request = new MockHttpServletRequest();
        request.getSession(true).setAttribute("lutece_admin_user",
                getLevel1AdminUserWithCORE_USERS_MANAGEMENTRight());
        request.addParameter("id_user", Integer.toString(userToModify.getUserId()));
        try {
            bean.doModifyAdminUser(request);
            fail("Should not be able to modify a user with a lower level");
        } catch (AccessDeniedException e) {
        }

        request = new MockHttpServletRequest();
        AdminAuthenticationService.getInstance().registerUser(request, AdminUserHome.findUserByLogin("admin"));
        request.addParameter("id_user", Integer.toString(userToModify.getUserId()));
        request.setParameter(SecurityTokenService.PARAMETER_TOKEN,
                SecurityTokenService.getInstance().getToken(request, "jsp/admin/user/ModifyUser.jsp"));
        bean.doModifyAdminUser(request);
        AdminMessage message = AdminMessageService.getMessage(request);
        assertNotNull(message);
        assertEquals(I18nService.getLocalizedString(Messages.MANDATORY_FIELDS, Locale.FRENCH),
                message.getText(Locale.FRENCH));

        final String modifiedName = userToModify.getAccessCode() + "_mod";

        request = new MockHttpServletRequest();
        AdminAuthenticationService.getInstance().registerUser(request, AdminUserHome.findUserByLogin("admin"));
        request.addParameter("id_user", Integer.toString(userToModify.getUserId()));
        request.addParameter("access_code", modifiedName);
        request.setParameter(SecurityTokenService.PARAMETER_TOKEN,
                SecurityTokenService.getInstance().getToken(request, "jsp/admin/user/ModifyUser.jsp"));
        bean.doModifyAdminUser(request);
        message = AdminMessageService.getMessage(request);
        assertNotNull(message);
        assertEquals(I18nService.getLocalizedString(Messages.MANDATORY_FIELDS, Locale.FRENCH),
                message.getText(Locale.FRENCH));

        request = new MockHttpServletRequest();
        AdminAuthenticationService.getInstance().registerUser(request, AdminUserHome.findUserByLogin("admin"));
        request.addParameter("id_user", Integer.toString(userToModify.getUserId()));
        request.addParameter("access_code", modifiedName);
        request.addParameter("last_name", modifiedName);
        request.setParameter(SecurityTokenService.PARAMETER_TOKEN,
                SecurityTokenService.getInstance().getToken(request, "jsp/admin/user/ModifyUser.jsp"));
        bean.doModifyAdminUser(request);
        message = AdminMessageService.getMessage(request);
        assertNotNull(message);
        assertEquals(I18nService.getLocalizedString(Messages.MANDATORY_FIELDS, Locale.FRENCH),
                message.getText(Locale.FRENCH));

        request = new MockHttpServletRequest();
        AdminAuthenticationService.getInstance().registerUser(request, AdminUserHome.findUserByLogin("admin"));
        request.addParameter("id_user", Integer.toString(userToModify.getUserId()));
        request.addParameter("access_code", modifiedName);
        request.addParameter("last_name", modifiedName);
        request.addParameter("first_name", modifiedName);
        request.setParameter(SecurityTokenService.PARAMETER_TOKEN,
                SecurityTokenService.getInstance().getToken(request, "jsp/admin/user/ModifyUser.jsp"));
        bean.doModifyAdminUser(request);
        message = AdminMessageService.getMessage(request);
        assertNotNull(message);
        assertEquals(I18nService.getLocalizedString(Messages.MANDATORY_FIELDS, Locale.FRENCH),
                message.getText(Locale.FRENCH));

        request = new MockHttpServletRequest();
        AdminAuthenticationService.getInstance().registerUser(request, AdminUserHome.findUserByLogin("admin"));
        request.addParameter("id_user", Integer.toString(userToModify.getUserId()));
        request.addParameter("access_code", modifiedName);
        request.addParameter("last_name", modifiedName);
        request.addParameter("first_name", modifiedName);
        request.addParameter("email", "  ");
        request.setParameter(SecurityTokenService.PARAMETER_TOKEN,
                SecurityTokenService.getInstance().getToken(request, "jsp/admin/user/ModifyUser.jsp"));
        bean.doModifyAdminUser(request);
        message = AdminMessageService.getMessage(request);
        assertNotNull(message);
        assertEquals(I18nService.getLocalizedString(Messages.MANDATORY_FIELDS, Locale.FRENCH),
                message.getText(Locale.FRENCH));

        request = new MockHttpServletRequest();
        AdminAuthenticationService.getInstance().registerUser(request, AdminUserHome.findUserByLogin("admin"));
        request.addParameter("id_user", Integer.toString(userToModify.getUserId()));
        request.addParameter("access_code", "admin");
        request.addParameter("last_name", modifiedName);
        request.addParameter("first_name", modifiedName);
        request.addParameter("email", modifiedName + "@lutece.fr");
        request.setParameter(SecurityTokenService.PARAMETER_TOKEN,
                SecurityTokenService.getInstance().getToken(request, "jsp/admin/user/ModifyUser.jsp"));
        bean.doModifyAdminUser(request);
        message = AdminMessageService.getMessage(request);
        assertNotNull(message);
        assertEquals(I18nService.getLocalizedString("portal.users.message.user.accessCodeAlreadyUsed",
                Locale.FRENCH), message.getText(Locale.FRENCH));

        request = new MockHttpServletRequest();
        AdminAuthenticationService.getInstance().registerUser(request, AdminUserHome.findUserByLogin("admin"));
        request.addParameter("id_user", Integer.toString(userToModify.getUserId()));
        request.addParameter("access_code", modifiedName);
        request.addParameter("last_name", modifiedName);
        request.addParameter("first_name", modifiedName);
        request.addParameter("email", "admin@lutece.fr");
        request.setParameter(SecurityTokenService.PARAMETER_TOKEN,
                SecurityTokenService.getInstance().getToken(request, "jsp/admin/user/ModifyUser.jsp"));
        bean.doModifyAdminUser(request);
        message = AdminMessageService.getMessage(request);
        assertNotNull(message);
        assertEquals(I18nService.getLocalizedString("portal.users.message.user.accessEmailUsed", Locale.FRENCH),
                message.getText(Locale.FRENCH));
    } finally {
        disposeOfUser(userToModify);
    }
}

From source file:fr.paris.lutece.portal.web.user.AdminUserJspBeanTest.java

public void testDoCreateAdminUserInvalidToken()
        throws PasswordResetException, AccessDeniedException, UserNotSignedException {
    AdminUserJspBean bean = new AdminUserJspBean();
    MockHttpServletRequest request = new MockHttpServletRequest();
    String randomUserName = "User_" + new SecureRandom().nextLong();
    try {/*from   w  w w  .  j  a v  a  2  s.  c  o  m*/
        request.addParameter("access_code", randomUserName);
        request.addParameter("last_name", randomUserName);
        request.addParameter("first_name", randomUserName);
        request.addParameter("email", randomUserName + "@lutece.fr");
        request.addParameter("user_level", "0");
        request.addParameter("first_password", randomUserName);
        request.addParameter("second_password", randomUserName);
        request.addParameter("status", Integer.toString(AdminUser.ACTIVE_CODE)); // NPE if absent
        request.addParameter("language", "fr"); // NPE if absent
        request.getSession(true).setAttribute("lutece_admin_user",
                getLevel0AdminUserWithCORE_USERS_MANAGEMENTRight());
        request.setParameter(SecurityTokenService.PARAMETER_TOKEN,
                SecurityTokenService.getInstance().getToken(request, "jsp/admin/user/CreateUser.jsp") + "b");
        bean.init(request, "CORE_USERS_MANAGEMENT");
        bean.doCreateAdminUser(request);
        fail("Should have thrown");
    } catch (AccessDeniedException e) {
        AdminMessage message = AdminMessageService.getMessage(request);
        assertNull(message);
        AdminUser createdUser = AdminUserHome.findUserByLogin(randomUserName);
        assertNull(createdUser);
    } finally {
        AdminUser user = AdminUserHome.findUserByLogin(randomUserName);
        if (user != null) {
            AdminUserHome.remove(user.getUserId());
        }
    }
}

From source file:org.openmrs.module.htmlformentry.WorkflowStateTagTest.java

@Test
public void shouldNotEnrollInProgramOnEditIfPatientAlreadyEnrolledInProgram() throws Exception {

    // create a program enrollment for test patient
    PatientProgram patientProgram = new PatientProgram();
    patientProgram.setPatient(patient);/* w  ww  . ja va  2s. c o m*/
    patientProgram.setProgram(Context.getProgramWorkflowService().getProgram(10));
    patientProgram.setDateEnrolled(PAST_DATE);
    Context.getProgramWorkflowService().savePatientProgram(patientProgram);

    new RegressionTestHelper() {

        @Override
        public String getFormName() {
            return XML_FORM_NAME;
        }

        @Override
        public String[] widgetLabels() {
            return new String[] { "Date:", "Location:", "Provider:", "State:" };
        }

        @Override
        public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) {
            request.addParameter(widgets.get("Location:"), "2");
            request.addParameter(widgets.get("Provider:"), "502");

            // on first submit, don't submit any state
            request.addParameter(widgets.get("Date:"), dateAsString(DATE));
            request.addParameter(widgets.get("State:"), "");
        }

        @Override
        public void testResults(SubmissionResults results) {
            results.assertNoErrors();

            // sanity check
            Assert.assertEquals(1,
                    Context.getProgramWorkflowService().getPatientPrograms(patient,
                            Context.getProgramWorkflowService().getProgram(10), null, null, null, null, false)
                            .size());

            // sanity check: program should not yet be in the start state
            ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(START_STATE);
            PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, DATE);
            Assert.assertNull(patientProgram);
        }

        public boolean doEditEncounter() {
            return true;
        }

        public String[] widgetLabelsForEdit() {
            return new String[] { "Date:", "Location:", "Provider:", "State:" };
        }

        public void setupEditRequest(MockHttpServletRequest request, Map<String, String> widgets) {
            request.setParameter(widgets.get("Location:"), "2");
            request.setParameter(widgets.get("Provider:"), "502");
            request.setParameter(widgets.get("Date:"), dateAsString(DATE));
            request.setParameter(widgets.get("State:"), START_STATE);
        }

        public void testEditedResults(SubmissionResults results) {
            results.assertNoErrors();

            Assert.assertEquals(1,
                    Context.getProgramWorkflowService().getPatientPrograms(patient,
                            Context.getProgramWorkflowService().getProgram(10), null, null, null, null, false)
                            .size());

            // double check that state has been set
            ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(START_STATE);
            PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, DATE);
            PatientState patientState = getPatientState(patientProgram, state, DATE);

            Assert.assertNotNull(patientProgram);
            Assert.assertEquals(dateAsString(DATE), dateAsString(patientState.getStartDate()));
            Assert.assertEquals(dateAsString(PAST_DATE), dateAsString(patientProgram.getDateEnrolled()));
        }
    }.run();
}

From source file:org.openmrs.module.htmlformentry.WorkflowStateTagTest.java

@Test
public void shouldAllowToEditStateWithSameDate() throws Exception {
    new RegressionTestHelper() {

        @Override/* ww w  .jav a2s. c  o m*/
        public String getFormName() {
            return XML_FORM_NAME;
        }

        @Override
        public String[] widgetLabels() {
            return new String[] { "Date:", "Location:", "Provider:", "State:" };
        }

        @Override
        public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) {
            request.addParameter(widgets.get("Location:"), "2");
            request.addParameter(widgets.get("Provider:"), "502");
            request.addParameter(widgets.get("Date:"), dateAsString(DATE));
            request.addParameter(widgets.get("State:"), START_STATE);
        }

        @Override
        public void testResults(SubmissionResults results) {
            results.assertNoErrors();
            results.assertEncounterCreated();
            results.assertProvider(502);
            results.assertLocation(2);

            ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(START_STATE);
            PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, DATE);
            PatientState patientState = getPatientState(patientProgram, state, DATE);
            Assert.assertNotNull(patientProgram);
            Assert.assertEquals(dateAsString(DATE), dateAsString(patientState.getStartDate()));
            Assert.assertNull(patientState.getEndDate());
        }

        public boolean doViewEncounter() {
            return true;
        }

        public void testViewingEncounter(Encounter encounter, String html) {
            Assert.assertTrue("View should contain current state: " + html, html.contains("START STATE"));
        }

        public boolean doEditEncounter() {
            return true;
        }

        public String[] widgetLabelsForEdit() {
            return new String[] { "Date:", "Location:", "Provider:", "State:" };
        }

        public void setupEditRequest(MockHttpServletRequest request, Map<String, String> widgets) {
            request.setParameter(widgets.get("Location:"), "2");
            request.setParameter(widgets.get("Provider:"), "502");
            request.setParameter(widgets.get("Date:"), dateAsString(DATE));
            request.setParameter(widgets.get("State:"), MIDDLE_STATE);
        }

        public void testEditedResults(SubmissionResults results) {
            results.assertNoErrors();

            ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(MIDDLE_STATE);
            PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, DATE);
            PatientState patientState = getPatientState(patientProgram, state, DATE);
            Assert.assertNotNull(patientProgram);
            Assert.assertEquals(dateAsString(DATE), dateAsString(patientState.getStartDate()));
            Assert.assertNull(patientState.getEndDate());

            // assert that the other state no longer exists
            state = Context.getProgramWorkflowService().getStateByUuid(START_STATE);
            patientState = getPatientState(patientProgram, state, DATE);
            Assert.assertNull(patientState);
        }
    }.run();
}

From source file:org.openmrs.module.htmlformentry.WorkflowStateTagTest.java

@Test
public void shouldMoveProgramEnrollmentAndProgramStateStartEarlier() throws Exception {
    new RegressionTestHelper() {

        @Override/*from   w w  w. j  ava 2s  .  c  om*/
        public String getFormName() {
            return XML_FORM_NAME;
        }

        @Override
        public String[] widgetLabels() {
            return new String[] { "Date:", "Location:", "Provider:", "State:" };
        }

        @Override
        public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) {
            request.addParameter(widgets.get("Location:"), "2");
            request.addParameter(widgets.get("Provider:"), "502");
            request.addParameter(widgets.get("Date:"), dateAsString(DATE));
            request.addParameter(widgets.get("State:"), START_STATE);
        }

        @Override
        public void testResults(SubmissionResults results) {
            results.assertNoErrors();
            results.assertEncounterCreated();
            results.assertProvider(502);
            results.assertLocation(2);

            ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(START_STATE);
            PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, DATE);
            PatientState patientState = getPatientState(patientProgram, state, DATE);
            Assert.assertNotNull(patientProgram);
            Assert.assertEquals(dateAsString(DATE), dateAsString(patientState.getStartDate()));
            Assert.assertNull(patientState.getEndDate());
        }

        public boolean doViewEncounter() {
            return true;
        }

        public void testViewingEncounter(Encounter encounter, String html) {
            Assert.assertTrue("View should contain current state: " + html, html.contains("START STATE"));
        }

        public boolean doEditEncounter() {
            return true;
        }

        public String[] widgetLabelsForEdit() {
            return new String[] { "Date:", "Location:", "Provider:", "State:" };
        }

        public void setupEditRequest(MockHttpServletRequest request, Map<String, String> widgets) {
            request.setParameter(widgets.get("Location:"), "2");
            request.setParameter(widgets.get("Provider:"), "502");
            request.setParameter(widgets.get("Date:"), dateAsString(PAST_DATE));
            request.setParameter(widgets.get("State:"), MIDDLE_STATE);
        }

        public void testEditedResults(SubmissionResults results) {
            ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(MIDDLE_STATE);
            PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, DATE);
            PatientState patientState = getPatientState(patientProgram, state, DATE);
            Assert.assertNotNull(patientProgram);

            // assert that the start dates of the program and state have been moved
            Assert.assertEquals(dateAsString(PAST_DATE), dateAsString(patientProgram.getDateEnrolled()));
            Assert.assertEquals(dateAsString(PAST_DATE), dateAsString(patientState.getStartDate()));
            Assert.assertNull(patientState.getEndDate());

            // assert that the other state no longer exists
            state = Context.getProgramWorkflowService().getStateByUuid(START_STATE);
            patientState = getPatientState(patientProgram, state, DATE);
            Assert.assertNull(patientState);
        }

    }.run();
}

From source file:org.openmrs.module.htmlformentry.WorkflowStateTagTest.java

@Test
public void shouldMoveProgramStateStartLater() throws Exception {
    new RegressionTestHelper() {

        @Override//from  ww  w  .j a v a2  s  . co m
        public String getFormName() {
            return XML_FORM_NAME;
        }

        @Override
        public String[] widgetLabels() {
            return new String[] { "Date:", "Location:", "Provider:", "State:" };
        }

        @Override
        public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) {
            request.addParameter(widgets.get("Location:"), "2");
            request.addParameter(widgets.get("Provider:"), "502");
            request.addParameter(widgets.get("Date:"), dateAsString(PAST_DATE));
            request.addParameter(widgets.get("State:"), START_STATE);
        }

        @Override
        public void testResults(SubmissionResults results) {
            results.assertNoErrors();
            results.assertEncounterCreated();
            results.assertProvider(502);
            results.assertLocation(2);

            ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(START_STATE);
            PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, PAST_DATE);
            PatientState patientState = getPatientState(patientProgram, state, PAST_DATE);
            Assert.assertNotNull(patientProgram);
            Assert.assertEquals(dateAsString(PAST_DATE), dateAsString(patientState.getStartDate()));
            Assert.assertNull(patientState.getEndDate());
        }

        public boolean doViewEncounter() {
            return true;
        }

        public void testViewingEncounter(Encounter encounter, String html) {
            Assert.assertTrue("View should contain current state: " + html, html.contains("START STATE"));
        }

        public boolean doEditEncounter() {
            return true;
        }

        public String[] widgetLabelsForEdit() {
            return new String[] { "Date:", "Location:", "Provider:", "State:" };
        }

        public void setupEditRequest(MockHttpServletRequest request, Map<String, String> widgets) {
            request.setParameter(widgets.get("Location:"), "2");
            request.setParameter(widgets.get("Provider:"), "502");
            request.setParameter(widgets.get("Date:"), dateAsString(DATE));
            request.setParameter(widgets.get("State:"), MIDDLE_STATE);
        }

        public void testEditedResults(SubmissionResults results) {
            results.assertNoErrors();

            ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(MIDDLE_STATE);
            PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, DATE);
            PatientState patientState = getPatientState(patientProgram, state, DATE);
            Assert.assertNotNull(patientProgram);

            // assert that the start date of the program is the same
            Assert.assertEquals(dateAsString(PAST_DATE), dateAsString(patientProgram.getDateEnrolled()));

            // assert that the start date of the state has moved
            Assert.assertEquals(dateAsString(DATE), dateAsString(patientState.getStartDate()));
            Assert.assertNull(patientState.getEndDate());

            // assert that the other state no longer exists
            state = Context.getProgramWorkflowService().getStateByUuid(START_STATE);
            patientState = getPatientState(patientProgram, state, DATE);
            Assert.assertNull(patientState);
        }

    }.run();
}

From source file:org.openmrs.module.htmlformentry.WorkflowStateTagTest.java

@Test
public void shouldEndExistingStatesAsNeededWhenShiftingStateEarlier() throws Exception {

    transitionToState(START_STATE, FURTHER_PAST_DATE);

    new RegressionTestHelper() {

        @Override/*from   w  w  w . j a  v  a 2s .  c o  m*/
        public String getFormName() {
            return XML_FORM_NAME;
        }

        @Override
        public String[] widgetLabels() {
            return new String[] { "Date:", "Location:", "Provider:", "State:" };
        }

        @Override
        public void setupRequest(MockHttpServletRequest request, Map<String, String> widgets) {
            request.addParameter(widgets.get("Location:"), "2");
            request.addParameter(widgets.get("Provider:"), "502");
            request.addParameter(widgets.get("Date:"), dateAsString(DATE));
            request.addParameter(widgets.get("State:"), END_STATE);
        }

        @Override
        public void testResults(SubmissionResults results) {
            results.assertNoErrors();
            results.assertEncounterCreated();
            results.assertProvider(502);
            results.assertLocation(2);

            // do a sanity check here
            ProgramWorkflowState state = Context.getProgramWorkflowService().getStateByUuid(END_STATE);
            PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), state, DATE);
            PatientState patientState = getPatientState(patientProgram, state, DATE);
            Assert.assertNotNull(patientProgram);
            Assert.assertEquals(dateAsString(DATE), dateAsString(patientState.getStartDate()));
            Assert.assertNull(patientState.getEndDate());
        }

        public boolean doViewEncounter() {
            return true;
        }

        public void testViewingEncounter(Encounter encounter, String html) {
            Assert.assertTrue("View should contain current state: " + html, html.contains("END STATE"));
        }

        public boolean doEditEncounter() {
            return true;
        }

        public String[] widgetLabelsForEdit() {
            return new String[] { "Date:", "Location:", "Provider:", "State:" };
        }

        public void setupEditRequest(MockHttpServletRequest request, Map<String, String> widgets) {
            request.setParameter(widgets.get("Location:"), "2");
            request.setParameter(widgets.get("Provider:"), "502");
            request.setParameter(widgets.get("Date:"), dateAsString(PAST_DATE));
            request.setParameter(widgets.get("State:"), MIDDLE_STATE);
        }

        public void testEditedResults(SubmissionResults results) {
            results.assertNoErrors();

            ProgramWorkflowState startState = Context.getProgramWorkflowService().getStateByUuid(START_STATE);
            ProgramWorkflowState middleState = Context.getProgramWorkflowService().getStateByUuid(MIDDLE_STATE);

            PatientProgram patientProgram = getPatientProgramByState(results.getPatient(), startState,
                    FURTHER_PAST_DATE);
            Assert.assertNotNull(patientProgram);

            // assert that the patient program only has two states
            Assert.assertEquals(2, patientProgram.getStates().size());

            // verify that the start state now ends on PAST_DATE
            PatientState patientState = getPatientState(patientProgram, startState, FURTHER_PAST_DATE);
            Assert.assertNotNull(patientState);
            Assert.assertEquals(dateAsString(FURTHER_PAST_DATE), dateAsString(patientState.getStartDate()));
            Assert.assertEquals(dateAsString(PAST_DATE), dateAsString(patientState.getEndDate()));

            // verify that the middle state starts on PAST_DATE and has no current end date
            patientState = getPatientState(patientProgram, middleState, PAST_DATE);
            Assert.assertNotNull(patientState);
            Assert.assertEquals(dateAsString(PAST_DATE), dateAsString(patientState.getStartDate()));
            Assert.assertNull(patientState.getEndDate());
        }

    }.run();
}