From 7e40976f98acb0650e5bcbe00c98d1e5abacfe1f Mon Sep 17 00:00:00 2001 From: Martin Goik <goik@hdm-stuttgart.de> Date: Tue, 16 Dec 2014 15:01:58 +0100 Subject: [PATCH] Well-formedness becomes precondition (Junit Assume) for test executions --- .../mi/sda1/saxhtml/v1/Memo2HtmlHandler.java | 2 +- .../exam/testing}/AssertXpathResult.java | 2 +- .../dom => mi/exam/testing}/DomAssert.java | 2 +- .../exam/testing}/SaxFilterTest.java | 33 +++++++++++-------- .../v1/test/TestSimpleSaxTransform.java | 9 ++--- .../v2/test/TestComplexSaxTransform.java | 4 +-- 6 files changed, 26 insertions(+), 26 deletions(-) rename Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/{testing/dom => mi/exam/testing}/AssertXpathResult.java (84%) rename Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/{testing/dom => mi/exam/testing}/DomAssert.java (98%) rename Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/{testing/dom => mi/exam/testing}/SaxFilterTest.java (71%) diff --git a/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/main/java/de/hdm_stuttgart/mi/sda1/saxhtml/v1/Memo2HtmlHandler.java b/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/main/java/de/hdm_stuttgart/mi/sda1/saxhtml/v1/Memo2HtmlHandler.java index 01d69f1f4..32b160ac6 100644 --- a/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/main/java/de/hdm_stuttgart/mi/sda1/saxhtml/v1/Memo2HtmlHandler.java +++ b/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/main/java/de/hdm_stuttgart/mi/sda1/saxhtml/v1/Memo2HtmlHandler.java @@ -28,7 +28,7 @@ public class Memo2HtmlHandler extends DefaultHandler implements SaxFilter { @Override public void startDocument() throws SAXException { - out.print("<html>" + "\n <head>" + "\n <title>Memo message</title>" + out.print("<html" + "\n <head>" + "\n <title>Memo message</title>" + "\n </head>" + "\n <body>"); } diff --git a/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/testing/dom/AssertXpathResult.java b/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/mi/exam/testing/AssertXpathResult.java similarity index 84% rename from Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/testing/dom/AssertXpathResult.java rename to Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/mi/exam/testing/AssertXpathResult.java index d36d86304..ff0cb5d63 100644 --- a/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/testing/dom/AssertXpathResult.java +++ b/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/mi/exam/testing/AssertXpathResult.java @@ -1,4 +1,4 @@ -package de.hdm_stuttgart.de.testing.dom; +package de.hdm_stuttgart.de.mi.exam.testing; /** * @author goik diff --git a/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/testing/dom/DomAssert.java b/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/mi/exam/testing/DomAssert.java similarity index 98% rename from Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/testing/dom/DomAssert.java rename to Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/mi/exam/testing/DomAssert.java index 6d5cc5271..f8dc7676e 100644 --- a/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/testing/dom/DomAssert.java +++ b/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/mi/exam/testing/DomAssert.java @@ -1,4 +1,4 @@ -package de.hdm_stuttgart.de.testing.dom; +package de.hdm_stuttgart.de.mi.exam.testing; import java.util.List; diff --git a/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/testing/dom/SaxFilterTest.java b/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/mi/exam/testing/SaxFilterTest.java similarity index 71% rename from Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/testing/dom/SaxFilterTest.java rename to Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/mi/exam/testing/SaxFilterTest.java index ffd28114d..0cfc85502 100644 --- a/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/testing/dom/SaxFilterTest.java +++ b/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/mi/exam/testing/SaxFilterTest.java @@ -1,4 +1,4 @@ -package de.hdm_stuttgart.de.testing.dom; +package de.hdm_stuttgart.de.mi.exam.testing; import java.io.BufferedReader; import java.io.FileNotFoundException; @@ -13,6 +13,8 @@ import javax.xml.parsers.SAXParserFactory; import org.jdom2.Element; import org.jdom2.JDOMException; import org.jdom2.input.SAXBuilder; +import org.junit.Assume; +import org.junit.Before; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; @@ -28,7 +30,7 @@ public abstract class SaxFilterTest { public final String xmlInputFileName, htmlOutputFileName; final SaxFilter saxHandler; - protected static String errorInitString = null; + protected static String initializationErrorString = null; protected static Element htmlRootElement = null; @@ -39,14 +41,14 @@ public abstract class SaxFilterTest { htmlOutputFileName = xmlInputFileName + resultFileExtension; this.saxHandler = saxHandler; - if (null == htmlRootElement) { + if (null == htmlRootElement && null == initializationErrorString) { final PrintStream out; try { out = new PrintStream(htmlOutputFileName); } catch (FileNotFoundException e1) { - errorInitString = "Unable to open file '" + htmlOutputFileName + initializationErrorString = "Unable to open file '" + htmlOutputFileName + "' for writing"; return; } @@ -62,13 +64,13 @@ public abstract class SaxFilterTest { xmlReader.setErrorHandler(new StandardErrorHandler()); } catch (SAXException | ParserConfigurationException e) { - errorInitString = "Unable to create XMLparser instance: " + e.getLocalizedMessage(); + initializationErrorString = "Unable to create XMLparser instance: " + e.getLocalizedMessage(); return; } try { xmlReader.parse(xmlInputFileName); } catch (SAXException | IOException e) { - errorInitString = "Unable parse file '" + xmlInputFileName + initializationErrorString = "Unable parse file '" + xmlInputFileName + "': " + e.getLocalizedMessage(); return; } @@ -80,18 +82,21 @@ public abstract class SaxFilterTest { final SAXBuilder parser = new SAXBuilder(); try { - htmlRootElement = parser.build(htmlOutputFileName) - .getRootElement(); + htmlRootElement = parser.build(htmlOutputFileName).getRootElement(); } catch (JDOMException | IOException e1) { System.err.print( - errorInitString = "Unable to parse file '" + htmlOutputFileName - + "':\n" + e1.getLocalizedMessage() + - "\n, exiting"); - - System.exit(1); + initializationErrorString = "Unable to parse file '" + htmlOutputFileName + + "':\n" + e1.getLocalizedMessage()); + return; } } } + + @Before + public void checkWellFormedness() { + Assume.assumeTrue("Previous error:" + initializationErrorString, null == initializationErrorString); + //Assert.assertNull("Unable to parse generated file:" + errorInitString, errorInitString); + } private void printResultToStdout() { try { @@ -103,7 +108,7 @@ public abstract class SaxFilterTest { } saxResult.close(); } catch (IOException e) { - errorInitString = "Unable to open expected result output file '" + initializationErrorString = "Unable to open expected result output file '" + htmlOutputFileName + "' :" + e.getLocalizedMessage(); } } diff --git a/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/sda1/saxhtml/v1/test/TestSimpleSaxTransform.java b/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/sda1/saxhtml/v1/test/TestSimpleSaxTransform.java index 8cfbef0fd..ffb786ecc 100644 --- a/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/sda1/saxhtml/v1/test/TestSimpleSaxTransform.java +++ b/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/sda1/saxhtml/v1/test/TestSimpleSaxTransform.java @@ -1,10 +1,9 @@ package de.hdm_stuttgart.de.sda1.saxhtml.v1.test; -import org.junit.Assert; import org.junit.Test; -import de.hdm_stuttgart.de.testing.dom.SaxFilterTest; -import de.hdm_stuttgart.de.testing.dom.DomAssert; +import de.hdm_stuttgart.de.mi.exam.testing.DomAssert; +import de.hdm_stuttgart.de.mi.exam.testing.SaxFilterTest; import de.hdm_stuttgart.mi.sda1.saxhtml.v1.Memo2HtmlHandler; /** @@ -17,10 +16,6 @@ public class TestSimpleSaxTransform extends SaxFilterTest { super("src/main/resources/memo.xml", new Memo2HtmlHandler(), ".1.html"); } - @Test public void checkWellFormedness() { - Assert.assertNull("Unable to parse generated file:" + errorInitString, errorInitString); - } - @Test public void testSenderInHeader() { DomAssert.assertSingleNodeContent("<title>Memo message</title> must be the only child of <head>", htmlRootElement, "head/*", "title", "Memo message"); } diff --git a/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/sda1/saxhtml/v2/test/TestComplexSaxTransform.java b/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/sda1/saxhtml/v2/test/TestComplexSaxTransform.java index 8fb9da9e6..418be404e 100644 --- a/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/sda1/saxhtml/v2/test/TestComplexSaxTransform.java +++ b/Sda1/Etest/SaxMemo2Html/SaxMemo2Hhtml_solution/src/test/java/de/hdm_stuttgart/de/sda1/saxhtml/v2/test/TestComplexSaxTransform.java @@ -2,8 +2,8 @@ package de.hdm_stuttgart.de.sda1.saxhtml.v2.test; import org.junit.Test; -import de.hdm_stuttgart.de.testing.dom.SaxFilterTest; -import de.hdm_stuttgart.de.testing.dom.DomAssert; +import de.hdm_stuttgart.de.mi.exam.testing.DomAssert; +import de.hdm_stuttgart.de.mi.exam.testing.SaxFilterTest; import de.hdm_stuttgart.mi.sda1.saxhtml.v2.Memo2HtmlHandler; /** -- GitLab