Index: lams_build/lib/lams/lams-learning.jar
===================================================================
diff -u -rf4c79beeec8eea50e99a8d2cde21c27d45aa446d -r0977a832c3e57655f1031778702ce6ea0e122985
Binary files differ
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/learningApplicationContext.xml
===================================================================
diff -u -ra7766445094c16b343aa56dc1f73fd3051cef1db -r0977a832c3e57655f1031778702ce6ea0e122985
--- lams_learning/src/java/org/lamsfoundation/lams/learning/learningApplicationContext.xml (.../learningApplicationContext.xml) (revision a7766445094c16b343aa56dc1f73fd3051cef1db)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/learningApplicationContext.xml (.../learningApplicationContext.xml) (revision 0977a832c3e57655f1031778702ce6ea0e122985)
@@ -43,7 +43,7 @@
REQURIED
.
+ * grouping and gate. This method should be used when we don't have an activity
+ * that is already part of the Hibernate session.
*
+ * @param learner the learner who are running this activity in the design.
+ * @param activity the activity is being run.
+ * @param lesson the lesson this learner is currently in.
+ * @return the url for next activity.
+ */
+ public String completeActivity(User learner,Long activityId,Lesson lesson);
+
+ /**
+ * Complete the activity in the progress engine and delegate to the progress
+ * engine to calculate the next activity in the learning design. This method should
+ * be used when we t have an activity that is already part of the Hibernate session.
+ * It is currently triggered by complete tool session progress from tool.
*
* @param learner the learner who are running this activity in the design.
- * @param activity the activity is being runned.
+ * @param activity the activity is being run.
* @param lesson the lesson this learner is currently in.
* @return the url for next activity.
*/
public String completeActivity(User learner,Activity activity,Lesson lesson);
-
+
/**
* Retrieve all lessons that has been started, suspended or finished. All
* finished but archived lesson should not be loaded.
@@ -136,10 +156,11 @@
/**
* Mark the learner progress as restarting to indicate the current learner
- * has exit the lesson
- * @param progress the current learner progress.
+ * has exit the lesson. Doesn't use the cached progress object in case it
+ *
+ * @param progressId the current learner progress.
*/
- public void exitLesson(LearnerProgress progress);
+ public void exitLesson(Long progressId);
/**
* Returns an activity according to the activity id.
@@ -157,25 +178,52 @@
/**
* Perform random grouping for a list of learners based on the grouping
- * activity.
- * @param groupingActivity the activity that has create grouping.
+ * activity. This method should be used when we don't have an grouping activity
+ * that is already part of the Hibernate session.
+ *
+ * @param groupingActivityId the activity that has create grouping.
* @param learners the list of learners need to be grouped.
*/
public void performGrouping(GroupingActivity groupingActivity, List learners);
+
/**
+ * Perform random grouping for a list of learners based on the grouping
+ * activity. This method should be used when we do have an grouping activity
+ * that is already part of the Hibernate session.
+ * @param groupingActivityId the activity that has create grouping.
+ * @param learners the list of learners need to be grouped.
+ */
+ public void performGrouping(Long groupingActivityId, List learners);
+
+ /**
* Perform random grouping a single learner based on the grouping activity.
- * @param groupingActivity the activity that has create grouping.
+ * @param groupingActivityId the activity that has create grouping.
* @param learner the learner needs to be grouped
*/
- public void performGrouping(GroupingActivity groupingActivity, User learner);
+ public void performGrouping(Long groupingActivityId, User learner);
/**
- * Check up the gate status to go through the gate.
+ * Check up the gate status to go through the gate. This also updates the gate.
+ * This method should be used when we do not have an grouping activity
+ * that is already part of the Hibernate session.
+ * @param gateid the gate that current learner is facing. It could be
+ * synch gate, schedule gate or permission gate.
+ * @param knocker the learner who wants to go through the gate.
+ * @param lessonLearners the entire lesson learners.
+ */
+ public boolean knockGate(Long gateActivityId,User knocker,List lessonLearners);
+
+ /**
+ * Check up the gate status to go through the gate. This also updates the gate.
+ * This method should be used when we do have an grouping activity
+ * that is already part of the Hibernate session.
* @param gate the gate that current learner is facing. It could be
* synch gate, schedule gate or permission gate.
+ * Don't supply the actual gate from the cached web version
+ * as it might be out of date or not attached to the session
* @param knocker the learner who wants to go through the gate.
* @param lessonLearners the entire lesson learners.
*/
- public boolean knockGate(GateActivity gate,User knocker,List lessonLearners);
+ public boolean knockGate(GateActivity gateActivity,User knocker,List lessonLearners);
}
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java
===================================================================
diff -u -r7d5e18b6ddc40f4de3d34eefa114afc297724289 -r0977a832c3e57655f1031778702ce6ea0e122985
--- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 7d5e18b6ddc40f4de3d34eefa114afc297724289)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 0977a832c3e57655f1031778702ce6ea0e122985)
@@ -47,6 +47,7 @@
import org.lamsfoundation.lams.lesson.Lesson;
import org.lamsfoundation.lams.lesson.dao.ILearnerProgressDAO;
import org.lamsfoundation.lams.lesson.dao.ILessonDAO;
+import org.lamsfoundation.lams.lesson.dto.LearnerProgressDTO;
import org.lamsfoundation.lams.lesson.dto.LessonDTO;
import org.lamsfoundation.lams.tool.ToolSession;
import org.lamsfoundation.lams.tool.dao.IToolSessionDAO;
@@ -260,6 +261,14 @@
}
/**
+ * @see org.lamsfoundation.lams.learning.service.ILearnerService#getProgressDTOById(java.lang.Long)
+ */
+ public LearnerProgressDTO getProgressDTOById(Long progressId)
+ {
+ return learnerProgressDAO.getLearnerProgress(progressId).getLearnerProgressData();
+ }
+
+ /**
* @see org.lamsfoundation.lams.learning.service.ILearnerService#chooseActivity(org.lamsfoundation.lams.usermanagement.User, org.lamsfoundation.lams.lesson.Lesson, org.lamsfoundation.lams.learningdesign.Activity)
*/
public LearnerProgress chooseActivity(User learner, Lesson lesson, Activity activity)
@@ -313,19 +322,26 @@
*/
public String completeToolSession(Long toolSessionId, Long learnerId)
{
- User learner = userManagementService.getUserById(new Integer(learnerId.intValue()));
-
//update tool session state in lams
ToolSession toolSession = lamsCoreToolService.getToolSessionById(toolSessionId);
toolSession.setToolSessionStateId(ToolSession.ENDED_STATE);
lamsCoreToolService.updateToolSession(toolSession);
+ User learner = userManagementService.getUserById(new Integer(learnerId.intValue()));
return completeActivity(learner, toolSession.getToolActivity(), toolSession.getLesson());
}
/**
+ * @see org.lamsfoundation.lams.learning.service.ILearnerService#completeActivity(org.lamsfoundation.lams.usermanagement.User, java.lang.Long, org.lamsfoundation.lams.lesson.Lesson)
+ */
+ public String completeActivity(User learner,Long activityId,Lesson lesson) {
+ Activity activity = getActivity(activityId);
+ return completeActivity(learner, activity,lesson);
+ }
+
+ /**
* @see org.lamsfoundation.lams.learning.service.ILearnerService#completeActivity(org.lamsfoundation.lams.usermanagement.User, org.lamsfoundation.lams.learningdesign.Activity, org.lamsfoundation.lams.lesson.Lesson)
*/
public String completeActivity(User learner,Activity activity,Lesson lesson)
@@ -353,10 +369,17 @@
* Exit a lesson.
* @see org.lamsfoundation.lams.learning.service.ILearnerService#exitLesson(org.lamsfoundation.lams.lesson.LearnerProgress)
*/
- public void exitLesson(LearnerProgress progress)
+ public void exitLesson(Long progressId)
{
- progress.setRestarting(true);
- learnerProgressDAO.updateLearnerProgress(progress);
+ LearnerProgress progress = learnerProgressDAO.getLearnerProgress(progressId);
+ if ( progress != null ) {
+ progress.setRestarting(true);
+ learnerProgressDAO.updateLearnerProgress(progress);
+ } else {
+ String error = "Learner Progress "+progressId+" does not exist. Cannot exit lesson successfully.";
+ log.error(error);
+ throw new LearnerServiceException(error);
+ }
}
/**
@@ -368,48 +391,89 @@
}
/**
- * @see org.lamsfoundation.lams.learning.service.ILearnerService#performGrouping(org.lamsfoundation.lams.learningdesign.GroupingActivity, java.util.List)
+ * @see org.lamsfoundation.lams.learning.service.ILearnerService#performGrouping(java.lang.Long, java.util.List)
*/
- public void performGrouping(GroupingActivity groupingActivity, List learners)
+ public void performGrouping(Long groupingActivityId, List learners)
{
- Grouping grouping = groupingActivity.getCreateGrouping();
-
- grouping.doGrouping(learners);
-
- groupingDAO.update(grouping);
+ GroupingActivity groupingActivity = (GroupingActivity) activityDAO.getActivityByActivityId(groupingActivityId, GroupingActivity.class);
+ if ( groupingActivity != null ) {
+ performGrouping(groupingActivity, learners);
+
+ } else {
+
+ String error = "Grouping activity "+groupingActivityId+" does not exist. Cannot perform grouping.";
+ log.error(error);
+ throw new LearnerServiceException(error);
+
+ }
}
+
/**
+ * @see org.lamsfoundation.lams.learning.service.ILearnerService#performGrouping(org.lamsfoundation.lams.learningdesign.GroupingActivity, java.util.List)
+ */
+ public void performGrouping(GroupingActivity groupingActivity, List learners) {
+
+ Grouping grouping = groupingActivity.getCreateGrouping();
+ grouping.doGrouping(learners);
+ groupingDAO.update(grouping);
+ }
+
+
+ /**
* @see org.lamsfoundation.lams.learning.service.ILearnerService#performGrouping(org.lamsfoundation.lams.learningdesign.GroupingActivity, org.lamsfoundation.lams.usermanagement.User)
*/
- public void performGrouping(GroupingActivity groupingActivity, User learner)
+ public void performGrouping(Long groupingActivityId, User learner)
{
- Grouping grouping = groupingActivity.getCreateGrouping();
+ GroupingActivity groupingActivity = (GroupingActivity) activityDAO.getActivityByActivityId(groupingActivityId, GroupingActivity.class);
+ if ( groupingActivity != null ) {
+
+ Grouping grouping = groupingActivity.getCreateGrouping();
+ grouping.doGrouping(learner);
+ groupingDAO.update(grouping);
+
+ } else {
+
+ String error = "Grouping activity "+groupingActivityId+" does not exist. Cannot perform grouping.";
+ log.error(error);
+ throw new LearnerServiceException(error);
+
+ }
- grouping.doGrouping(learner);
-
- groupingDAO.update(grouping);
-
}
/**
+ * @see org.lamsfoundation.lams.learning.service.ILearnerService#knockGate(java.lang.Long, org.lamsfoundation.lams.usermanagement.User, java.util.List)
+ */
+ public boolean knockGate(Long gateActivityId, User knocker, List lessonLearners) {
+ GateActivity gate = (GateActivity) activityDAO.getActivityByActivityId(gateActivityId, GateActivity.class);
+ if ( gate != null ) {
+ return knockGate(gate,knocker,lessonLearners);
+ }
+
+ String error = "Gate activity "+gateActivityId+" does not exist. Cannot knock on gate.";
+ log.error(error);
+ throw new LearnerServiceException(error);
+ }
+ /**
* @see org.lamsfoundation.lams.learning.service.ILearnerService#knockGate(org.lamsfoundation.lams.learningdesign.GateActivity, org.lamsfoundation.lams.usermanagement.User, java.util.List)
*/
public boolean knockGate(GateActivity gate, User knocker, List lessonLearners)
{
- boolean gateOpen = false;
- //knock the gate.
- if(gate.shouldOpenGateFor(knocker,lessonLearners))
- gateOpen = true;
- else
- gateOpen = false;
-
- //update gate including updating the waiting list and gate status in
- //the database.
- activityDAO.update(gate);
-
- return gateOpen;
+ boolean gateOpen = false;
+ //knock the gate.
+ if(gate.shouldOpenGateFor(knocker,lessonLearners))
+ gateOpen = true;
+ else
+ gateOpen = false;
+
+ //update gate including updating the waiting list and gate status in
+ //the database.
+ activityDAO.update(gate);
+ return gateOpen;
+
}
+
//---------------------------------------------------------------------
// Helper Methods
//---------------------------------------------------------------------
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DummyLearnerAction.java
===================================================================
diff -u -r7d5e18b6ddc40f4de3d34eefa114afc297724289 -r0977a832c3e57655f1031778702ce6ea0e122985
--- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DummyLearnerAction.java (.../DummyLearnerAction.java) (revision 7d5e18b6ddc40f4de3d34eefa114afc297724289)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DummyLearnerAction.java (.../DummyLearnerAction.java) (revision 0977a832c3e57655f1031778702ce6ea0e122985)
@@ -161,7 +161,7 @@
log.debug("The learner ["+learner.getUserId()+"] joined lesson. The"
+"porgress data is:"+learnerProgress.toString());
- request.getSession().setAttribute(ActivityAction.LEARNER_PROGRESS_REQUEST_ATTRIBUTE,learnerProgress);
+ LearningWebUtil.setLearnerProgress(learnerProgress);
return mapping.findForward(DISPLAY_ACTIVITY);
}
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/GateAction.java
===================================================================
diff -u -rcdb910b6cd3de106725e2c22ded380c5c0fab650 -r0977a832c3e57655f1031778702ce6ea0e122985
--- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/GateAction.java (.../GateAction.java) (revision cdb910b6cd3de106725e2c22ded380c5c0fab650)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/GateAction.java (.../GateAction.java) (revision 0977a832c3e57655f1031778702ce6ea0e122985)
@@ -40,6 +40,7 @@
import org.lamsfoundation.lams.learning.service.LearnerServiceProxy;
import org.lamsfoundation.lams.learning.web.util.LearningWebUtil;
import org.lamsfoundation.lams.learning.web.util.LessonLearnerDataManager;
+import org.lamsfoundation.lams.learningdesign.Activity;
import org.lamsfoundation.lams.learningdesign.GateActivity;
import org.lamsfoundation.lams.lesson.LearnerProgress;
import org.lamsfoundation.lams.web.action.LamsDispatchAction;
@@ -116,21 +117,25 @@
learnerProgress.getLesson().getLessonId().longValue(),
learnerService);
//knock the gate
- boolean gateOpen = learnerService.knockGate((GateActivity)learnerProgress.getNextActivity(),
+ boolean gateOpen = learnerService.knockGate(learnerProgress.getNextActivity().getActivityId(),
learnerProgress.getUser(),
currentLessonLearners);
- //if the gate is open, let the learner go to the next activity.
+ //if the gate is open, let the learner go to the next activity ( updating the cached learner progress on the way )
if(gateOpen)
{
String nextActivityUrl = learnerService.completeActivity(learnerProgress.getUser(),
- learnerProgress.getNextActivity(),
+ learnerProgress.getNextActivity().getActivityId(),
learnerProgress.getLesson());
- response.sendRedirect(nextActivityUrl);
+ // get the update
+ LearningWebUtil.setLearnerProgress(learnerService.getProgressById(learnerProgress.getLearnerProgressId()));
+ response.sendRedirect(nextActivityUrl);
return null;
}
- //if the gate is closed, ask the learner to wait
- else
+ //if the gate is closed, ask the learner to wait ( updating the cached learner progress on the way )
+ else {
+ LearningWebUtil.setLearnerProgress(learnerService.getProgressById(learnerProgress.getLearnerProgressId()));
return mapping.findForward(WAITING);
+ }
}
//---------------------------------------------------------------------
@@ -148,7 +153,7 @@
if(!isNextActivityValid(learnerProgress))
throw new LearnerServiceException("Error in progress engine. Getting "
+learnerProgress.getNextActivity().toString()
- +" where it should be grouping activity");
+ +" where it should be gate activity");
}
/**
@@ -157,6 +162,6 @@
*/
private boolean isNextActivityValid(LearnerProgress learnerProgress)
{
- return learnerProgress.getNextActivity()!=null&&(learnerProgress.getNextActivity() instanceof GateActivity);
+ return learnerProgress.getNextActivity()!=null&&(learnerProgress.getNextActivity().isGateActivity());
}
}
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/GroupingAction.java
===================================================================
diff -u -r7d5e18b6ddc40f4de3d34eefa114afc297724289 -r0977a832c3e57655f1031778702ce6ea0e122985
--- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/GroupingAction.java (.../GroupingAction.java) (revision 7d5e18b6ddc40f4de3d34eefa114afc297724289)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/GroupingAction.java (.../GroupingAction.java) (revision 0977a832c3e57655f1031778702ce6ea0e122985)
@@ -123,7 +123,7 @@
List currentLearners = LessonLearnerDataManager.getAllLessonLearners(getServlet().getServletContext(),
learnerProgress.getLesson().getLessonId().longValue(),
learnerService);
- learnerService.performGrouping((GroupingActivity)learnerProgress.getNextActivity(),
+ learnerService.performGrouping(learnerProgress.getNextActivity().getActivityId(),
currentLearners);
LearningWebUtil.putActivityInRequest(request, learnerProgress.getNextActivity(), learnerService);
@@ -228,7 +228,7 @@
*/
private boolean isNextActivityValid(LearnerProgress learnerProgress)
{
- return learnerProgress.getNextActivity()!=null&&(learnerProgress.getNextActivity() instanceof GroupingActivity);
+ return learnerProgress.getNextActivity()!=null&&(learnerProgress.getNextActivity().isGroupingActivity());
}
}
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LearnerAction.java
===================================================================
diff -u -r7d5e18b6ddc40f4de3d34eefa114afc297724289 -r0977a832c3e57655f1031778702ce6ea0e122985
--- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LearnerAction.java (.../LearnerAction.java) (revision 7d5e18b6ddc40f4de3d34eefa114afc297724289)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/LearnerAction.java (.../LearnerAction.java) (revision 0977a832c3e57655f1031778702ce6ea0e122985)
@@ -42,6 +42,7 @@
import org.lamsfoundation.lams.learningdesign.Activity;
import org.lamsfoundation.lams.learningdesign.dto.ProgressActivityDTO;
import org.lamsfoundation.lams.lesson.LearnerProgress;
+import org.lamsfoundation.lams.lesson.dto.LearnerProgressDTO;
import org.lamsfoundation.lams.lesson.dto.LessonDTO;
import org.lamsfoundation.lams.usermanagement.User;
import org.lamsfoundation.lams.util.WebUtil;
@@ -97,14 +98,22 @@
private static final String WELCOME = "welcome";
private static final String EXIT = "exit";
- private FlashMessage handleException(Exception e, String methodKey, ILearnerService learnerService) {
- log.error("Exception thrown "+methodKey,e);
- String[] msg = new String[1];
- msg[0] = e.getMessage();
- return new FlashMessage(methodKey,
- learnerService.getMessageService().getMessage("error.system.error", msg),
+ /** Handle an exception - either thrown by the service or by the web layer. Allows the exception
+ * to be logged properly and ensure that an actual message goes back to Flash.
+ *
+ * @param e
+ * @param methodKey
+ * @param learnerService
+ * @return
+ */
+ protected FlashMessage handleException(Exception e, String methodKey, ILearnerService learnerService) {
+ log.error("Exception thrown "+methodKey,e);
+ String[] msg = new String[1];
+ msg[0] = e.getMessage();
+ return new FlashMessage(methodKey,
+ learnerService.getMessageService().getMessage("error.system.error", msg),
FlashMessage.CRITICAL_ERROR);
- }
+ }
/**
*
The Struts dispatch method that retrieves all active lessons for a @@ -263,7 +272,7 @@ if(log.isDebugEnabled()) log.debug("Lesson id is: "+learnerProgress.getLesson().getLessonId()); - learnerService.exitLesson(learnerProgress); + learnerService.exitLesson(learnerProgress.getLearnerProgressId()); LessonLearnerDataManager.removeLessonUserFromCache(getServlet().getServletContext(), learnerProgress.getLesson(), @@ -289,6 +298,10 @@ * call. It is used to construct or restore the flash learner progress * bar
* + *Gets the most recent copy from the database - not the cached version. + * That way if the cached version has problems, at least we start off right! + *
+ * *As this process is expensive, the server is only expecting this call * whenever is necessary. For example, starting, resuming and restoring * a new lesson. And it should not happen every time that learner is @@ -319,9 +332,12 @@ try { //SessionBean sessionBean = LearningWebUtil.getSessionBean(request,getServlet().getServletContext()); - LearnerProgress learnerProgress = LearningWebUtil.getLearnerProgressByID(request,getServlet().getServletContext()); + + ILearnerService learnerService = LearnerServiceProxy.getLearnerService(getServlet().getServletContext()); + long learnerProgressId = WebUtil.readLongParam(request,LearningWebUtil.PARAM_PROGRESS_ID); + LearnerProgressDTO learnerProgress = learnerService.getProgressDTOById(new Long(learnerProgressId)); - message = new FlashMessage("getFlashProgressData",learnerProgress.getLearnerProgressData()); + message = new FlashMessage("getFlashProgressData",learnerProgress); } catch (Exception e ) { message = handleException(e, "getFlashProgressData", LearnerServiceProxy.getLearnerService(getServlet().getServletContext())); Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java =================================================================== diff -u -rcdb910b6cd3de106725e2c22ded380c5c0fab650 -r0977a832c3e57655f1031778702ce6ea0e122985 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java (.../ActivityMapping.java) (revision cdb910b6cd3de106725e2c22ded380c5c0fab650) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java (.../ActivityMapping.java) (revision 0977a832c3e57655f1031778702ce6ea0e122985) @@ -324,8 +324,8 @@ if (activity != null) { - String query = "?activityId=" + activity.getActivityId(); - url += query; + url += url.indexOf("?") > -1 ? "&" : "?"; + url += "activityId=" + activity.getActivityId(); } if (useContext) { Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMappingStrategy.java =================================================================== diff -u -rcdb910b6cd3de106725e2c22ded380c5c0fab650 -r0977a832c3e57655f1031778702ce6ea0e122985 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMappingStrategy.java (.../ActivityMappingStrategy.java) (revision cdb910b6cd3de106725e2c22ded380c5c0fab650) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMappingStrategy.java (.../ActivityMappingStrategy.java) (revision 0977a832c3e57655f1031778702ce6ea0e122985) @@ -53,15 +53,14 @@ else // should be a simple activity { if ( activity.isGroupingActivity()) { - strutsAction = "/grouping.do?"; + strutsAction = "/grouping.do?method=performGrouping"; } else if (activity.isGateActivity()) { - strutsAction = "/gate.do"; + strutsAction = "/gate.do?method=knockGate"; // not completed so return wait URL } else if (activity.isToolActivity()) { strutsAction = "/LoadToolActivity.do"; - //strutsAction = "/DisplayToolActivity.do"; } } return strutsAction; Index: lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java =================================================================== diff -u -rcdab8186de5e9c75a9d6774616ead602dbf9cb69 -r0977a832c3e57655f1031778702ce6ea0e122985 --- lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java (.../TestLearnerService.java) (revision cdab8186de5e9c75a9d6774616ead602dbf9cb69) +++ lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java (.../TestLearnerService.java) (revision 0977a832c3e57655f1031778702ce6ea0e122985) @@ -324,7 +324,7 @@ public void testExitLesson() { - learnerService.exitLesson(testProgress); + learnerService.exitLesson(testProgress.getLearnerProgressId()); LearnerProgress progress = learnerProgressDao.getLearnerProgressByLearner(testUser,testLesson); @@ -340,7 +340,7 @@ assertTrue("verify the existance of test user",!randomGrouping.doesLearnerExist(testUser)); - learnerService.performGrouping((GroupingActivity)randomGroupingActivity,testUser); + learnerService.performGrouping(randomGroupingActivity.getActivityId(),testUser); assertTrue("verify the existance of test user",randomGrouping.doesLearnerExist(testUser)); } @@ -356,7 +356,7 @@ //get sync gate GateActivity synchGate = (GateActivity)learnerService.getActivity(new Long(TEST_SYNCHGATE_ACTIVITY_ID)); - boolean gateOpen = learnerService.knockGate(synchGate,testUser,lessonLearners); + boolean gateOpen = learnerService.knockGate(synchGate.getActivityId(),testUser,lessonLearners); assertTrue("gate is closed",!gateOpen); synchGate = (GateActivity)learnerService.getActivity(new Long(TEST_SYNCHGATE_ACTIVITY_ID)); @@ -374,7 +374,7 @@ //get sync gate GateActivity synchGate = (GateActivity)learnerService.getActivity(new Long(TEST_SYNCHGATE_ACTIVITY_ID)); - boolean gateOpen = learnerService.knockGate(synchGate,testUser2,lessonLearners); + boolean gateOpen = learnerService.knockGate(synchGate.getActivityId(),testUser2,lessonLearners); assertTrue("gate is closed",gateOpen); synchGate = (GateActivity)learnerService.getActivity(new Long(TEST_SYNCHGATE_ACTIVITY_ID));