Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml =================================================================== diff -u -rb5558c94121cc60c92ac1e2087110477380602d2 -r488701987d2200568421ecdb409bd25b3aca4d8e --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml (.../Lesson.hbm.xml) (revision b5558c94121cc60c92ac1e2087110477380602d2) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml (.../Lesson.hbm.xml) (revision 488701987d2200568421ecdb409bd25b3aca4d8e) @@ -14,7 +14,12 @@ - + + + + Index: lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java =================================================================== diff -u -rb5558c94121cc60c92ac1e2087110477380602d2 -r488701987d2200568421ecdb409bd25b3aca4d8e --- lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision b5558c94121cc60c92ac1e2087110477380602d2) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision 488701987d2200568421ecdb409bd25b3aca4d8e) @@ -67,8 +67,14 @@ //--------------------------------------------------------------------- /** identifier field */ private Long lessonId; - + /** persistent field */ + private String lessonName; + + /** persistent field */ + private String lessonDescription; + + /** persistent field */ private Date createDateTime; /** nullable persistent field */ @@ -113,25 +119,27 @@ * organization and class information. * Cain constructor pattern implementation. */ - public Lesson(Date createDateTime, User user, Integer lessonStateId, LearningDesign learningDesign,Set learnerProgresses) + public Lesson(String name,String description,Date createDateTime, User user, Integer lessonStateId, LearningDesign learningDesign,Set learnerProgresses) { - this(null,createDateTime,null,null,user,lessonStateId,learningDesign,null,null,learnerProgresses); + this(null,name,description,createDateTime,null,null,user,lessonStateId,learningDesign,null,null,learnerProgresses); } /** * Constructor that creates a new lesson with organization and class * information. * Chain construtor pattern implementation. */ - public Lesson(Date createDateTime, User user, Integer lessonStateId, LearningDesign learningDesign, LessonClass lessonClass, Organisation organisation, Set learnerProgresses) + public Lesson(String name,String description,Date createDateTime, User user, Integer lessonStateId, LearningDesign learningDesign, LessonClass lessonClass, Organisation organisation, Set learnerProgresses) { - this(null,createDateTime,null,null,user,lessonStateId,learningDesign,lessonClass,organisation,learnerProgresses); + this(null,name,description,createDateTime,null,null,user,lessonStateId,learningDesign,lessonClass,organisation,learnerProgresses); } /** full constructor */ - public Lesson(Long lessonId, Date createDateTime, Date startDateTime, Date endDateTime, User user, Integer lessonStateId, LearningDesign learningDesign, LessonClass lessonClass, Organisation organisation, Set learnerProgresses) + public Lesson(Long lessonId,String name,String description, Date createDateTime, Date startDateTime, Date endDateTime, User user, Integer lessonStateId, LearningDesign learningDesign, LessonClass lessonClass, Organisation organisation, Set learnerProgresses) { this.lessonId = lessonId; + this.lessonName = name; + this.lessonDescription = description; this.createDateTime = createDateTime; this.startDateTime = startDateTime; this.endDateTime = endDateTime; @@ -153,19 +161,23 @@ * @param newLessonClass the lesson class that will run this lesson. * @return the new lesson object. */ - public static Lesson createNewLesson(User user, + public static Lesson createNewLesson(String lessonName, + String lessonDescription, + User user, Organisation organisation, LearningDesign ld, LessonClass newLessonClass) { //setup new lesson - return new Lesson(new Date(System.currentTimeMillis()), - user, - Lesson.CREATED, - ld, - newLessonClass,//lesson class - organisation, - new HashSet());//learner progress + return new Lesson(lessonName, + lessonDescription, + new Date(System.currentTimeMillis()), + user, + Lesson.CREATED, + ld, + newLessonClass,//lesson class + organisation, + new HashSet());//learner progress } /** @@ -177,10 +189,14 @@ * @param ld the learning design that this lesson is based on. * @return the lesson created. */ - public static Lesson createNewLessonWithoutClass(User user, + public static Lesson createNewLessonWithoutClass(String lessonName, + String lessonDescription, + User user, LearningDesign ld) { - return new Lesson(new Date(System.currentTimeMillis()), + return new Lesson(lessonName, + lessonDescription, + new Date(System.currentTimeMillis()), user, Lesson.CREATED, ld, @@ -201,6 +217,38 @@ this.lessonId = lessonId; } + /** + * @hibernate.property column="name" length="255" not-null="true" + * @return Returns the lessonName. + */ + public String getLessonName() + { + return lessonName; + } + /** + * @param lessonName The lessonName to set. + */ + public void setLessonName(String lessonName) + { + this.lessonName = lessonName; + } + + /** + * @hibernate.property column="description" length="65535" + * @return Returns the lessonDescription. + */ + public String getLessonDescription() + { + return lessonDescription; + } + /** + * @param lessonDescription The lessonDescription to set. + */ + public void setLessonDescription(String lessonDescription) + { + this.lessonDescription = lessonDescription; + } + /** * @hibernate.property type="java.sql.Timestamp" column="create_date_time" * length="19" @@ -384,5 +432,4 @@ this.getLearningDesign().getDescription(), this.lessonStateId); } - } Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dto/LessonDTO.java =================================================================== diff -u -rffedc450c9e442cbefc9a7ddd8aa26933041b6fa -r488701987d2200568421ecdb409bd25b3aca4d8e --- lams_common/src/java/org/lamsfoundation/lams/lesson/dto/LessonDTO.java (.../LessonDTO.java) (revision ffedc450c9e442cbefc9a7ddd8aa26933041b6fa) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dto/LessonDTO.java (.../LessonDTO.java) (revision 488701987d2200568421ecdb409bd25b3aca4d8e) @@ -42,7 +42,7 @@ // attributes //--------------------------------------------------------------------- private Long lessonId; - private String learningDesignTitle; + private String lessonTitle; private String learningDesignDescription; private Integer lessonStateId; @@ -58,7 +58,7 @@ Integer lessonStateId) { this.lessonId = lessonId; - this.learningDesignTitle = learningDesignTitle; + this.lessonTitle = learningDesignTitle; this.learningDesignDescription = learningDesignDescription; this.lessonStateId = lessonStateId; @@ -97,6 +97,6 @@ */ public String getLearningDesignTitle() { - return learningDesignTitle; + return lessonTitle; } } Index: lams_common/test/java/org/lamsfoundation/lams/AbstractLamsTestCase.java =================================================================== diff -u -rceebf32d92002b7509364edecf1da2405913e8e7 -r488701987d2200568421ecdb409bd25b3aca4d8e --- lams_common/test/java/org/lamsfoundation/lams/AbstractLamsTestCase.java (.../AbstractLamsTestCase.java) (revision ceebf32d92002b7509364edecf1da2405913e8e7) +++ lams_common/test/java/org/lamsfoundation/lams/AbstractLamsTestCase.java (.../AbstractLamsTestCase.java) (revision 488701987d2200568421ecdb409bd25b3aca4d8e) @@ -31,6 +31,7 @@ { protected ApplicationContext context; + private boolean shouldFlush = true; /** * */ @@ -78,7 +79,7 @@ //clean the hibernate session SessionFactory sessionFactory = (SessionFactory)this.context.getBean("coreSessionFactory"); SessionHolder holder = (SessionHolder)TransactionSynchronizationManager.getResource(sessionFactory); - if (holder != null) { + if (holder != null&&shouldFlush) { Session s = holder.getSession(); s.flush(); TransactionSynchronizationManager.unbindResource(sessionFactory); @@ -96,4 +97,11 @@ return null; } + /** + * @param shouldFlush The shouldFlush to set. + */ + public void setShouldFlush(boolean shouldFlush) + { + this.shouldFlush = shouldFlush; + } } Index: lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java =================================================================== diff -u -r420ed5200c4cb6d9d220368cad111324e7984646 -r488701987d2200568421ecdb409bd25b3aca4d8e --- lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java (.../LessonDataAccessTestCase.java) (revision 420ed5200c4cb6d9d220368cad111324e7984646) +++ lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java (.../LessonDataAccessTestCase.java) (revision 488701987d2200568421ecdb409bd25b3aca4d8e) @@ -225,7 +225,9 @@ */ protected void initLessonData() { - testLesson = new Lesson(new Date(System.currentTimeMillis()), + testLesson = new Lesson("Test Lesson", + "Test lesson description", + new Date(System.currentTimeMillis()), testUser, Lesson.CREATED, testLearningDesign, @@ -269,6 +271,8 @@ */ protected void assertLesson(Lesson lesson) { + assertEquals("check up the lesson name","Test Lesson",lesson.getLessonName()); + assertEquals("check up the lesson description","Test lesson description",lesson.getLessonDescription()); assertEquals("check up creation time",testLesson.getCreateDateTime().toString(), lesson.getCreateDateTime().toString()); assertEquals("check up user who created this lesson",testUser.getLogin(),lesson.getUser().getLogin()); Index: lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java =================================================================== diff -u -rb5558c94121cc60c92ac1e2087110477380602d2 -r488701987d2200568421ecdb409bd25b3aca4d8e --- lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java (.../TestLessonDAO.java) (revision b5558c94121cc60c92ac1e2087110477380602d2) +++ lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java (.../TestLessonDAO.java) (revision 488701987d2200568421ecdb409bd25b3aca4d8e) @@ -14,6 +14,7 @@ import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.LessonDataAccessTestCase; +import org.springframework.orm.hibernate.HibernateSystemException; import junit.framework.TestCase; @@ -91,6 +92,25 @@ List lessons = this.lessonDao.getActiveLessonsForLearner(this.testUser); assertEquals("verify the number of lesson we get",1,lessons.size()); - } + + public void testCreateLessonWithoutName() + { + Lesson lessonWithoutName = Lesson.createNewLessonWithoutClass(null, + null, + testUser, + testLearningDesign); + + try + { + this.lessonDao.saveLesson(lessonWithoutName); + fail("we are meant to get failure of inserting a lesson without name"); + } + catch (HibernateSystemException e) + { + assertTrue("excpetion expected.",true); + this.setShouldFlush(false); + } + } + }