package hu.sztaki.ilab.longneck;
import java.io.IOException;
import java.net.URL;
import javax.xml.XMLConstants;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import org.junit.Test;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
/**
*
* @author Molnár Péter <molnarp@sztaki.mta.hu>
*/
public class ValidationTest {
private DocumentBuilder processDocBuilder;
private DocumentBuilder blockDocBuilder;
private DocumentBuilder constraintDocBuilder;
private DocumentBuilder entityDocBuilder;
private ClassLoader classLoader = this.getClass().getClassLoader();
public ValidationTest() throws ParserConfigurationException, SAXException {
// Create document builder factory and set namespace-aware
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setNamespaceAware(true);
// Create schema factory
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
URL schemaUrl;
// Create document builder for process files
schemaUrl = this.getClass().getClassLoader().getResource("META-INF/longneck/schema/longneck-process.xsd");
Schema processSchema = schemaFactory.newSchema(schemaUrl);
documentBuilderFactory.setSchema(processSchema);
processDocBuilder = documentBuilderFactory.newDocumentBuilder();
// Create document builder for block files
schemaUrl = this.getClass().getClassLoader().getResource("META-INF/longneck/schema/longneck-block.xsd");
Schema blockSchema = schemaFactory.newSchema(schemaUrl);
documentBuilderFactory.setSchema(blockSchema);
blockDocBuilder = documentBuilderFactory.newDocumentBuilder();
// Create document builder for constraint files
schemaUrl = this.getClass().getClassLoader().getResource("META-INF/longneck/schema/longneck-constraint.xsd");
Schema constraintSchema = schemaFactory.newSchema(schemaUrl);
documentBuilderFactory.setSchema(constraintSchema);
constraintDocBuilder = documentBuilderFactory.newDocumentBuilder();
// Create document builder for entities
schemaUrl = this.getClass().getClassLoader().getResource("META-INF/longneck/schema/longneck-entity.xsd");
Schema entitySchema = schemaFactory.newSchema(schemaUrl);
documentBuilderFactory.setSchema(entitySchema);
entityDocBuilder = documentBuilderFactory.newDocumentBuilder();
}
@Test
public void testValidityProcess() throws SAXException, IOException, Exception {
// Load document
Document doc = processDocBuilder.parse(classLoader.getResourceAsStream("validation/process-validity-test.xml"));
}
@Test
public void testValidityBlocks() throws SAXException, IOException, Exception {
// Load document
Document doc = blockDocBuilder.parse(classLoader.getResourceAsStream("validation/block-validity-test.xml"));
}
@Test
public void testValidityConstraints() throws SAXException, IOException, Exception {
// Load document
Document doc = constraintDocBuilder.parse(classLoader.getResourceAsStream("directory-repository/constraints-test.constraint.xml"));
}
@Test
public void testValidityEntities() throws SAXException, IOException, Exception {
// Load document
Document doc = entityDocBuilder.parse(classLoader.getResourceAsStream("directory-repository/entities-test.entity.xml"));
}
}