Index: lams_common/db/sql/insert_test_data.sql =================================================================== RCS file: /usr/local/cvsroot/lams_common/db/sql/Attic/insert_test_data.sql,v diff -u -r1.17 -r1.18 --- lams_common/db/sql/insert_test_data.sql 16 Feb 2005 05:44:04 -0000 1.17 +++ lams_common/db/sql/insert_test_data.sql 21 Feb 2005 05:49:37 -0000 1.18 @@ -445,5 +445,10 @@ parent_learning_design_id,workspace_folder_id) values (1,'Test Learning Design','Test Learning Design title',15,1,1,0,1, - 'Help Text',1,'20041223','1.0',null,1); + 'Help Text',1,'20041223','1.0',null,1); + +insert into lams_grouping values(100,100,2,1,10,0,2); + +insert into lams_group values(88,100,1); + SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/tool/GroupedToolSession.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/GroupedToolSession.java,v diff -u -r1.1 -r1.2 --- lams_common/src/java/org/lamsfoundation/lams/tool/GroupedToolSession.java 1 Feb 2005 05:31:36 -0000 1.1 +++ lams_common/src/java/org/lamsfoundation/lams/tool/GroupedToolSession.java 21 Feb 2005 05:49:37 -0000 1.2 @@ -1,27 +1,50 @@ -/* - * Created on 1/02/2005 - * - * TODO To change the template for this generated file go to - * Window - Preferences - Java - Code Style - Code Templates - */ + package org.lamsfoundation.lams.tool; +import java.util.Date; + import org.lamsfoundation.lams.learningdesign.Group; +import org.lamsfoundation.lams.learningdesign.ToolActivity; + /** - * @author daveg + * This is the tool session shared within a learner group. It is meant to be + * unique against learner group and a tool activity instance. + * + * @author daveg, Jacky Fang * - * TODO To change the template for this generated type comment go to - * Window - Preferences - Java - Code Style - Code Templates */ public class GroupedToolSession extends ToolSession { /** persistent field */ private Group group; + /**default constructor*/ + public GroupedToolSession(){ } + + /** + * Grouped tool session initialization constructor. + * @param toolActivity the tool activity for that group + * @param createDateTime the time this tool session is created. + * @param toolSessionStateId the tool session status. + * @param group the target group + */ + public GroupedToolSession(ToolActivity toolActivity, + Date createDateTime, + int toolSessionStateId, + Group group) + { + super(null,toolActivity,createDateTime,toolSessionStateId); + super.setUniqueKey(UNIQUE_KEY_PREFIX + +toolActivity.getActivityId().toString() + +group.getGroupId().toString()); + this.group=group; + } + public Group getGroup() { return group; } + public void setGroup(Group group) { this.group = group; } Index: lams_common/src/java/org/lamsfoundation/lams/tool/dao/IToolSessionDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/dao/IToolSessionDAO.java,v diff -u -r1.4 -r1.5 --- lams_common/src/java/org/lamsfoundation/lams/tool/dao/IToolSessionDAO.java 18 Feb 2005 06:05:31 -0000 1.4 +++ lams_common/src/java/org/lamsfoundation/lams/tool/dao/IToolSessionDAO.java 21 Feb 2005 05:49:37 -0000 1.5 @@ -7,6 +7,7 @@ package org.lamsfoundation.lams.tool.dao; import org.lamsfoundation.lams.learningdesign.Activity; +import org.lamsfoundation.lams.learningdesign.Group; import org.lamsfoundation.lams.tool.ToolSession; import org.lamsfoundation.lams.usermanagement.User; @@ -30,4 +31,5 @@ public ToolSession getToolSessionByLearner(final User learner,final Activity activity); + public ToolSession getToolSessionByGroup(final Group group, final Activity activity); } Index: lams_common/src/java/org/lamsfoundation/lams/tool/dao/hibernate/ToolSessionDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/dao/hibernate/ToolSessionDAO.java,v diff -u -r1.6 -r1.7 --- lams_common/src/java/org/lamsfoundation/lams/tool/dao/hibernate/ToolSessionDAO.java 18 Feb 2005 06:05:31 -0000 1.6 +++ lams_common/src/java/org/lamsfoundation/lams/tool/dao/hibernate/ToolSessionDAO.java 21 Feb 2005 05:49:38 -0000 1.7 @@ -14,6 +14,7 @@ import org.springframework.orm.hibernate.support.HibernateDaoSupport; import org.lamsfoundation.lams.learningdesign.Activity; +import org.lamsfoundation.lams.learningdesign.Group; import org.lamsfoundation.lams.tool.ToolSession; import org.lamsfoundation.lams.tool.dao.IToolSessionDAO; import org.lamsfoundation.lams.usermanagement.User; @@ -27,6 +28,8 @@ protected static final String LOAD_NONGROUPED_TOOL_SESSION_BY_LEARNER = "from NonGroupedToolSession s where s.user = :learner and s.toolActivity = :activity"; + protected static final String LOAD_NONGROUPED_TOOL_SESSION_BY_GROUP = + "from GroupedToolSession s where s.group = :group and s.toolActivity = :activity"; /** * Retrieves the ToolSession * @param toolSessionId identifies the ToolSession to get @@ -59,6 +62,27 @@ } ); } + + /** + * @see org.lamsfoundation.lams.tool.dao.IToolSessionDAO#getToolSessionByGroup(org.lamsfoundation.lams.learningdesign.Group, org.lamsfoundation.lams.learningdesign.Activity) + */ + public ToolSession getToolSessionByGroup(final Group group, final Activity activity) + { + HibernateTemplate hibernateTemplate = new HibernateTemplate(this.getSessionFactory()); + + return (ToolSession)hibernateTemplate.execute( + new HibernateCallback() + { + public Object doInHibernate(Session session) throws HibernateException + { + return session.createQuery(LOAD_NONGROUPED_TOOL_SESSION_BY_GROUP) + .setEntity("group",group) + .setEntity("activity",activity) + .uniqueResult(); + } + } + ); + } public void saveToolSession(ToolSession toolSession) { @@ -71,5 +95,7 @@ { getHibernateTemplate().delete(toolSession); } + + } Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/learningDesignApplicationContext.xml =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/learningdesign/Attic/learningDesignApplicationContext.xml,v diff -u -r1.8 -r1.9 --- lams_common/test/java/org/lamsfoundation/lams/learningdesign/learningDesignApplicationContext.xml 13 Feb 2005 22:13:33 -0000 1.8 +++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/learningDesignApplicationContext.xml 21 Feb 2005 05:49:38 -0000 1.9 @@ -22,6 +22,9 @@ + + + Index: lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/lesson/Attic/LessonDataAccessTestCase.java,v diff -u -r1.17 -r1.18 --- lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java 18 Feb 2005 04:37:44 -0000 1.17 +++ lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java 21 Feb 2005 05:49:38 -0000 1.18 @@ -260,7 +260,7 @@ assertEquals("check up number of activities",11,lessonClass.getActivities().size()); assertEquals("check up staff groups",1,lessonClass.getStaffGroup().getUsers().size()); assertEquals("check up grouping types, should be class grouping",Grouping.CLASS_GROUPING_TYPE,lessonClass.getGroupingTypeId()); - assertEquals("check up learner groups",1,lessonClass.getGroups().size()); + assertEquals("check up groups",2,lessonClass.getGroups().size()); } /** * Helper method to validate the created lesson. This validation Index: lams_common/test/java/org/lamsfoundation/lams/tool/ToolDataAccessTestCase.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/tool/Attic/ToolDataAccessTestCase.java,v diff -u -r1.6 -r1.7 --- lams_common/test/java/org/lamsfoundation/lams/tool/ToolDataAccessTestCase.java 13 Feb 2005 22:13:34 -0000 1.6 +++ lams_common/test/java/org/lamsfoundation/lams/tool/ToolDataAccessTestCase.java 21 Feb 2005 05:49:38 -0000 1.7 @@ -12,15 +12,21 @@ import java.util.Date; import org.lamsfoundation.lams.AbstractLamsTestCase; +import org.lamsfoundation.lams.learningdesign.Group; import org.lamsfoundation.lams.learningdesign.ToolActivity; import org.lamsfoundation.lams.learningdesign.dao.IActivityDAO; +import org.lamsfoundation.lams.learningdesign.dao.IGroupDAO; import org.lamsfoundation.lams.learningdesign.dao.hibernate.ActivityDAO; +import org.lamsfoundation.lams.learningdesign.dao.hibernate.GroupDAO; + + import org.lamsfoundation.lams.tool.dao.IToolContentDAO; import org.lamsfoundation.lams.tool.dao.IToolDAO; import org.lamsfoundation.lams.tool.dao.IToolSessionDAO; import org.lamsfoundation.lams.tool.dao.hibernate.ToolContentDAO; import org.lamsfoundation.lams.tool.dao.hibernate.ToolDAO; import org.lamsfoundation.lams.tool.dao.hibernate.ToolSessionDAO; + import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.dao.IUserDAO; import org.lamsfoundation.lams.usermanagement.dao.hibernate.UserDAO; @@ -39,16 +45,23 @@ protected IToolSessionDAO toolSessionDao; protected IUserDAO userDao; protected IActivityDAO activityDAO; + protected IGroupDAO groupDao; + //Test tool id - survey tool protected final Long TEST_TOOL_ID = new Long(6); protected Tool testTool; protected ToolSession ngToolSession; protected ToolSession gToolSession; protected User testUser; - protected ToolActivity testActivity; + protected Group testGroup; + protected ToolActivity testNonGroupedActivity; + protected ToolActivity testGroupedActivity; - private final Integer TEST_USER_ID = new Integer(1); - private final Long TEST_ACTIVITY_ID = new Long(20); + private final static Integer TEST_USER_ID = new Integer(1); + private final static Long TEST_NON_GROUP_ACTIVITY_ID = new Long(20); + private static final Long TEST_GROUPED_ACTIVITY_ID = new Long(19); + private static final Long TEST_GROUP_ID = new Long(88); + /* * @see AbstractLamsCommonTestCase#setUp() */ @@ -62,9 +75,12 @@ activityDAO =(ActivityDAO) context.getBean("activityDAO"); userDao = (UserDAO) this.context.getBean("userDAO"); + groupDao = (GroupDAO)this.context.getBean("groupDAO"); //retrieve test domain data testUser = userDao.getUserById(TEST_USER_ID); - testActivity = (ToolActivity)activityDAO.getActivityByActivityId(TEST_ACTIVITY_ID); + testNonGroupedActivity = (ToolActivity)activityDAO.getActivityByActivityId(TEST_NON_GROUP_ACTIVITY_ID); + testGroupedActivity = (ToolActivity)activityDAO.getActivityByActivityId(TEST_GROUPED_ACTIVITY_ID); + testGroup = (Group)groupDao.getGroupById(TEST_GROUP_ID); } /* @@ -96,17 +112,24 @@ public void initTestToolSession() { this.ngToolSession=this.initNGToolSession(); + this.gToolSession = this.initGToolSession(); } public ToolSession initNGToolSession() { - ToolSession toolSession = new NonGroupedToolSession(testActivity, - new Date(System.currentTimeMillis()), - ToolSession.STARTED_STATE, - testUser); - return toolSession; + return new NonGroupedToolSession(testNonGroupedActivity, + new Date(System.currentTimeMillis()), + ToolSession.STARTED_STATE, + testUser); } - + public ToolSession initGToolSession() + { + return new GroupedToolSession(testGroupedActivity, + new Date(System.currentTimeMillis()), + ToolSession.STARTED_STATE, + testGroup); + } + } Index: lams_common/test/java/org/lamsfoundation/lams/tool/dao/TestToolSessionDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/tool/dao/Attic/TestToolSessionDAO.java,v diff -u -r1.3 -r1.4 --- lams_common/test/java/org/lamsfoundation/lams/tool/dao/TestToolSessionDAO.java 18 Feb 2005 06:05:31 -0000 1.3 +++ lams_common/test/java/org/lamsfoundation/lams/tool/dao/TestToolSessionDAO.java 21 Feb 2005 05:49:37 -0000 1.4 @@ -30,8 +30,10 @@ { super.setUp(); toolSessionDao = (ToolSessionDAO)this.context.getBean("toolSessionDAO"); + super.initTestToolSession(); toolSessionDao.saveToolSession(this.ngToolSession); + toolSessionDao.saveToolSession(this.gToolSession); } /* @@ -41,15 +43,16 @@ { super.tearDown(); toolSessionDao.removeToolSession(this.ngToolSession); + toolSessionDao.removeToolSession(this.gToolSession); } /** * Constructor for TestToolSessionDAO. * @param arg0 */ - public TestToolSessionDAO(String arg0) + public TestToolSessionDAO(String testName) { - super(arg0); + super(testName); } public void testGetToolSession() @@ -64,11 +67,18 @@ public void testGetToolSessionByLearner() { - ToolSession toolSession = toolSessionDao.getToolSessionByLearner(testUser,testActivity); + ToolSession toolSession = toolSessionDao.getToolSessionByLearner(testUser,testNonGroupedActivity); assertNotNull(toolSession); } + public void testGetToolSessionByGroup() + { + ToolSession toolSession = toolSessionDao.getToolSessionByGroup(testGroup,testGroupedActivity); + + assertNotNull(toolSession); + } + public void testSaveNonGroupedToolSession() { ToolSession testToolSession=initNGToolSession();