From: Mathieu Baudier Date: Tue, 29 Apr 2008 15:55:59 +0000 (+0000) Subject: Improve XML and XSD for test results X-Git-Tag: argeo-slc-2.1.7~2962 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=c2107fa018f358d94865227bc19a5691403178cc;p=gpl%2Fargeo-slc.git Improve XML and XSD for test results git-svn-id: https://svn.argeo.org/slc/trunk@1078 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/castor/test/tree/StatusFieldHandler.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/castor/test/tree/StatusFieldHandler.java new file mode 100644 index 000000000..4cc334878 --- /dev/null +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/castor/test/tree/StatusFieldHandler.java @@ -0,0 +1,43 @@ +package org.argeo.slc.castor.test.tree; + +import org.argeo.slc.core.test.SimpleResultPart; +import org.argeo.slc.core.test.SlcTestUtils; +import org.argeo.slc.core.test.TestStatus; +import org.exolab.castor.mapping.AbstractFieldHandler; + +public class StatusFieldHandler extends AbstractFieldHandler { + + @Override + public Object getValue(Object object) throws IllegalStateException { + SimpleResultPart part = (SimpleResultPart) object; + return SlcTestUtils.statusToString(part.getStatus()); + } + + @Override + public Object newInstance(Object parent) throws IllegalStateException { + return null; + } + + @Override + public Object newInstance(Object parent, Object[] args) + throws IllegalStateException { + return null; + } + + @Override + public void resetValue(Object object) throws IllegalStateException, + IllegalArgumentException { + SimpleResultPart part = (SimpleResultPart) object; + // ERROR by default since it should be explicitely set + part.setStatus(TestStatus.ERROR); + } + + @Override + public void setValue(Object object, Object value) + throws IllegalStateException, IllegalArgumentException { + SimpleResultPart part = (SimpleResultPart) object; + Integer status = SlcTestUtils.stringToStatus((String) value); + part.setStatus(status); + } + +} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SimpleResultPart.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SimpleResultPart.java index eae7f4067..da0ddcbeb 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SimpleResultPart.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SimpleResultPart.java @@ -13,7 +13,8 @@ public class SimpleResultPart implements TestResultPart, TestStatus { /** For ORM */ private Long tid; - private Integer status; + /** The status. Default to ERROR since it should always be explicitely set. */ + private Integer status = ERROR; private String message; private Exception exception; @@ -57,12 +58,11 @@ public class SimpleResultPart implements TestResultPart, TestStatus { @Override public String toString() { StringBuffer buf = new StringBuffer(""); - if (status == PASSED) { - buf.append("PASSED "); - } else if (status == FAILED) { - buf.append("FAILED "); + buf.append(SlcTestUtils.statusToString(status)); + if (status == PASSED || status == FAILED) { + buf.append(' '); } else if (status == ERROR) { - buf.append("ERROR "); + buf.append(" "); } buf.append(message); if (exception != null) { diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SlcTestUtils.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SlcTestUtils.java new file mode 100644 index 000000000..c7d7840cd --- /dev/null +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/SlcTestUtils.java @@ -0,0 +1,40 @@ +package org.argeo.slc.core.test; + +import org.argeo.slc.core.SlcException; + +public abstract class SlcTestUtils { + public static String statusToString(Integer status){ + if(status.equals(TestStatus.PASSED)){ + return TestStatus.STATUSSTR_PASSED; + } + else if(status.equals(TestStatus.FAILED)){ + return TestStatus.STATUSSTR_FAILED; + } + else if(status.equals(TestStatus.ERROR)){ + return TestStatus.STATUSSTR_ERROR; + } + else{ + throw new SlcException("Unrecognized status "+status); + } + } + + public static Integer stringToStatus(String statusStr){ + if(statusStr.equals(TestStatus.STATUSSTR_PASSED)){ + return TestStatus.PASSED; + } + else if(statusStr.equals(TestStatus.STATUSSTR_FAILED)){ + return TestStatus.FAILED; + } + else if(statusStr.equals(TestStatus.STATUSSTR_ERROR)){ + return TestStatus.ERROR; + } + else{ + throw new SlcException("Unrecognized status string "+statusStr); + } + } + + private SlcTestUtils(){ + + } + +} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/TestStatus.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/TestStatus.java index feebc930a..d6954be8f 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/TestStatus.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/TestStatus.java @@ -22,4 +22,8 @@ public interface TestStatus { * (there is no feedback on the behavior of the tested component): 2 */ public final static Integer ERROR = 2; + public final static String STATUSSTR_PASSED = "PASSED"; + public final static String STATUSSTR_FAILED = "FAILED"; + public final static String STATUSSTR_ERROR = "ERROR"; + } diff --git a/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/test/tree/mapping.xml b/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/test/tree/mapping.xml index 599efeff1..61c4e874b 100644 --- a/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/test/tree/mapping.xml +++ b/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/test/tree/mapping.xml @@ -1,92 +1,109 @@ - - - - TreeTestResult objects XML mapping - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + TreeTestResult objects XML mapping + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/org.argeo.slc.core/src/main/resources/org/argeo/slc/xml/slc.xsd b/org.argeo.slc.core/src/main/resources/org/argeo/slc/xml/slc.xsd index ed66df8d3..243fbd9c5 100644 --- a/org.argeo.slc.core/src/main/resources/org/argeo/slc/xml/slc.xsd +++ b/org.argeo.slc.core/src/main/resources/org/argeo/slc/xml/slc.xsd @@ -1,86 +1,168 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file