Index: lams_tool_lamc/build.xml =================================================================== diff -u -r94beec8280aeef9f5ad671285bd6dcecf8012687 -rfdfde70a60685ba9b6aff901a9792542afd45fbb --- lams_tool_lamc/build.xml (.../build.xml) (revision 94beec8280aeef9f5ad671285bd6dcecf8012687) +++ lams_tool_lamc/build.xml (.../build.xml) (revision fdfde70a60685ba9b6aff901a9792542afd45fbb) @@ -296,6 +296,7 @@ + Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java =================================================================== diff -u --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java (revision 0) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/IMcUserDAO.java (revision fdfde70a60685ba9b6aff901a9792542afd45fbb) @@ -0,0 +1,92 @@ +/* + *Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * + *This program is free software; you can redistribute it and/or modify + *it under the terms of the GNU General Public License as published by + *the Free Software Foundation; either version 2 of the License, or + *(at your option) any later version. + * + *This program is distributed in the hope that it will be useful, + *but WITHOUT ANY WARRANTY; without even the implied warranty of + *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + *GNU General Public License for more details. + * + *You should have received a copy of the GNU General Public License + *along with this program; if not, write to the Free Software + *Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + *USA + * + *http://www.gnu.org/licenses/gpl.txt + */ + +package org.lamsfoundation.lams.tool.mc.dao; + +import org.lamsfoundation.lams.tool.mc.McQueUsr; +import org.lamsfoundation.lams.tool.mc.McSession; + +/** + * @author ozgurd + * + *

Interface for the McSession DAO, defines methods needed to access/modify + * mc users (learners of the mc activity)

+ */ +public interface IMcUserDAO { + + /** + *

Return the persistent instance of a McQueUsr + * with the given identifier uid, returns null if not found.

+ * + * @param uid an identifier for the McQueUsr. + * @return the persistent instance of a McQueUsr or null if not found + */ + public McQueUsr getMcUserByUID(Long uid); + + /** + *

Return the persistent instance of a McQueUsr + * with the given user id userId, + * returns null if not found.

+ * + * @param userId The id of a McQueUsr + * @return the persistent instance of a McQueUsr or null if not found. + */ + public McQueUsr getMcUserByID(Long userId); + + /** + *

Persist the given persistent instance of McQueUsr.

+ * + * @param nbUser The instance of McQueUsr to persist. + */ + public void saveMcUser(McQueUsr mcUser); + + /** + *

Update the given persistent instance of McQueUsr.

+ * + * @param nbUser The instance of McQueUsr to persist. + */ + public void updateMcUser(McQueUsr mcUser); + + /** + *

Delete the given instance of McQueUsr

+ * + * @param nbUser The instance of McQueUsr to delete. + */ + public void removeMcUser(McQueUsr mcUser); + + /** + *

Delete the given instance of McQueUsr with the + * given user id userId + * + * @param userId The mc user id. + */ + public void removeMcUser(Long userId); + + /** + * Returns the number of users that are in this particular + * session. + * + * @param nbSession + * @return the number of users that are in this session + */ + public int getNumberOfUsers(McSession mcSession); + +} Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java =================================================================== diff -u --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java (revision 0) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/dao/hibernate/McUserDAO.java (revision fdfde70a60685ba9b6aff901a9792542afd45fbb) @@ -0,0 +1,107 @@ +/* +Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +USA + +http://www.gnu.org/licenses/gpl.txt +*/ + +/* + * @author ozgurd + */ +package org.lamsfoundation.lams.tool.mc.dao.hibernate; + +import java.util.List; + +import org.lamsfoundation.lams.tool.mc.dao.IMcUserDAO; +import org.lamsfoundation.lams.tool.mc.McQueUsr; +import org.springframework.orm.hibernate.support.HibernateDaoSupport; +import org.lamsfoundation.lams.tool.mc.McSession; + +/** + * @author ozgurd + *

Hibernate implementation for database access to Mc users (learners) for the mc tool.

+ */ +public class McUserDAO extends HibernateDaoSupport implements IMcUserDAO { + + private static final String COUNT_USERS_IN_SESSION = "select mu.queUsrId from McQueUsr mu where mu.mcSession= :mcSession"; + + + + /** @see org.lamsfoundation.lams.tool.mc.dao.IMcUserDAO#getMcUserByUID(java.lang.Long) */ + public McQueUsr getMcUserByUID(Long uid) + { + return (McQueUsr) this.getHibernateTemplate() + .get(McQueUsr.class, uid); + } + + /** @see org.lamsfoundation.lams.tool.mc.dao.IMcUserDAO#getMcUserByID(java.lang.Long) */ + public McQueUsr getMcUserByID(Long userId) + { + String query = "from McQueUsr user where user.queUsrId=?"; + List users = getHibernateTemplate().find(query,userId); + + if(users!=null && users.size() == 0) + { + return null; + } + else + { + return (McQueUsr)users.get(0); + } + } + + /** @see org.lamsfoundation.lams.tool.mc.dao.IMcUserDAO#saveMcUser(org.lamsfoundation.lams.tool.mc.McUser) */ + public void saveMcUser(McQueUsr mcUser) + { + this.getHibernateTemplate().save(mcUser); + } + + /** @see org.lamsfoundation.lams.tool.mc.dao.IMcUserDAO#updateMcUser(org.lamsfoundation.lams.tool.mc.McUser) */ + public void updateMcUser(McQueUsr mcUser) + { + this.getHibernateTemplate().update(mcUser); + } + + /** @see org.lamsfoundation.lams.tool.mc.dao.IMcUserDAO#removeMcUser(java.lang.Long) */ + public void removeMcUser(Long userId) + { + String query = "from McQueUsr as user where user.queUsrId ="; + StringBuffer sb = new StringBuffer(query); + sb.append(userId.longValue()); + + String queryString = sb.toString(); + + this.getHibernateTemplate().delete(queryString); + + } + + /** @see org.lamsfoundation.lams.tool.mc.dao.IMcUserDAO#removeMcUser(org.lamsfoundation.lams.tool.mc.McUser) */ + public void removeMcUser(McQueUsr mcUser) + { + this.getHibernateTemplate().delete(mcUser); + } + + /** @see org.lamsfoundation.lams.tool.mc.dao.IMcUserDAO#getNumberOfUsers((org.lamsfoundation.lams.tool.mc.McSession) */ + public int getNumberOfUsers(McSession mcSession) + { + return (getHibernateTemplate().findByNamedParam(COUNT_USERS_IN_SESSION, + "mcSession", + mcSession)).size(); + } + + +} Index: lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/AbstractMcTestCase.java =================================================================== diff -u --- lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/AbstractMcTestCase.java (revision 0) +++ lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/AbstractMcTestCase.java (revision fdfde70a60685ba9b6aff901a9792542afd45fbb) @@ -0,0 +1,44 @@ + +package org.lamsfoundation.lams.tool.mc; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +import junit.framework.TestCase; + + +/** + * @author ozgurd + * + */ +public abstract class AbstractMcTestCase extends TestCase +{ + protected ApplicationContext context; + protected final long TEST_LESSON_ID=1; + /** + * @param name + */ + public AbstractMcTestCase(String name) + { + super(name); + } + + /** + * @see TestCase#setUp() + */ + protected void setUp() throws Exception + { + super.setUp(); + context = new ClassPathXmlApplicationContext(getContextConfigLocation()); + } + + protected abstract String[] getContextConfigLocation(); + /** + * @see TestCase#tearDown() + */ + protected void tearDown() throws Exception + { + super.tearDown(); + } + +} Fisheye: Tag 48c973dcec3754f35dce1f2468a5739067b47179 refers to a dead (removed) revision in file `lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/AllTests.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McContent.hbm.xml =================================================================== diff -u --- lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McContent.hbm.xml (revision 0) +++ lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McContent.hbm.xml (revision fdfde70a60685ba9b6aff901a9792542afd45fbb) @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McDataAccessTestCase.java =================================================================== diff -u --- lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McDataAccessTestCase.java (revision 0) +++ lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McDataAccessTestCase.java (revision fdfde70a60685ba9b6aff901a9792542afd45fbb) @@ -0,0 +1,84 @@ +package org.lamsfoundation.lams.tool.mc; + +import java.util.Date; +import java.util.TreeSet; + +import org.lamsfoundation.lams.test.AbstractLamsTestCase; +import org.lamsfoundation.lams.tool.mc.dao.hibernate.McContentDAO; +import org.lamsfoundation.lams.tool.mc.dao.hibernate.McQueContentDAO; +import org.lamsfoundation.lams.tool.mc.dao.hibernate.McQueUsrDAO; +import org.lamsfoundation.lams.tool.mc.dao.hibernate.McSessionDAO; +import org.lamsfoundation.lams.tool.mc.dao.hibernate.McUsrRespDAO; + + + +/** + * @author ozgurd + */ +public class McDataAccessTestCase extends AbstractLamsTestCase +{ + //These both refer to the same entry in the db. + protected final long TEST_EXISTING_CONTENT_ID = 10; + protected final long DEFAULT_CONTENT_ID = 10; + + protected final long TEST_NEW_CONTENT_ID = 11; + + protected final long TEST_EXISTING_SESSION_ID = 101; + protected final long TEST_NEW_SESSION_ID = 102; + + protected final long TEST_NEW_USER_ID = 700; + protected final long TEST_EXISTING_QUE_CONTENT_ID = 20; + protected final long TEST_NEW_QUE_CONTENT_ID = 23; + + protected final long TEST_NONEXISTING_CONTENT_ID=2475733396382404l; + + protected final long ONE_DAY = 60 * 60 * 1000 * 24; + + public final String NOT_ATTEMPTED = "NOT_ATTEMPTED"; + public final String INCOMPLETE = "INCOMPLETE"; + public static String COMPLETED = "COMPLETED"; + + protected McContentDAO mcContentDAO; + protected McSessionDAO mcSessionDAO; + protected McQueUsrDAO mcQueUsrDAO; + protected McQueContentDAO mcQueContentDAO; + protected McUsrRespDAO mcUsrRespDAO; + + + protected McSession mcSession; + protected McQueContent mcQueContent; + + + public McDataAccessTestCase(String name) + { + super(name); + } + + protected void setUp() throws Exception + { + super.setUp(); + mcContentDAO = (McContentDAO) this.context.getBean("mcContentDAO"); + mcSessionDAO = (McSessionDAO) this.context.getBean("mcSessionDAO"); + mcQueUsrDAO = (McQueUsrDAO) this.context.getBean("mcQueUsrDAO"); + mcQueContentDAO = (McQueContentDAO) this.context.getBean("mcQueContentDAO"); + mcUsrRespDAO = (McUsrRespDAO) this.context.getBean("mcUsrRespDAO"); + + } + + protected String[] getContextConfigLocation() + { + System.out.println("McDataAccessTestCase will be configured"); + return new String[] {"/org/lamsfoundation/lams/tool/mc/testmcApplicationContext.xml" }; + } + + protected String getHibernateSessionFactoryName() + { + return "mcSessionFactory"; + } + + protected void tearDown() throws Exception + { + super.tearDown(); + } + +} Index: lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McOptionsContent.hbm.xml =================================================================== diff -u --- lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McOptionsContent.hbm.xml (revision 0) +++ lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McOptionsContent.hbm.xml (revision fdfde70a60685ba9b6aff901a9792542afd45fbb) @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McQueContent.hbm.xml =================================================================== diff -u --- lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McQueContent.hbm.xml (revision 0) +++ lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McQueContent.hbm.xml (revision fdfde70a60685ba9b6aff901a9792542afd45fbb) @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McQueUsr.hbm.xml =================================================================== diff -u --- lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McQueUsr.hbm.xml (revision 0) +++ lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McQueUsr.hbm.xml (revision fdfde70a60685ba9b6aff901a9792542afd45fbb) @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McSession.hbm.xml =================================================================== diff -u --- lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McSession.hbm.xml (revision 0) +++ lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McSession.hbm.xml (revision fdfde70a60685ba9b6aff901a9792542afd45fbb) @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McUsrAttempt.hbm.xml =================================================================== diff -u --- lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McUsrAttempt.hbm.xml (revision 0) +++ lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/McUsrAttempt.hbm.xml (revision fdfde70a60685ba9b6aff901a9792542afd45fbb) @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Fisheye: Tag 48c973dcec3754f35dce1f2468a5739067b47179 refers to a dead (removed) revision in file `lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/QaResources.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 48c973dcec3754f35dce1f2468a5739067b47179 refers to a dead (removed) revision in file `lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/QaUploadedFile.hbm.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 48c973dcec3754f35dce1f2468a5739067b47179 refers to a dead (removed) revision in file `lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/TestQaContent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 48c973dcec3754f35dce1f2468a5739067b47179 refers to a dead (removed) revision in file `lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/TestQaQueContent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 48c973dcec3754f35dce1f2468a5739067b47179 refers to a dead (removed) revision in file `lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/TestQaQueUsr.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 48c973dcec3754f35dce1f2468a5739067b47179 refers to a dead (removed) revision in file `lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/TestQaSession.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 48c973dcec3754f35dce1f2468a5739067b47179 refers to a dead (removed) revision in file `lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/TestQaUsrResp.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 48c973dcec3754f35dce1f2468a5739067b47179 refers to a dead (removed) revision in file `lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/dbConnection.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 48c973dcec3754f35dce1f2468a5739067b47179 refers to a dead (removed) revision in file `lams_tool_lamc/test/java/org/lamsfoundation/lams/tool/mc/testqaApplicationContext.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/AbstractQaTestCase.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/AllTests.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/QaContent.hbm.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/QaDataAccessTestCase.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/QaQueContent.hbm.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/QaQueUsr.hbm.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/QaResources.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/QaSession.hbm.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/QaUploadedFile.hbm.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/QaUsrResp.hbm.xml'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/TestQaContent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/TestQaQueContent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/TestQaQueUsr.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/TestQaSession.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/TestQaUsrResp.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/dbConnection.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag fdfde70a60685ba9b6aff901a9792542afd45fbb refers to a dead (removed) revision in file `lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/testqaApplicationContext.xml'. Fisheye: No comparison available. Pass `N' to diff?