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:fr.paris.lutece.portal.web.user.AdminUserJspBeanTest.java

public void testDoModifyAdminUserRights() throws AccessDeniedException, UserNotSignedException {
    AdminUserJspBean bean = new AdminUserJspBean();
    MockHttpServletRequest request = new MockHttpServletRequest();
    AdminUser user = getUserToModify();//from  w w w. j  a  v  a 2s .  c  o m
    try {
        for (Right right : RightHome.getRightsList()) {
            if ("CORE_USERS_MANAGEMENT".equals(right.getId())) {
                assertTrue(AdminUserHome.hasRight(user, right.getId()));
            } else {
                assertFalse(AdminUserHome.hasRight(user, right.getId()));
            }
        }
        AdminAuthenticationService.getInstance().registerUser(request, user);
        request.setParameter("id_user", Integer.toString(user.getUserId()));
        for (Right right : RightHome.getRightsList()) {
            request.addParameter("right", right.getId());
        }
        request.addParameter(SecurityTokenService.PARAMETER_TOKEN,
                SecurityTokenService.getInstance().getToken(request, "jsp/admin/user/ManageUserRights.jsp"));
        bean.doModifyAdminUserRights(request);
        assertNull(AdminMessageService.getMessage(request));
        AdminUser stored = AdminUserHome.findByPrimaryKey(user.getUserId());
        for (Right right : RightHome.getRightsList()) {
            assertTrue(AdminUserHome.hasRight(stored, right.getId()));
        }
    } finally {
        disposeOfUser(user);
    }
}

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

public void testDoModifyAdminUserRightsNoToken() throws AccessDeniedException, UserNotSignedException {
    AdminUserJspBean bean = new AdminUserJspBean();
    MockHttpServletRequest request = new MockHttpServletRequest();
    AdminUser user = getUserToModify();/*from w w  w  .j ava2  s  .com*/
    try {
        for (Right right : RightHome.getRightsList()) {
            if ("CORE_USERS_MANAGEMENT".equals(right.getId())) {
                assertTrue(AdminUserHome.hasRight(user, right.getId()));
            } else {
                assertFalse(AdminUserHome.hasRight(user, right.getId()));
            }
        }
        AdminAuthenticationService.getInstance().registerUser(request, user);
        request.setParameter("id_user", Integer.toString(user.getUserId()));
        for (Right right : RightHome.getRightsList()) {
            request.addParameter("right", right.getId());
        }
        bean.doModifyAdminUserRights(request);
        fail("Should have thrown");
    } catch (AccessDeniedException e) {
        AdminUser stored = AdminUserHome.findByPrimaryKey(user.getUserId());
        for (Right right : RightHome.getRightsList()) {
            if ("CORE_USERS_MANAGEMENT".equals(right.getId())) {
                assertTrue(AdminUserHome.hasRight(stored, right.getId()));
            } else {
                assertFalse(AdminUserHome.hasRight(stored, right.getId()));
            }
        }
    } finally {
        disposeOfUser(user);
    }
}

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

public void testDoModifyAdminUserRightsInvalidToken() throws AccessDeniedException, UserNotSignedException {
    AdminUserJspBean bean = new AdminUserJspBean();
    MockHttpServletRequest request = new MockHttpServletRequest();
    AdminUser user = getUserToModify();/* w ww.  j a  v  a 2  s .c  o  m*/
    try {
        for (Right right : RightHome.getRightsList()) {
            if ("CORE_USERS_MANAGEMENT".equals(right.getId())) {
                assertTrue(AdminUserHome.hasRight(user, right.getId()));
            } else {
                assertFalse(AdminUserHome.hasRight(user, right.getId()));
            }
        }
        AdminAuthenticationService.getInstance().registerUser(request, user);
        request.setParameter("id_user", Integer.toString(user.getUserId()));
        for (Right right : RightHome.getRightsList()) {
            request.addParameter("right", right.getId());
        }
        request.addParameter(SecurityTokenService.PARAMETER_TOKEN,
                SecurityTokenService.getInstance().getToken(request, "jsp/admin/user/ManageUserRights.jsp")
                        + "b");
        bean.doModifyAdminUserRights(request);
        fail("Should have thrown");
    } catch (AccessDeniedException e) {
        AdminUser stored = AdminUserHome.findByPrimaryKey(user.getUserId());
        for (Right right : RightHome.getRightsList()) {
            if ("CORE_USERS_MANAGEMENT".equals(right.getId())) {
                assertTrue(AdminUserHome.hasRight(stored, right.getId()));
            } else {
                assertFalse(AdminUserHome.hasRight(stored, right.getId()));
            }
        }
    } finally {
        disposeOfUser(user);
    }
}

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

@Test(expected = FormEntryException.class)
public void shouldFailIfAttemptingToShiftStateStartDatePastEndDate() throws Exception {

    transitionToState(START_STATE, FURTHER_PAST_DATE);
    transitionToState(END_STATE, PAST_DATE);

    new RegressionTestHelper() {

        @Override// w w  w  . j a va 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(FURTHER_PAST_DATE));
            request.addParameter(widgets.get("State:"), "");
        }

        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:"), START_STATE);
        }
    }.run();
}

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

@Test
public void shouldShiftExistingStateEndDateFowardAsNeededWhenShiftingStateLater() throws Exception {

    transitionToState(START_STATE, FURTHER_PAST_DATE);

    new RegressionTestHelper() {

        @Override/*from  w  w w .  j a  v  a 2 s .  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(PAST_DATE));
            request.addParameter(widgets.get("State:"), END_STATE);
        }

        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(DATE));
            request.setParameter(widgets.get("State:"), END_STATE);
        }

        @SuppressWarnings("deprecation")
        public void testEditedResults(SubmissionResults results) {
            results.assertNoErrors();

            ProgramWorkflow workflow = Context.getProgramWorkflowService().getWorkflow(100);

            ProgramWorkflowState startState = Context.getProgramWorkflowService().getStateByUuid(START_STATE);
            ProgramWorkflowState endState = Context.getProgramWorkflowService().getStateByUuid(END_STATE);

            PatientProgram patientProgram = Context.getProgramWorkflowService()
                    .getPatientPrograms(patient, workflow.getProgram(), null, null, null, null, false).get(0);
            Assert.assertNotNull(patientProgram);

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

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

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

    }.run();
}

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

@Test
public void shouldRemoveExistingStatesAsNeededWhenShiftingStateEarlier() throws Exception {

    transitionToState(START_STATE, FURTHER_PAST_DATE);
    transitionToState(MIDDLE_STATE, PAST_DATE);

    new RegressionTestHelper() {

        @Override/* w w w.  j a  va 2s  .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(DATE));
            request.addParameter(widgets.get("State:"), END_STATE);
        }

        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:"), END_STATE);
        }

        @SuppressWarnings("deprecation")
        public void testEditedResults(SubmissionResults results) {
            results.assertNoErrors();

            ProgramWorkflow workflow = Context.getProgramWorkflowService().getWorkflow(100);

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

            PatientProgram patientProgram = Context.getProgramWorkflowService()
                    .getPatientPrograms(patient, workflow.getProgram(), null, null, null, null, false).get(0);
            Assert.assertNotNull(patientProgram);

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

            // verify that the start state
            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 end state starts on PAST_DATE and has no current end date
            patientState = getPatientState(patientProgram, endState, PAST_DATE);
            Assert.assertNotNull(patientState);
            Assert.assertEquals(dateAsString(PAST_DATE), dateAsString(patientState.getStartDate()));
            Assert.assertNull(patientState.getEndDate());

            // verify that the middle state no longer exists
            patientState = getPatientState(patientProgram, middleState, PAST_DATE);
            Assert.assertNull(patientState);
        }

    }.run();
}

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

public void testDoModifyAdminUserWorkgroups() throws AccessDeniedException, UserNotSignedException {
    AdminUserJspBean bean = new AdminUserJspBean();
    MockHttpServletRequest request = new MockHttpServletRequest();
    AdminUser user = getUserToModify();//from   w ww.j  a  va2s. co  m
    AdminWorkgroup workgroup = null;
    try {
        workgroup = new AdminWorkgroup();
        workgroup.setKey(user.getAccessCode());
        workgroup.setDescription(user.getAccessCode());
        AdminWorkgroupHome.create(workgroup);
        assertFalse(AdminWorkgroupHome.isUserInWorkgroup(user, workgroup.getKey()));
        AdminAuthenticationService.getInstance().registerUser(request, user);
        bean.init(request, "CORE_USERS_MANAGEMENT");
        request.setParameter("id_user", Integer.toString(user.getUserId()));
        request.setParameter("workgroup", workgroup.getKey());
        request.setParameter(SecurityTokenService.PARAMETER_TOKEN, SecurityTokenService.getInstance()
                .getToken(request, "jsp/admin/user/ManageUserWorkgroups.jsp"));
        bean.doModifyAdminUserWorkgroups(request);
        assertNull(AdminMessageService.getMessage(request));
        assertTrue(AdminWorkgroupHome.isUserInWorkgroup(user, workgroup.getKey()));
    } finally {
        if (workgroup != null) {
            AdminWorkgroupHome.removeAllUsersForWorkgroup(workgroup.getKey());
            AdminWorkgroupHome.remove(workgroup.getKey());
        }
        disposeOfUser(user);
    }

}

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

public void testDoModifyAdminUserWorkgroupsNoToken() throws AccessDeniedException, UserNotSignedException {
    AdminUserJspBean bean = new AdminUserJspBean();
    MockHttpServletRequest request = new MockHttpServletRequest();
    AdminUser user = getUserToModify();/*  w ww.  jav a  2 s  . co  m*/
    AdminWorkgroup workgroup = null;
    try {
        workgroup = new AdminWorkgroup();
        workgroup.setKey(user.getAccessCode());
        workgroup.setDescription(user.getAccessCode());
        AdminWorkgroupHome.create(workgroup);
        assertFalse(AdminWorkgroupHome.isUserInWorkgroup(user, workgroup.getKey()));
        AdminAuthenticationService.getInstance().registerUser(request, user);
        bean.init(request, "CORE_USERS_MANAGEMENT");
        request.setParameter("id_user", Integer.toString(user.getUserId()));
        request.setParameter("workgroup", workgroup.getKey());
        bean.doModifyAdminUserWorkgroups(request);
        fail("Should have thrown");
    } catch (AccessDeniedException e) {
        assertNull(AdminMessageService.getMessage(request));
        assertFalse(AdminWorkgroupHome.isUserInWorkgroup(user, workgroup.getKey()));
    } finally {
        if (workgroup != null) {
            AdminWorkgroupHome.removeAllUsersForWorkgroup(workgroup.getKey());
            AdminWorkgroupHome.remove(workgroup.getKey());
        }
        disposeOfUser(user);
    }

}

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

public void testDoModifyAdminUserWorkgroupsInvalidToken() throws AccessDeniedException, UserNotSignedException {
    AdminUserJspBean bean = new AdminUserJspBean();
    MockHttpServletRequest request = new MockHttpServletRequest();
    AdminUser user = getUserToModify();/*from  w  ww .j a  v a 2 s  .  com*/
    AdminWorkgroup workgroup = null;
    try {
        workgroup = new AdminWorkgroup();
        workgroup.setKey(user.getAccessCode());
        workgroup.setDescription(user.getAccessCode());
        AdminWorkgroupHome.create(workgroup);
        assertFalse(AdminWorkgroupHome.isUserInWorkgroup(user, workgroup.getKey()));
        AdminAuthenticationService.getInstance().registerUser(request, user);
        bean.init(request, "CORE_USERS_MANAGEMENT");
        request.setParameter("id_user", Integer.toString(user.getUserId()));
        request.setParameter("workgroup", workgroup.getKey());
        request.setParameter(SecurityTokenService.PARAMETER_TOKEN,
                SecurityTokenService.getInstance().getToken(request, "jsp/admin/user/ManageUserWorkgroups.jsp")
                        + "b");
        bean.doModifyAdminUserWorkgroups(request);
        fail("Should have thrown");
    } catch (AccessDeniedException e) {
        assertNull(AdminMessageService.getMessage(request));
        assertFalse(AdminWorkgroupHome.isUserInWorkgroup(user, workgroup.getKey()));
    } finally {
        if (workgroup != null) {
            AdminWorkgroupHome.removeAllUsersForWorkgroup(workgroup.getKey());
            AdminWorkgroupHome.remove(workgroup.getKey());
        }
        disposeOfUser(user);
    }

}

From source file:ltistarter.lti.LTITests.java

@Test
@Transactional//from   w ww  .java2 s .  com
public void testLTIRequest() {
    assertNotNull(ltiDataService);
    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 = ltiDataService.loadLTIDataFromDB(ltiRequest); // 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, ltiDataService, 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, ltiDataService, 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, ltiDataService, 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, ltiDataService, 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());
}