<target name="init.slcbase" if="slc.basePackage">\r
<unzip dest="${slc.base}" src="${slc.basePackage}" />\r
\r
- <copy todir="${dist.base}">\r
+ <copy todir="${dist.base}" overwrite="true" verbose="true">\r
<fileset dir="${slc.base}">\r
<include name="doc/argeo-slc/**" />\r
<include name="bin/*" />\r
</fileset>\r
</copy>\r
\r
- <copy todir="${main.libdir}">\r
+ <copy todir="${main.libdir}" overwrite="true" verbose="true">\r
<fileset dir="${slc.base}/lib">\r
<include name="*" />\r
</fileset>\r
</copy>\r
- <copy todir="${main.libdir-src}">\r
+ <copy todir="${main.libdir-src}" overwrite="true" verbose="true">\r
<fileset dir="${slc.base}/lib-src">\r
<include name="*" />\r
</fileset>\r
\r
// initialize config\r
SlcAntConfig slcAntConfig = new SlcAntConfig();\r
- \r
- if(!slcAntConfig.initProject(project)){\r
+\r
+ if (!slcAntConfig.initProject(project)) {\r
// not SLC compatible, do normal Ant\r
super.parse(project, source);\r
return;\r
this.deploymentBean = deploymentBean;\r
}\r
\r
- /** Creates deployment data sub tag.*/\r
+ /** Creates deployment data sub tag. */\r
public DeploymentDataArg createDeploymentData() {\r
deploymentDataArg = new DeploymentDataArg();\r
return deploymentDataArg;\r
}\r
\r
- /** Creates target data sub tag.*/\r
+ /** Creates target data sub tag. */\r
public TargetDataArg createTargetData() {\r
targetDataArg = new TargetDataArg();\r
return targetDataArg;\r
package org.argeo.slc.ant.test;\r
\r
import org.argeo.slc.ant.structure.SAwareTask;\r
-import org.argeo.slc.core.structure.StructureAware;\r
import org.argeo.slc.core.structure.StructureRegistry;\r
-import org.argeo.slc.core.test.TestReport;\r
import org.argeo.slc.core.test.TestResult;\r
\r
/** Ant tasks closing a given result. */\r
package org.argeo.slc.core.deploy;\r
\r
-public interface WritableDeployment extends ExecutableDeployment{\r
+public interface WritableDeployment extends ExecutableDeployment {\r
public void setDeployedSystem(DeployedSystem deployedSystem);\r
\r
public void setTargetData(TargetData targetData);\r
package org.argeo.slc.core.test;\r
\r
-/** A test run that can be executed*/\r
-public interface ExecutableTestRun extends TestRun{\r
+/** A test run that can be executed */\r
+public interface ExecutableTestRun extends TestRun {\r
\r
/** Executes this test run. */\r
public void execute();\r
* Basic implementation of a result part, implementing the standard three status\r
* approach for test results.\r
* </p>\r
+ * \r
* @see TestStatus\r
*/\r
public class SimpleResultPart implements TestResultPart, TestStatus {\r
import org.apache.commons.logging.LogFactory;\r
\r
/**\r
- * Basic implementation of a test result containing only a list of result\r
- * parts.\r
+ * Basic implementation of a test result containing only a list of result parts.\r
*/\r
public class SimpleTestResult implements TestResult {\r
private static Log log = LogFactory.getLog(SimpleTestResult.class);\r
* \r
* @see TestResult\r
*/\r
-public interface TestResultPart { \r
+public interface TestResultPart {\r
public Integer getStatus();\r
\r
public String getMessage();\r
package org.argeo.slc.core.test;\r
\r
/**\r
- * Simple statuses. \r
+ * Simple statuses.\r
* <p>\r
* <ul>\r
* <li>{@link #PASSED}: the test succeeded</li>\r
thread = null;\r
partStructs.notifyAll();\r
}\r
- postClose((TreeTestResult)testResult);\r
+ postClose((TreeTestResult) testResult);\r
}\r
\r
public final void resultPartAdded(TestResult testResult,\r
\r
private List<TestResultPart> parts = new Vector<TestResultPart>();\r
\r
- /** Gets the result parts.*/\r
+ /** Gets the result parts. */\r
public List<TestResultPart> getParts() {\r
return parts;\r
}\r
\r
- /** Sets the result parts.*/\r
+ /** Sets the result parts. */\r
public void setParts(List<TestResultPart> parts) {\r
this.parts = parts;\r
}\r
private List<TestResultListener> listeners = new Vector<TestResultListener>();\r
\r
private TreeSPath currentPath;\r
- \r
+\r
private Date closeDate;\r
\r
private boolean isClosed = false;\r
private SortedMap<TreeSPath, PartSubList> resultParts = new TreeMap<TreeSPath, PartSubList>();\r
\r
private StructureRegistry registry;\r
- \r
+\r
public TestResultId getTestResultId() {\r
return testResultId;\r
}\r
return testResultId;\r
}\r
\r
- /** Sets the test result id as a numeric test result id.*/\r
+ /** Sets the test result id as a numeric test result id. */\r
public void setNumericResultId(NumericTRId testResultId) {\r
this.testResultId = testResultId;\r
}\r
\r
- /** Sets the list of listeners.*/\r
+ /** Sets the list of listeners. */\r
public void setListeners(List<TestResultListener> listeners) {\r
this.listeners = listeners;\r
}\r
this.registry = registry;\r
}\r
\r
- /** Gets the current path.*/\r
+ /** Gets the current path. */\r
public TreeSPath getCurrentPath() {\r
return currentPath;\r
}\r
listeners.clear();\r
}\r
isClosed = true;\r
- \r
+\r
log.info("Test Result #" + getTestResultId() + " closed.");\r
}\r
\r
this.tid = tid;\r
}\r
\r
- /** Gets the related registry (can be null).*/\r
+ /** Gets the related registry (can be null). */\r
public StructureRegistry getRegistry() {\r
return registry;\r
}\r
\r
- /** Sets the related registry.*/\r
+ /** Sets the related registry. */\r
public void setRegistry(StructureRegistry registry) {\r
this.registry = registry;\r
}\r
return closeDate;\r
}\r
\r
- /** Sets the close date (for ORM)*/\r
+ /** Sets the close date (for ORM) */\r
public void setCloseDate(Date closeDate) {\r
this.closeDate = closeDate;\r
}\r
return reportDir;\r
}\r
\r
- void addStyles(StringBuffer buf){\r
+ void addStyles(StringBuffer buf) {\r
try {\r
buf.append("<style type=\"text/css\">\n");\r
InputStream in = FullHtmlTreeReport.class\r
- .getResourceAsStream("style.css");\r
+ .getResourceAsStream("style.css");\r
String styles = IOUtils.toString(in);\r
IOUtils.closeQuietly(in);\r
buf.append(styles);\r
throw new SlcException("Cannot load styles", e);\r
}\r
}\r
- \r
+\r
private void resourceToFile(String resourceName) {\r
try {\r
File file = new File(getReportDir() + File.separator + resourceName);\r
package org.argeo.slc.core.test.tree.htmlreport;\r
\r
import java.io.IOException;\r
+import java.util.Date;\r
import java.util.SortedMap;\r
import java.util.TreeMap;\r
\r
buf.append("<a name=\"top\"/>\n");\r
buf.append("<h1>Result #").append(result.getTestResultId()).append(\r
"</h1>\n");\r
- buf.append(report.sdf.format(result.getCloseDate()));\r
+ Date closeDate = result.getCloseDate();\r
+ if (closeDate == null) {\r
+ buf.append("[Not closed]");\r
+ } else {\r
+ buf.append(report.sdf.format(closeDate));\r
+ }\r
\r
// TOC\r
generateToc(buf, registry);\r
import java.io.IOException;\r
import java.util.Date;\r
\r
-import org.argeo.slc.core.SlcException;\r
import org.argeo.slc.core.test.tree.TreeTestResult;\r
\r
class ResultsList {\r
buf.append("<td>");\r
Date closeDate = result.getCloseDate();\r
if (closeDate == null) {\r
- throw new SlcException("No close date");\r
+ buf.append("[Not closed]");\r
+ } else {\r
+ buf.append(report.sdf.format(closeDate));\r
}\r
- buf.append(report.sdf.format(closeDate));\r
buf.append("</td>\n");\r
// Id and link\r
buf.append("<td><a class=\"nav\" href=\"");\r
\r
public interface TreeSPathDao {\r
public void create(TreeSPath path);\r
+\r
public TreeSPath getTreeSPath(String pathString);\r
+\r
public TreeSPath getOrCreate(TreeSPath pathTransient);\r
}\r
\r
/** The root class for issues which happened during a diff. */\r
public abstract class DiffIssue implements Comparable<DiffIssue> {\r
- /** The position of this issue.*/\r
+ /** The position of this issue. */\r
protected final DiffPosition position;\r
\r
- /** Constructor*/\r
+ /** Constructor */\r
public DiffIssue(DiffPosition position) {\r
super();\r
this.position = position;\r
package org.argeo.slc.diff;\r
\r
-\r
/**\r
* A value missing in one of the file. If its position is related to expected,\r
* this means it is a left over in the reached, if its position is related to\r
public String toString() {\r
if (position.relatedFile == RelatedFile.EXPECTED) {\r
return position + ": left over " + key;\r
- }\r
- else if (position.relatedFile == RelatedFile.REACHED) {\r
+ } else if (position.relatedFile == RelatedFile.REACHED) {\r
return position + ": missing " + key;\r
}\r
return super.toString();\r
import java.util.List;\r
import java.util.Vector;\r
\r
-/** A basic implementation of <code>DiffResult</code>.*/\r
+/** A basic implementation of <code>DiffResult</code>. */\r
public class SimpleDiffResult implements DiffResult {\r
private List<DiffIssue> issues = new Vector<DiffIssue>();\r
\r
\r
import org.argeo.slc.core.UnsupportedException;\r
\r
-/** A diff position within an Xml file. <b>NOT YET IMPLEMENTED</b>.*/\r
+/** A diff position within an Xml file. <b>NOT YET IMPLEMENTED</b>. */\r
public class XPathDiffPosition extends DiffPosition {\r
\r
private String xPath;\r
createImpl(path);\r
}\r
\r
- \r
private void createImpl(TreeSPath path) {\r
if (path.getParent() != null) {\r
TreeSPath parent = getTreeSPath(path.getParent()\r
}\r
\r
public TreeSPath getOrCreate(TreeSPath pathTransient) {\r
- TreeSPath path = getTreeSPath(pathTransient\r
- .getAsUniqueString());\r
+ TreeSPath path = getTreeSPath(pathTransient.getAsUniqueString());\r
if (path != null) {\r
return path;\r
} else {\r
public class TreeSRegistryDaoHibernate extends HibernateDaoSupport implements\r
TreeSRegistryDao {\r
\r
- //private static Log log = LogFactory.getLog(TreeSRegistryDaoHibernate.class);\r
+ // private static Log log =\r
+ // LogFactory.getLog(TreeSRegistryDaoHibernate.class);\r
\r
public void create(TreeSRegistry registry) {\r
getHibernateTemplate().save(registry);\r
package org.argeo.slc.unit;\r
\r
+import junit.framework.TestCase;\r
+\r
import org.springframework.context.ApplicationContext;\r
import org.springframework.context.support.ClassPathXmlApplicationContext;\r
\r
-import junit.framework.TestCase;\r
-\r
/** Helper for tests using a Spring application co,text. */\r
public abstract class SpringBasedTestCase extends TestCase {\r
private ApplicationContext context;\r
import org.argeo.slc.core.test.TestResult;\r
import org.argeo.slc.core.test.TestRun;\r
\r
-/** Example task.*/\r
+/** Example task. */\r
public class ExampleTask implements StructureAware, TestDefinition,\r
StructureElement {\r
private TreeSPath path;\r
return description;\r
}\r
\r
- /** Sets the description.*/\r
+ /** Sets the description. */\r
public void setDescription(String description) {\r
this.description = description;\r
}\r
import java.io.FileWriter;\r
import java.io.IOException;\r
\r
-/** Example appli.*/\r
+/** Example appli. */\r
public class ExampleAppli {\r
private int skipFreq = 2;\r
\r
- /** Filters.*/\r
+ /** Filters. */\r
public void filter(String[] args) {\r
if (args.length < 2) {\r
throw new RuntimeException(\r
}\r
}\r
\r
- /** Sets the frequency of the lines to skip.*/\r
+ /** Sets the frequency of the lines to skip. */\r
public void setSkipFreq(int skipFreq) {\r
this.skipFreq = skipFreq;\r
}\r
public void testCreate() {\r
TreeSPathDao treeSPathDao = (TreeSPathDao) getContext().getBean(\r
"treeSPathDao");\r
- \r
+\r
String pathParentStr = "/root/testParent";\r
- String pathStr = pathParentStr+"/test";\r
+ String pathStr = pathParentStr + "/test";\r
TreeSPath path = TreeSPath.parseToCreatePath(pathStr);\r
treeSPathDao.create(path);\r
- \r
+\r
TreeSPath pathChild = treeSPathDao.getTreeSPath(pathStr);\r
assertEquals(path, pathChild);\r
- \r
+\r
TreeSPath pathParent = treeSPathDao.getTreeSPath(pathParentStr);\r
assertEquals(path.getParent(), pathParent);\r
}\r
protected String getApplicationContextLocation() {\r
return "org/argeo/slc/hibernate/applicationContext.xml";\r
}\r
- \r
- \r
+\r
}\r
\r
public void testCreate() {\r
TreeSRegistryDao treeSRegistryDao = (TreeSRegistryDao) getContext()\r
- .getBean("treeSRegistryDao");\r
- \r
+ .getBean("treeSRegistryDao");\r
+\r
TreeSPathDao treeSPathDao = (TreeSPathDao) getContext().getBean(\r
- "treeSPathDao");\r
+ "treeSPathDao");\r
\r
TreeSPath root = TreeSPath.parseToCreatePath("/root");\r
TreeSPath path = root.createChild("test");\r
- \r
+\r
treeSPathDao.create(root);\r
treeSPathDao.create(path);\r
- \r
+\r
TreeSRegistry registry = new TreeSRegistry();\r
registry.setRoot(root);\r
- String desc= "desc";\r
+ String desc = "desc";\r
registry.register(path, new SimpleSElement(desc));\r
- \r
+\r
treeSRegistryDao.create(registry);\r
- \r
+\r
TreeSRegistry registry2 = treeSRegistryDao.getTreeSRegistry(path);\r
SimpleSElement element = registry2.getElements().get(path);\r
assertEquals(desc, element.getDescription());\r
treeTestResult.notifyCurrentPath(null, path);\r
treeTestResult.addResultPart(partPassed);\r
treeTestResult.addResultPart(partFailed);\r
- \r
+\r
Date closeDate = new Date();\r
treeTestResult.setCloseDate(closeDate);\r
\r
TreeTestResult treeTestResult2 = (TreeTestResult) testResultDao\r
.getTestResult(trId);\r
PartSubList list = treeTestResult2.getResultParts().get(path);\r
- \r
- assertEquals(2,list.getParts().size());\r
- SimpleResultPart part0 = (SimpleResultPart)list.getParts().get(0);\r
- assertEquals(TestStatus.PASSED, (int)part0.getStatus());\r
- assertEquals(msgPassed,part0.getMessage());\r
- \r
- SimpleResultPart part1 = (SimpleResultPart)list.getParts().get(1);\r
- assertEquals(TestStatus.FAILED, (int)part1.getStatus());\r
- assertEquals(msgFailed,part1.getMessage());\r
- \r
+\r
+ assertEquals(2, list.getParts().size());\r
+ SimpleResultPart part0 = (SimpleResultPart) list.getParts().get(0);\r
+ assertEquals(TestStatus.PASSED, (int) part0.getStatus());\r
+ assertEquals(msgPassed, part0.getMessage());\r
+\r
+ SimpleResultPart part1 = (SimpleResultPart) list.getParts().get(1);\r
+ assertEquals(TestStatus.FAILED, (int) part1.getStatus());\r
+ assertEquals(msgFailed, part1.getMessage());\r
+\r
assertEquals(closeDate, treeTestResult2.getCloseDate());\r
}\r
\r