Skip to content
Snippets Groups Projects
Commit 377b2fbd authored by Goik Martin's avatar Goik Martin
Browse files

Bug fix not reading XML test instances.

parent 3e499051
No related branches found
No related tags found
No related merge requests found
......@@ -40,23 +40,13 @@ class CreateTestClass {
Arrays.stream(new File(xmlTestFileDir).listFiles(path -> path.getPath().endsWith(".xml"))).
sorted(Comparator.comparing(File::toString)).
forEach(this::readTestHeader);
}
private void readTestHeader(final File instanceFilename) {
final SAXBuilder metainfoParser = new SAXBuilder(XMLReaders.NONVALIDATING);
try {
final Document doc = metainfoParser.build(instanceFilename);
final XPathExpression<ProcessingInstruction> searchHeader =
XPathFactory.instance().compile(
"/processing-instruction('xmlTest')",
Filters.processinginstruction());
final List<ProcessingInstruction> xmlTestList =
searchHeader.evaluate(doc);
final List<ProcessingInstruction> xmlTestList = InstanceSetEvaluation.getProcessingInstructions(instanceFilename);
switch (xmlTestList.size()) {
switch (xmlTestList.size()) {
case 0:
log.info("No 'xmlTest PI found, possible dependency file");
break;
......@@ -65,14 +55,6 @@ class CreateTestClass {
break;
default:
log.info("Found " + xmlTestList.size() + "' annotations in file '" + instanceFilename.getPath() + "'\n");
}
} catch (final JDOMException e) {
log.error("Document '" + instanceFilename.getPath() +
"' is invalid:", e);
log.error("Unable to parse document " + instanceFilename.getPath() + ": " + e + "\n");
} catch (final IOException e) {
log.error("Unable to read document " + instanceFilename.getPath() + ": " + e + "\n");
}
}
......
......@@ -2,6 +2,7 @@ package de.hdm_stuttgart.mi.unitmarking.xsd;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Vector;
......@@ -40,6 +41,33 @@ public class InstanceSetEvaluation {
final StringBuffer messages = new StringBuffer(), errorMessages = new StringBuffer();
/**
* Read the list of all processing instructions (PIs) of a given XML file.
*
* @param instanceFilename The xml source to be searched for PIs.
* @return The list of all PIs.
*
*/
static public List<ProcessingInstruction> getProcessingInstructions(final File instanceFilename) {
final SAXBuilder metainfoParser = new SAXBuilder(XMLReaders.NONVALIDATING);
try {
final Document doc = metainfoParser.build(instanceFilename);
final XPathExpression<ProcessingInstruction> searchHeader =
XPathFactory.instance().compile(
"/processing-instruction('xmlTest')",
Filters.processinginstruction());
return searchHeader.evaluate(doc);
} catch (final JDOMException e) {
log.error("Document '" + instanceFilename.getPath() +
"' is invalid:", e);
warnings.append("Unable to parse document " + instanceFilename.getPath() + ": " + e + "\n");
} catch (final IOException e) {
warnings.append("Unable to read document " + instanceFilename.getPath() + ": " + e + "\n");
}
return new ArrayList<>();
}
/**
* @return Individual failed test(s) error message(s).
*/
......@@ -102,37 +130,19 @@ public class InstanceSetEvaluation {
}
void readTestHeader(final File instanceFilename, final String xsdSchemaFilename) {
// final SAXBuilder metainfoParser = new SAXBuilder(XMLReaders.NONVALIDATING);
// try {
// final Document doc = metainfoParser.build(instanceFilename);
//
// final XPathExpression<ProcessingInstruction> searchHeader =
// XPathFactory.instance().compile(
// "/processing-instruction('xmlTest')",
// Filters.processinginstruction());
// final List<ProcessingInstruction> xmlTestList =
// searchHeader.evaluate(doc);
//
// switch (xmlTestList.size()) {
// case 0:
// log.info("No 'xmlTest PI found, possible dependency file");
// break;
// case 1:
// tests.add(new InstanceTest(xmlTestList.get(0), xmlTestFileDir, xsdSchemaFilename, instanceFilename));
// break;
// default:
// warnings.append("Found " + xmlTestList.size() + "' annotations in file '" + instanceFilename.getPath() + "'\n");
// }
//
// } catch (final JDOMException e) {
// log.error("Document '" + instanceFilename.getPath() +
// "' is invalid:", e);
// warnings.append("Unable to parse document " + instanceFilename.getPath() + ": " + e + "\n");
// } catch (final IOException e) {
// warnings.append("Unable to read document " + instanceFilename.getPath() + ": " + e + "\n");
// }
final List<ProcessingInstruction> xmlTestList = getProcessingInstructions(instanceFilename);
switch (xmlTestList.size()) {
case 0:
log.info("No 'xmlTest PI found, possible dependency file");
break;
case 1:
tests.add(new InstanceTest(xmlTestList.get(0), xmlTestFileDir, xsdSchemaFilename, instanceFilename));
break;
default:
warnings.append("Found " + xmlTestList.size() + "' annotations in file '" + instanceFilename.getPath() + "'\n");
}
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment