/* * Copyright 2005-2011 by BerryWorks Software, LLC. All rights reserved. */ package com.berryworks.edireader; import com.berryworks.edireader.benchmark.EDITestData; import org.junit.Before; import org.junit.Test; import org.xml.sax.*; import org.xml.sax.helpers.DefaultHandler; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import java.io.IOException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; public class CustomXMLTagsTest { private ContentHandler handler; private InputSource inputSource; private XMLTags customTags; private String standardRootTag; @Before public void setUp() { handler = new MyHandler(); standardRootTag = DefaultXMLTags.getInstance().getRootTag(); customTags = new CustomXMLTags(); String customRootTag = customTags.getRootTag(); assertEquals("ediroot", standardRootTag); assertEquals("xediroot", customRootTag); inputSource = EDITestData.getAnsiInputSource(); } @Test public void testWithSpecificParser() throws IOException, SAXException { EDIReader parser = new AnsiReader(); parser.setContentHandler(handler); parser.setXMLTags(customTags); parser.parse(inputSource); } @Test public void testWithEDIReader() throws IOException, SAXException { EDIReader parser = new EDIReader(); parser.setContentHandler(handler); parser.setXMLTags(customTags); parser.parse(inputSource); } @Test public void testWithEDIReaderFactory() throws IOException, SAXException { EDIReader parser = EDIReaderFactory.createEDIReader(inputSource); parser.setContentHandler(handler); parser.setXMLTags(customTags); parser.parse(inputSource); } @Test public void testWithJAXP() throws Exception { System.setProperty("javax.xml.parsers.SAXParserFactory", "com.berryworks.edireader.EDIParserFactory"); SAXParserFactory sFactory = SAXParserFactory.newInstance(); SAXParser sParser = sFactory.newSAXParser(); XMLReader xmlReader = sParser.getXMLReader(); xmlReader.setContentHandler(handler); ((EDIReader) xmlReader).setXMLTags(customTags); xmlReader.parse(inputSource); } class CustomXMLTags extends DefaultXMLTags { public String getRootTag() { return "xediroot"; } } private class MyHandler extends DefaultHandler { public void startElement(String namespace, String localName, String qName, Attributes atts) throws SAXException { if (qName.equals(standardRootTag)) { fail("got standard root tag instead of custom root tag"); } } } }