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();