From bebd4282811d302d4c3f48f2efe9c3ee2df03231 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Mon, 5 May 2008 10:19:35 +0000 Subject: [PATCH] Introduce tree test result collections git-svn-id: https://svn.argeo.org/slc/trunk@1122 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../slc/core/test/tree/TreeTestResult.java | 15 +++++- .../test/tree/TreeTestResultCollection.java | 33 ++++++++++++ .../tree/TreeTestResultCollectionDao.java | 9 ++++ .../TreeTestResultCollectionDaoHibernate.java | 27 ++++++++++ .../hibernate/spring/applicationContext.xml | 9 ++++ .../tree/TreeTestResultCollection.hbm.xml | 16 ++++++ ...eTestResultCollectionDaoHibernateTest.java | 52 +++++++++++++++++++ .../slc/hibernate/applicationContext.xml | 4 ++ 8 files changed, 164 insertions(+), 1 deletion(-) create mode 100644 org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultCollection.java create mode 100644 org.argeo.slc.core/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultCollectionDao.java create mode 100644 org.argeo.slc.core/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java create mode 100644 org.argeo.slc.core/src/main/resources/org/argeo/slc/hibernate/test/tree/TreeTestResultCollection.hbm.xml create mode 100644 org.argeo.slc.core/src/test/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernateTest.java diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java index a012c4451..328d5981a 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java @@ -24,7 +24,7 @@ import org.argeo.slc.core.test.TestRunAware; * Complex implementation of a test result compatible with a tree based * structure. */ -public class TreeTestResult implements TestResult, StructureAware { +public class TreeTestResult implements TestResult, StructureAware,Comparable { private Log log = LogFactory.getLog(TreeTestResult.class); private List> listeners = new Vector>(); @@ -167,4 +167,17 @@ public class TreeTestResult implements TestResult, StructureAware { return currentTestRun; } + public int compareTo(TreeTestResult ttr2) { + TreeTestResult ttr1 = this; + if (ttr1.getCloseDate() != null && ttr2.getCloseDate() != null) { + return -ttr1.getCloseDate().compareTo(ttr2.getCloseDate()); + } else if (ttr1.getCloseDate() != null && ttr2.getCloseDate() == null) { + return 1; + } else if (ttr1.getCloseDate() == null && ttr2.getCloseDate() != null) { + return -1; + } else { + return ttr1.getUuid().compareTo(ttr2.getUuid()); + } + } + } diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultCollection.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultCollection.java new file mode 100644 index 000000000..21ba921b0 --- /dev/null +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResultCollection.java @@ -0,0 +1,33 @@ +package org.argeo.slc.core.test.tree; + +import java.util.SortedSet; +import java.util.TreeSet; + +public class TreeTestResultCollection { + private String id; + private SortedSet results = new TreeSet(); + + public TreeTestResultCollection() { + } + + public TreeTestResultCollection(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public SortedSet getResults() { + return results; + } + + public void setResults(SortedSet results) { + this.results = results; + } + +} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultCollectionDao.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultCollectionDao.java new file mode 100644 index 000000000..7d2f0ab08 --- /dev/null +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultCollectionDao.java @@ -0,0 +1,9 @@ +package org.argeo.slc.dao.test.tree; + +import org.argeo.slc.core.test.tree.TreeTestResultCollection; + +public interface TreeTestResultCollectionDao { + public void create(TreeTestResultCollection ttrCollection); + public void update(TreeTestResultCollection ttrCollection); + public TreeTestResultCollection getTestResultCollection(String id); +} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java new file mode 100644 index 000000000..cdebae6d3 --- /dev/null +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java @@ -0,0 +1,27 @@ +package org.argeo.slc.hibernate.test.tree; + +import org.springframework.orm.hibernate3.HibernateTemplate; +import org.springframework.orm.hibernate3.support.HibernateDaoSupport; + +import org.hibernate.SessionFactory; + +import org.argeo.slc.core.test.tree.TreeTestResultCollection; +import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao; + +public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport + implements TreeTestResultCollectionDao { + + public void create(TreeTestResultCollection ttrCollection) { + getHibernateTemplate().save(ttrCollection); + } + + public TreeTestResultCollection getTestResultCollection(String id) { + return (TreeTestResultCollection) getHibernateTemplate().get( + TreeTestResultCollection.class, id); + } + + public void update(TreeTestResultCollection ttrCollection) { + getHibernateTemplate().update(ttrCollection); + } + +} diff --git a/org.argeo.slc.core/src/main/resources/org/argeo/slc/hibernate/spring/applicationContext.xml b/org.argeo.slc.core/src/main/resources/org/argeo/slc/hibernate/spring/applicationContext.xml index 588e00f2f..19f1d73c8 100644 --- a/org.argeo.slc.core/src/main/resources/org/argeo/slc/hibernate/spring/applicationContext.xml +++ b/org.argeo.slc.core/src/main/resources/org/argeo/slc/hibernate/spring/applicationContext.xml @@ -37,6 +37,9 @@ org/argeo/slc/hibernate/test/tree/TreeTestResult.hbm.xml + + org/argeo/slc/hibernate/test/tree/TreeTestResultCollection.hbm.xml + org/argeo/slc/hibernate/test/tree/PartSubList.hbm.xml @@ -61,6 +64,7 @@ @@ -80,6 +84,11 @@ abstract="true"> + + + diff --git a/org.argeo.slc.core/src/main/resources/org/argeo/slc/hibernate/test/tree/TreeTestResultCollection.hbm.xml b/org.argeo.slc.core/src/main/resources/org/argeo/slc/hibernate/test/tree/TreeTestResultCollection.hbm.xml new file mode 100644 index 000000000..19fce6656 --- /dev/null +++ b/org.argeo.slc.core/src/main/resources/org/argeo/slc/hibernate/test/tree/TreeTestResultCollection.hbm.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/org.argeo.slc.core/src/test/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernateTest.java b/org.argeo.slc.core/src/test/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernateTest.java new file mode 100644 index 000000000..786ff527b --- /dev/null +++ b/org.argeo.slc.core/src/test/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernateTest.java @@ -0,0 +1,52 @@ +package org.argeo.slc.hibernate.test.tree; + +import org.argeo.slc.core.test.tree.TreeTestResult; +import org.argeo.slc.core.test.tree.TreeTestResultCollection; +import org.argeo.slc.core.test.tree.TreeTestResultTestUtils; +import org.argeo.slc.dao.test.tree.TreeTestResultCollectionDao; +import org.argeo.slc.dao.test.tree.TreeTestResultDao; +import org.argeo.slc.unit.AbstractSpringTestCase; +import org.argeo.slc.unit.test.tree.UnitTestTreeUtil; + +public class TreeTestResultCollectionDaoHibernateTest extends + AbstractSpringTestCase { + + public void testScenario() { + TreeTestResultDao ttrDao = getBean(TreeTestResultDao.class); + TreeTestResultCollectionDao ttrcDao = getBean(TreeTestResultCollectionDao.class); + + String ttrcName = "testCollection"; + + TreeTestResult ttr1 = TreeTestResultTestUtils + .createCompleteTreeTestResult(); + ttrDao.create(ttr1); + + TreeTestResultCollection ttrc = new TreeTestResultCollection(ttrcName); + ttrcDao.create(ttrc); + + ttrc.getResults().add(ttr1); + ttrcDao.update(ttrc); + + TreeTestResult ttr2 = TreeTestResultTestUtils + .createCompleteTreeTestResult(); + ttrDao.create(ttr2); + + ttrc.getResults().add(ttr2); + ttrcDao.update(ttrc); + + ttrc.getResults().remove(ttr1); + ttrcDao.update(ttrc); + + TreeTestResultCollection ttrcPersist = ttrcDao + .getTestResultCollection(ttrcName); + assertEquals(1, ttrcPersist.getResults().size()); + UnitTestTreeUtil.assertTreeTestResult(ttr2, ttrcPersist.getResults() + .iterator().next()); + } + + @Override + protected String getApplicationContextLocation() { + return "org/argeo/slc/hibernate/applicationContext.xml"; + } + +} diff --git a/org.argeo.slc.core/src/test/resources/org/argeo/slc/hibernate/applicationContext.xml b/org.argeo.slc.core/src/test/resources/org/argeo/slc/hibernate/applicationContext.xml index 8c6c433c1..31158cf49 100644 --- a/org.argeo.slc.core/src/test/resources/org/argeo/slc/hibernate/applicationContext.xml +++ b/org.argeo.slc.core/src/test/resources/org/argeo/slc/hibernate/applicationContext.xml @@ -14,6 +14,10 @@ parent="slcTemplates.dao.testResultDao"> + + + -- 2.39.5