diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReport.java b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReport.java
index fb1403835..28a29c57b 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReport.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReport.java
@@ -33,6 +33,14 @@ public class WorkReport {
this.workReportLines = workReportLines;
}
+ public Long getId() {
+ return id;
+ }
+
+ public long getVersion() {
+ return version;
+ }
+
public Date getDate() {
return date;
}
@@ -53,7 +61,7 @@ public class WorkReport {
return workReportType;
}
- public void setWorkReportType(WorkReportType workReporType) {
+ public void setWorkReportType(WorkReportType workReportType) {
this.workReportType = workReportType;
}
diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLine.java b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLine.java
index b034ce4c3..e7d2020f2 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLine.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLine.java
@@ -36,6 +36,14 @@ public class WorkReportLine {
this.criterions = criterions;
}
+ public Long getId() {
+ return id;
+ }
+
+ public long getVersion() {
+ return version;
+ }
+
public Integer getNumHours() {
return numHours;
}
diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/workreports/entities/WorkReports.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/workreports/entities/WorkReports.hbm.xml
index 10e969384..e72331cbe 100644
--- a/navalplanner-business/src/main/resources/org/navalplanner/business/workreports/entities/WorkReports.hbm.xml
+++ b/navalplanner-business/src/main/resources/org/navalplanner/business/workreports/entities/WorkReports.hbm.xml
@@ -11,9 +11,9 @@
-
-
-
+
+
+
@@ -44,12 +44,12 @@
-
+
-
+
diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/AbstractWorkReportTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/AbstractWorkReportTest.java
new file mode 100644
index 000000000..053069a16
--- /dev/null
+++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/AbstractWorkReportTest.java
@@ -0,0 +1,70 @@
+package org.navalplanner.business.test.workreports.daos;
+
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.UUID;
+
+import org.navalplanner.business.resources.daos.impl.CriterionTypeDAO;
+import org.navalplanner.business.resources.entities.CriterionType;
+import org.navalplanner.business.workreports.daos.WorkReportTypeDAO;
+import org.navalplanner.business.workreports.entities.WorkReport;
+import org.navalplanner.business.workreports.entities.WorkReportLine;
+import org.navalplanner.business.workreports.entities.WorkReportType;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public abstract class AbstractWorkReportTest {
+
+ @Autowired
+ CriterionTypeDAO criterionTypeDAO;
+
+ @Autowired
+ WorkReportTypeDAO workReportTypeDAO;
+
+ // Create a Set of CriterionType
+ public Set createValidCriterionTypes() {
+ Set criterionTypes = new HashSet();
+
+ CriterionType criterionType = new CriterionType(UUID.randomUUID()
+ .toString());
+ criterionTypeDAO.save(criterionType);
+ criterionTypes.add(criterionType);
+
+ return criterionTypes;
+ }
+
+ public WorkReportType createValidWorkReportType() {
+ Set criterionTypes = createValidCriterionTypes();
+ return new WorkReportType(UUID.randomUUID().toString(), criterionTypes);
+ }
+
+ public WorkReportLine createValidWorkReportLine() {
+ WorkReportLine workReportLine = new WorkReportLine();
+ workReportLine.setNumHours(100);
+ return workReportLine;
+ }
+
+ public Set createValidWorkReportLines() {
+ Set workReportLines = new HashSet();
+
+ WorkReportLine workReportLine = createValidWorkReportLine();
+ workReportLines.add(workReportLine);
+
+ return workReportLines;
+ }
+
+ public WorkReport createValidWorkReport() {
+ WorkReport workReport = new WorkReport();
+
+ workReport.setDate(new Date());
+ workReport.setPlace(UUID.randomUUID().toString());
+
+ WorkReportType workReportType = createValidWorkReportType();
+ workReportTypeDAO.save(workReportType);
+ workReport.setWorkReportType(workReportType);
+
+ workReport.setWorkReportLines(new HashSet());
+
+ return workReport;
+ }
+}
diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/WorkReportDAOTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/WorkReportDAOTest.java
index 6113ccc3a..4fda477f4 100644
--- a/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/WorkReportDAOTest.java
+++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/WorkReportDAOTest.java
@@ -1,12 +1,19 @@
package org.navalplanner.business.test.workreports.daos;
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertTrue;
import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE;
import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;
+import java.util.List;
+
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.workreports.daos.IWorkReportDAO;
+import org.navalplanner.business.workreports.entities.WorkReport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -19,23 +26,43 @@ import org.springframework.transaction.annotation.Transactional;
* @author Diego Pino García
*/
@Transactional
-public class WorkReportDAOTest {
+public class WorkReportDAOTest extends AbstractWorkReportTest {
@Autowired
private IWorkReportDAO workReportDAO;
@Test
- public void testSaveWorkReport() {
- assertTrue(true);
+ public void testInSpringContainer() {
+ assertNotNull(workReportDAO);
}
@Test
- public void testRemoveWorkReport() {
- assertTrue(true);
+ public void testSaveWorkReport() {
+ WorkReport workReport = createValidWorkReport();
+ workReportDAO.save(workReport);
+ assertTrue(workReportDAO.exists(workReport.getId()));
+ }
+
+ @Test
+ public void testRemoveWorkReport() throws InstanceNotFoundException {
+ WorkReport workReport = createValidWorkReport();
+ workReportDAO.save(workReport);
+ workReportDAO.remove(workReport.getId());
+ assertFalse(workReportDAO.exists(workReport.getId()));
}
@Test
public void testListWorkReport() {
- assertTrue(true);
+ int previous = workReportDAO.list(WorkReport.class).size();
+
+ WorkReport workReport1 = createValidWorkReport();
+ workReportDAO.save(workReport1);
+ WorkReport workReport2 = createValidWorkReport();
+ workReportDAO.save(workReport1);
+ workReportDAO.save(workReport2);
+
+ List list = workReportDAO
+ .list(WorkReport.class);
+ assertEquals(previous + 2, list.size());
}
}
diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/WorkReportLineDAOTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/WorkReportLineDAOTest.java
index 1569fa0fe..5b759adda 100644
--- a/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/WorkReportLineDAOTest.java
+++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/WorkReportLineDAOTest.java
@@ -1,12 +1,18 @@
package org.navalplanner.business.test.workreports.daos;
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE;
import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;
+import java.util.List;
+
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.workreports.daos.IWorkReportLineDAO;
+import org.navalplanner.business.workreports.entities.WorkReportLine;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -19,23 +25,38 @@ import org.springframework.transaction.annotation.Transactional;
* @author Diego Pino García
*/
@Transactional
-public class WorkReportLineDAOTest {
+public class WorkReportLineDAOTest extends AbstractWorkReportTest {
@Autowired
private IWorkReportLineDAO workReportLineDAO;
@Test
public void testSaveWorkReportLine() {
- assertTrue(true);
+ WorkReportLine workReportLine = createValidWorkReportLine();
+ workReportLineDAO.save(workReportLine);
+ assertTrue(workReportLineDAO.exists(workReportLine.getId()));
}
@Test
- public void testRemoveWorkReportLine() {
- assertTrue(true);
+ public void testRemoveWorkReportLine() throws InstanceNotFoundException {
+ WorkReportLine workReportLine = createValidWorkReportLine();
+ workReportLineDAO.save(workReportLine);
+ workReportLineDAO.remove(workReportLine.getId());
+ assertFalse(workReportLineDAO.exists(workReportLine.getId()));
}
@Test
public void testListWorkReportLine() {
- assertTrue(true);
+ int previous = workReportLineDAO.list(WorkReportLine.class).size();
+
+ WorkReportLine workReportType1 = createValidWorkReportLine();
+ workReportLineDAO.save(workReportType1);
+ WorkReportLine workReportType2 = createValidWorkReportLine();
+ workReportLineDAO.save(workReportType1);
+ workReportLineDAO.save(workReportType2);
+
+ List list = workReportLineDAO
+ .list(WorkReportLine.class);
+ assertEquals(previous + 2, list.size());
}
}
diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/WorkReportTypeDAOTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/WorkReportTypeDAOTest.java
index 77dd3ca85..b9353316c 100644
--- a/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/WorkReportTypeDAOTest.java
+++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/workreports/daos/WorkReportTypeDAOTest.java
@@ -1,18 +1,16 @@
package org.navalplanner.business.test.workreports.daos;
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE;
import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.UUID;
+import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.navalplanner.business.resources.daos.ICriterionTypeDAO;
-import org.navalplanner.business.resources.entities.CriterionType;
-import org.navalplanner.business.test.resources.daos.CriterionTypeDAOTest;
+import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.workreports.daos.IWorkReportTypeDAO;
import org.navalplanner.business.workreports.entities.WorkReportType;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,36 +25,38 @@ import org.springframework.transaction.annotation.Transactional;
* @author Diego Pino García
*/
@Transactional
-public class WorkReportTypeDAOTest {
+public class WorkReportTypeDAOTest extends AbstractWorkReportTest {
@Autowired
private IWorkReportTypeDAO workReportTypeDAO;
- @Autowired
- private ICriterionTypeDAO criterionTypeDAO;
-
@Test
public void testSaveWorkReportType() {
- String unique = UUID.randomUUID().toString();
- CriterionType criterionType = CriterionTypeDAOTest
- .createValidCriterionType();
- criterionTypeDAO.save(criterionType);
- Set criterionTypes = new HashSet();
- criterionTypes.add(criterionType);
-
- WorkReportType workReportType = new WorkReportType(unique,
- criterionTypes);
+ WorkReportType workReportType = createValidWorkReportType();
workReportTypeDAO.save(workReportType);
assertTrue(workReportTypeDAO.exists(workReportType.getId()));
}
@Test
- public void testRemoveWorkReportType() {
- assertTrue(true);
+ public void testRemoveWorkReportType() throws InstanceNotFoundException {
+ WorkReportType workReportType = createValidWorkReportType();
+ workReportTypeDAO.save(workReportType);
+ workReportTypeDAO.remove(workReportType.getId());
+ assertFalse(workReportTypeDAO.exists(workReportType.getId()));
}
@Test
public void testListWorkReportType() {
- assertTrue(true);
+ int previous = workReportTypeDAO.list(WorkReportType.class).size();
+
+ WorkReportType workReportType1 = createValidWorkReportType();
+ workReportTypeDAO.save(workReportType1);
+ WorkReportType workReportType2 = createValidWorkReportType();
+ workReportTypeDAO.save(workReportType1);
+ workReportTypeDAO.save(workReportType2);
+
+ List list = workReportTypeDAO
+ .list(WorkReportType.class);
+ assertEquals(previous + 2, list.size());
}
}