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);
+ }
+ }
+
}