/** * */ package marytts.util.dom; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import marytts.datatypes.MaryXML; import marytts.exceptions.MaryConfigurationException; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Element; /** * @author marc * */ public class MaryDomUtilsTest { private Document createInvalidMaryXML() { Document doc = MaryXML.newDocument(); Element para = MaryXML.appendChildElement(doc.getDocumentElement(), MaryXML.PARAGRAPH); Element sent = MaryXML.appendChildElement(para, MaryXML.SENTENCE); sent.setTextContent("Hello world"); // but text content not allowed in sentences, so invalid return doc; } private Document createValidMaryXML() { Document doc = MaryXML.newDocument(); Element para = MaryXML.appendChildElement(doc.getDocumentElement(), MaryXML.PARAGRAPH); Element sent = MaryXML.appendChildElement(para, MaryXML.SENTENCE); Element t1 = MaryXML.appendChildElement(sent, MaryXML.TOKEN); t1.setTextContent("Hello"); Element t2 = MaryXML.appendChildElement(sent, MaryXML.TOKEN); t2.setTextContent("world"); return doc; } @Test public void canValidateMaryXML() throws MaryConfigurationException { // setup SUT Document doc = createValidMaryXML(); // exercise / verify assertTrue(MaryDomUtils.isSchemaValid(doc)); } @Test public void canDetectInvalidMaryXML() throws MaryConfigurationException { // setup SUT Document doc = createInvalidMaryXML(); // exercise / verify assertFalse(MaryDomUtils.isSchemaValid(doc)); } }