13 files changed:
package org.argeo.slc.core.test;\r
\r
package org.argeo.slc.core.test;\r
\r
-import java.io.IOException;\r
-import java.io.PrintWriter;\r
-import java.io.StringReader;\r
-import java.io.StringWriter;\r
-import java.util.List;\r
-import java.util.Vector;\r
-\r
-import org.apache.commons.io.IOUtils;\r
private Integer status = ERROR;\r
private String message;\r
private String exceptionMessage;\r
private Integer status = ERROR;\r
private String message;\r
private String exceptionMessage;\r
- private List<String> exceptionStackLines = new Vector<String>();\r
\r
public SimpleResultPart() {\r
}\r
\r
public SimpleResultPart() {\r
}\r
if (exception == null)\r
return;\r
\r
if (exception == null)\r
return;\r
\r
- this.exceptionMessage = exception.getMessage();\r
+ //this.exceptionMessage = exception.getMessage();\r
+ StringBuffer buf = new StringBuffer("");\r
+ buf.append(exception.getMessage());\r
+ buf.append('\n');\r
+ for(StackTraceElement elem : exception.getStackTrace()){\r
+ buf.append(elem.toString()).append('\n');\r
+ }\r
+ \r
+ this.exceptionMessage = buf.toString();\r
+ \r
+/* \r
StringWriter writer = null;\r
StringReader reader = null;\r
try {\r
StringWriter writer = null;\r
StringReader reader = null;\r
try {\r
} finally {\r
IOUtils.closeQuietly(writer);\r
IOUtils.closeQuietly(reader);\r
} finally {\r
IOUtils.closeQuietly(writer);\r
IOUtils.closeQuietly(reader);\r
testRunUuid = testRun.getUuid();\r
}\r
\r
testRunUuid = testRun.getUuid();\r
}\r
\r
- public List<String> getExceptionStackLines() {\r
- return exceptionStackLines;\r
- }\r
-\r
- public void setExceptionStackLines(List<String> exceptionStackLines) {\r
- this.exceptionStackLines = exceptionStackLines;\r
- }\r
-\r
public void setExceptionMessage(String exceptionMessage) {\r
this.exceptionMessage = exceptionMessage;\r
}\r
public void setExceptionMessage(String exceptionMessage) {\r
this.exceptionMessage = exceptionMessage;\r
}\r
package org.argeo.slc.core.test;\r
\r
package org.argeo.slc.core.test;\r
\r
-import java.util.List;\r
\r
/**\r
* Part of a test result.\r
\r
/**\r
* Part of a test result.\r
\r
/** The underlying <code>Exception</code>. Can be null. */\r
public String getExceptionMessage();\r
\r
/** The underlying <code>Exception</code>. Can be null. */\r
public String getExceptionMessage();\r
-\r
- public List<String> getExceptionStackLines();\r
import org.argeo.slc.core.structure.StructureElement;\r
import org.argeo.slc.core.structure.tree.TreeSPath;\r
import org.argeo.slc.core.test.SimpleResultPart;\r
import org.argeo.slc.core.structure.StructureElement;\r
import org.argeo.slc.core.structure.tree.TreeSPath;\r
import org.argeo.slc.core.test.SimpleResultPart;\r
-import org.argeo.slc.core.test.TestResultPart;\r
import org.argeo.slc.core.test.TestRunDescriptor;\r
import org.argeo.slc.core.test.tree.TreeTestResult;\r
\r
public class ResultPartRequest {\r
private String resultUuid;\r
import org.argeo.slc.core.test.TestRunDescriptor;\r
import org.argeo.slc.core.test.tree.TreeTestResult;\r
\r
public class ResultPartRequest {\r
private String resultUuid;\r
- private TestResultPart resultPart;\r
+ private SimpleResultPart resultPart;\r
private TreeSPath path;\r
private Map<TreeSPath, StructureElement> relatedElements;\r
private TestRunDescriptor testRunDescriptor;\r
private TreeSPath path;\r
private Map<TreeSPath, StructureElement> relatedElements;\r
private TestRunDescriptor testRunDescriptor;\r
}\r
\r
public ResultPartRequest(TreeTestResult ttr, TreeSPath path,\r
}\r
\r
public ResultPartRequest(TreeTestResult ttr, TreeSPath path,\r
- TestResultPart resultPart) {\r
+ SimpleResultPart resultPart) {\r
resultUuid = ttr.getUuid();\r
this.resultPart = resultPart;\r
this.path = path;\r
resultUuid = ttr.getUuid();\r
this.resultPart = resultPart;\r
this.path = path;\r
this.resultUuid = resultUuid;\r
}\r
\r
this.resultUuid = resultUuid;\r
}\r
\r
- public TestResultPart getResultPart() {\r
+ public SimpleResultPart getResultPart() {\r
return resultPart;\r
}\r
\r
return resultPart;\r
}\r
\r
- public void setResultPart(TestResultPart resultPart) {\r
+ public void setResultPart(SimpleResultPart resultPart) {\r
this.resultPart = resultPart;\r
}\r
\r
this.resultPart = resultPart;\r
}\r
\r
public TreeSPath getPath() {\r
return path;\r
}\r
public TreeSPath getPath() {\r
return path;\r
}\r
package org.argeo.slc.unit.test.tree;\r
\r
package org.argeo.slc.unit.test.tree;\r
\r
-import java.util.List;\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
\r
import static junit.framework.Assert.assertEquals;\r
import static junit.framework.Assert.assertNotNull;\r
\r
import static junit.framework.Assert.assertEquals;\r
import static junit.framework.Assert.assertNotNull;\r
\r
/** Utilities for unit tests. */\r
public class UnitTestTreeUtil {\r
\r
/** Utilities for unit tests. */\r
public class UnitTestTreeUtil {\r
+ private final static Log log = LogFactory.getLog(UnitTestTreeUtil.class);\r
+\r
public static void assertTreeTestResult(TreeTestResult expected,\r
TreeTestResult reached) {\r
assertEquals(expected.getUuid(), reached.getUuid());\r
public static void assertTreeTestResult(TreeTestResult expected,\r
TreeTestResult reached) {\r
assertEquals(expected.getUuid(), reached.getUuid());\r
fail("Not enough parts.");\r
}\r
SimpleResultPart part = (SimpleResultPart) list.getParts().get(index);\r
fail("Not enough parts.");\r
}\r
SimpleResultPart part = (SimpleResultPart) list.getParts().get(index);\r
- assertPart(part, status, message, null, null, part.getTestRunUuid());\r
+ assertPart(part, status, message, null, part.getTestRunUuid());\r
}\r
\r
public static void assertPart(TestResultPart expected,\r
}\r
\r
public static void assertPart(TestResultPart expected,\r
}\r
\r
assertPart(reached, expected.getStatus(), expected.getMessage(),\r
}\r
\r
assertPart(reached, expected.getStatus(), expected.getMessage(),\r
- expected.getExceptionMessage(), expected\r
- .getExceptionStackLines(), expectedTestRunUuid);\r
+ expected.getExceptionMessage(), expectedTestRunUuid);\r
}\r
\r
/** Assert one part of a tree test result. */\r
private static void assertPart(TestResultPart part, Integer status,\r
String message, String exceptionDescription,\r
}\r
\r
/** Assert one part of a tree test result. */\r
private static void assertPart(TestResultPart part, Integer status,\r
String message, String exceptionDescription,\r
- List<String> stackLines, String expectedTestRunUuid) {\r
+ String expectedTestRunUuid) {\r
assertEquals(status, part.getStatus());\r
assertEquals(status, part.getStatus());\r
+\r
+ if (log.isTraceEnabled()) {\r
+ log.trace("Expected message:" + message);\r
+ log.trace("Reached message:" + part.getMessage());\r
+ }\r
assertEquals(message, part.getMessage());\r
if (exceptionDescription == null) {\r
assertNull(part.getExceptionMessage());\r
} else {\r
assertEquals(message, part.getMessage());\r
if (exceptionDescription == null) {\r
assertNull(part.getExceptionMessage());\r
} else {\r
+ if (log.isTraceEnabled()) {\r
+ log.trace("Expected exception message:" + exceptionDescription);\r
+ log.trace("Reached exception message:"\r
+ + part.getExceptionMessage());\r
+ }\r
+\r
assertEquals(exceptionDescription, part.getExceptionMessage());\r
assertEquals(exceptionDescription, part.getExceptionMessage());\r
- assertEquals(stackLines.size(), part.getExceptionStackLines()\r
- .size());\r
}\r
\r
if (expectedTestRunUuid != null) {\r
}\r
\r
if (expectedTestRunUuid != null) {\r
<map-to ns-uri="http://argeo.org/projects/slc/schemas"\r
ns-prefix="slc" />\r
<field name="resultUuid" />\r
<map-to ns-uri="http://argeo.org/projects/slc/schemas"\r
ns-prefix="slc" />\r
<field name="resultUuid" />\r
- <field name="resultPart">\r
+ <field name="resultPart"\r
+ type="org.argeo.slc.core.test.SimpleResultPart">\r
<bind-xml auto-naming="deriveByClass" />\r
</field>\r
<bind-xml auto-naming="deriveByClass" />\r
</field>\r
<field name="relatedElements" collection="map">\r
<bind-xml name="element" location="related-elements">\r
<class name="org.exolab.castor.mapping.MapItem">\r
<field name="relatedElements" collection="map">\r
<bind-xml name="element" location="related-elements">\r
<class name="org.exolab.castor.mapping.MapItem">\r
<field name="testRunDescriptor" />\r
</class>\r
\r
<field name="testRunDescriptor" />\r
</class>\r
\r
<!-- PROCESS -->\r
<class name="org.argeo.slc.msg.process.SlcExecutionStepsRequest">\r
<map-to ns-uri="http://argeo.org/projects/slc/schemas"\r
<!-- PROCESS -->\r
<class name="org.argeo.slc.msg.process.SlcExecutionStepsRequest">\r
<map-to ns-uri="http://argeo.org/projects/slc/schemas"\r
</value>\r
</list>\r
</property>\r
</value>\r
</list>\r
</property>\r
+ <property name="whitespacePreserve" value="true"/>\r
auto-complete="false">\r
<map-to ns-uri="http://argeo.org/projects/slc/schemas"\r
ns-prefix="slc" />\r
auto-complete="false">\r
<map-to ns-uri="http://argeo.org/projects/slc/schemas"\r
ns-prefix="slc" />\r
- <field name="testRunUuid"/>\r
- <field name="slcExecutionUuid"/>\r
- <field name="slcExecutionStepUuid"/>\r
- <field name="testResultUuid"/>\r
- <field name="deployedSytemId"/>\r
+ <field name="testRunUuid" />\r
+ <field name="slcExecutionUuid" />\r
+ <field name="slcExecutionStepUuid" />\r
+ <field name="testResultUuid" />\r
+ <field name="deployedSytemId" />\r
</class>\r
\r
<class name="org.argeo.slc.core.test.tree.TreeTestResult"\r
</class>\r
\r
<class name="org.argeo.slc.core.test.tree.TreeTestResult"\r
<map-to ns-uri="http://argeo.org/projects/slc/schemas"\r
ns-prefix="slc" />\r
<field name="testRunUuid" type="string" />\r
<map-to ns-uri="http://argeo.org/projects/slc/schemas"\r
ns-prefix="slc" />\r
<field name="testRunUuid" type="string" />\r
- <field name="message" type="string" />\r
+ <field name="message" type="string"/>\r
<field name="status" type="string"\r
handler="org.argeo.slc.castor.test.tree.StatusFieldHandler" />\r
<field name="status" type="string"\r
handler="org.argeo.slc.castor.test.tree.StatusFieldHandler" />\r
- <field name="exceptionMessage" type="string" />\r
- <field name="exceptionStackLines" collection="vector"\r
- type="string">\r
- <bind-xml name="stack-line" location="stack-lines" />\r
- </field>\r
+ <field name="exceptionMessage" type="string"/>\r
</mapping>
\ No newline at end of file
</mapping>
\ No newline at end of file
<property name="message" column="MESSAGE" not-null="true" />\r
<property name="exceptionMessage" column="EXCEPTION_MESSAGE"\r
not-null="false" />\r
<property name="message" column="MESSAGE" not-null="true" />\r
<property name="exceptionMessage" column="EXCEPTION_MESSAGE"\r
not-null="false" />\r
- <list name="exceptionStackLines" cascade="all" lazy="false">\r
- <key column="RESULT_PART_ID" />\r
- <list-index column="INDX" />\r
- <element type="string" column="STACK_LINE" />\r
- </list>\r
</class>\r
</hibernate-mapping>
\ No newline at end of file
</class>\r
</hibernate-mapping>
\ No newline at end of file
<list name="parts" cascade="all" lazy="false">\r
<key column="PART_SUBLIST_ID" />\r
<list-index column="INDX" />\r
<list name="parts" cascade="all" lazy="false">\r
<key column="PART_SUBLIST_ID" />\r
<list-index column="INDX" />\r
- <one-to-many\r
- class="org.argeo.slc.core.test.SimpleResultPart" />\r
+ <composite-element\r
+ class="org.argeo.slc.core.test.SimpleResultPart">\r
+ <property name="status" column="STATUS" not-null="true" />\r
+ <property name="message" column="MESSAGE"\r
+ not-null="true" />\r
+ <property name="exceptionMessage"\r
+ column="EXCEPTION_MESSAGE" not-null="false" />\r
+ </composite-element>\r
</list>\r
</class>\r
</hibernate-mapping>
\ No newline at end of file
</list>\r
</class>\r
</hibernate-mapping>
\ No newline at end of file
import org.springframework.xml.transform.StringResult;\r
import org.springframework.xml.transform.StringSource;\r
import org.springframework.xml.validation.XmlValidator;\r
import org.springframework.xml.transform.StringResult;\r
import org.springframework.xml.transform.StringSource;\r
import org.springframework.xml.validation.XmlValidator;\r
-import org.springframework.xml.xsd.XsdSchema;\r
\r
import org.apache.commons.logging.Log;\r
import org.apache.commons.logging.LogFactory;\r
\r
import org.apache.commons.logging.Log;\r
import org.apache.commons.logging.LogFactory;\r
import static org.argeo.slc.core.test.tree.TreeTestResultTestUtils.createCompleteTreeTestResult;\r
\r
import org.argeo.slc.core.structure.tree.TreeSPath;\r
import static org.argeo.slc.core.test.tree.TreeTestResultTestUtils.createCompleteTreeTestResult;\r
\r
import org.argeo.slc.core.structure.tree.TreeSPath;\r
-import org.argeo.slc.core.test.TestResultPart;\r
+import org.argeo.slc.core.test.SimpleResultPart;\r
import org.argeo.slc.msg.test.tree.CreateTreeTestResultRequest;\r
import org.argeo.slc.msg.test.tree.ResultPartRequest;\r
import org.argeo.slc.unit.AbstractSpringTestCase;\r
import org.argeo.slc.msg.test.tree.CreateTreeTestResultRequest;\r
import org.argeo.slc.msg.test.tree.ResultPartRequest;\r
import org.argeo.slc.unit.AbstractSpringTestCase;\r
public void testMarshUnmarsh() throws Exception {\r
TreeTestResult ttr = createCompleteTreeTestResult();\r
\r
public void testMarshUnmarsh() throws Exception {\r
TreeTestResult ttr = createCompleteTreeTestResult();\r
\r
- StringResult xml = new StringResult();\r
- marshaller.marshal(ttr, xml);\r
-\r
- log.info("Marshalled TreeTestResult: " + xml);\r
-\r
- UnitXmlUtils.assertXmlValidation(getBean(XmlValidator.class),\r
- new StringSource(xml.toString()));\r
+ StringResult xml = marshallAndValidate(ttr);\r
\r
TreeTestResult ttrUnm = (TreeTestResult) unmarshaller\r
.unmarshal(new StringSource(xml.toString()));\r
\r
TreeTestResult ttrUnm = (TreeTestResult) unmarshaller\r
.unmarshal(new StringSource(xml.toString()));\r
CreateTreeTestResultRequest req = new CreateTreeTestResultRequest();\r
req.setTreeTestResult(createCompleteTreeTestResult());\r
\r
CreateTreeTestResultRequest req = new CreateTreeTestResultRequest();\r
req.setTreeTestResult(createCompleteTreeTestResult());\r
\r
- StringResult xml = new StringResult();\r
- marshaller.marshal(req, xml);\r
-\r
- log.info("Marshalled CreateTreeTestResult Request: " + xml);\r
-\r
- UnitXmlUtils.assertXmlValidation(getBean(XmlValidator.class),\r
- new StringSource(xml.toString()));\r
+ StringResult xml = marshallAndValidate(req);\r
\r
CreateTreeTestResultRequest reqUnm = (CreateTreeTestResultRequest) unmarshaller\r
.unmarshal(new StringSource(xml.toString()));\r
\r
CreateTreeTestResultRequest reqUnm = (CreateTreeTestResultRequest) unmarshaller\r
.unmarshal(new StringSource(xml.toString()));\r
\r
TreeSPath path = ttr.getCurrentPath();\r
PartSubList lst = ttr.getResultParts().get(path);\r
\r
TreeSPath path = ttr.getCurrentPath();\r
PartSubList lst = ttr.getResultParts().get(path);\r
- //TestResultPart part = lst.getParts().get(lst.getParts().size() - 1);\r
- TestResultPart part = lst.getParts().get(2);\r
+ // TestResultPart part = lst.getParts().get(lst.getParts().size() - 1);\r
+ SimpleResultPart part = (SimpleResultPart) lst.getParts().get(2);\r
\r
ResultPartRequest req = new ResultPartRequest(ttr, path, part);\r
req.setPath(ttr.getCurrentPath());\r
\r
\r
ResultPartRequest req = new ResultPartRequest(ttr, path, part);\r
req.setPath(ttr.getCurrentPath());\r
\r
- StringResult xml = new StringResult();\r
- marshaller.marshal(req, xml);\r
-\r
- log.info("Marshalled ResultPart Request: " + xml);\r
-\r
- UnitXmlUtils.assertXmlValidation(getBean(XmlValidator.class),\r
- new StringSource(xml.toString()));\r
+ StringResult xml = marshallAndValidate(req);\r
\r
ResultPartRequest reqUnm = (ResultPartRequest) unmarshaller\r
.unmarshal(new StringSource(xml.toString()));\r
\r
ResultPartRequest reqUnm = (ResultPartRequest) unmarshaller\r
.unmarshal(new StringSource(xml.toString()));\r
.assertPart(req.getResultPart(), reqUnm.getResultPart());\r
}\r
\r
.assertPart(req.getResultPart(), reqUnm.getResultPart());\r
}\r
\r
+ private StringResult marshallAndValidate(Object obj) throws Exception {\r
+ StringResult xml = new StringResult();\r
+ marshaller.marshal(obj, xml);\r
+\r
+ log.info("Marshalled ResultPart Request: " + xml);\r
+\r
+ UnitXmlUtils.assertXmlValidation(getBean(XmlValidator.class),\r
+ new StringSource(xml.toString()));\r
+ return xml;\r
+ }\r
\r
public static SimpleResultPart createSimpleResultPartPassed() {\r
SimpleResultPart partPassed = new SimpleResultPart();\r
\r
public static SimpleResultPart createSimpleResultPartPassed() {\r
SimpleResultPart partPassed = new SimpleResultPart();\r
- String msgPassed = "message";\r
+ String msgPassed = "message\nnew line";\r
partPassed.setStatus(TestStatus.PASSED);\r
partPassed.setMessage(msgPassed);\r
return partPassed;\r
partPassed.setStatus(TestStatus.PASSED);\r
partPassed.setMessage(msgPassed);\r
return partPassed;\r
\r
public static SimpleResultPart createSimpleResultPartError() {\r
SimpleResultPart partFailed = new SimpleResultPart();\r
\r
public static SimpleResultPart createSimpleResultPartError() {\r
SimpleResultPart partFailed = new SimpleResultPart();\r
- String msgFailed = "crashed";\r
+ String msgFailed = "crashed\nanother line";\r
partFailed.setStatus(TestStatus.ERROR);\r
partFailed.setMessage(msgFailed);\r
partFailed.setException(new Exception("Test Exception"));\r
partFailed.setStatus(TestStatus.ERROR);\r
partFailed.setMessage(msgFailed);\r
partFailed.setException(new Exception("Test Exception"));\r
public class TreeTestResultWsIntegrationTest extends AbstractSpringTestCase {
private Log log = LogFactory.getLog(getClass());
public class TreeTestResultWsIntegrationTest extends AbstractSpringTestCase {
private Log log = LogFactory.getLog(getClass());
- public void testSendSlcExecutionrequest() {
+ public void testCreateTreeTestResultRequest() {
WebServiceTemplate template = getBean(WebServiceTemplate.class);
CreateTreeTestResultRequest req = new CreateTreeTestResultRequest();
req.setTreeTestResult(createCompleteTreeTestResult());
WebServiceTemplate template = getBean(WebServiceTemplate.class);
CreateTreeTestResultRequest req = new CreateTreeTestResultRequest();
req.setTreeTestResult(createCompleteTreeTestResult());
## Levels\r
# Slc\r
log4j.logger.org.argeo.slc=DEBUG\r
## Levels\r
# Slc\r
log4j.logger.org.argeo.slc=DEBUG\r
-log4j.logger.org.argeo.slc.core.process=DEBUG\r
+log4j.logger.org.argeo.slc.unit=TRACE\r
\r
# Castor\r
log4j.logger.org.exolab.castor=WARN\r
\r
# Castor\r
log4j.logger.org.exolab.castor=WARN\r