package base; import java.util.*; import javax.xml.stream.*; import org.codehaus.stax2.*; import com.fasterxml.aalto.AsyncXMLStreamReader; import com.fasterxml.aalto.stax.*; public abstract class BaseTestCase extends junit.framework.TestCase implements XMLStreamConstants { public final static String ENC_UTF8 = "UTF-8"; public final static String ENC_LATIN1 = "ISO-8859-1"; public final static String ENC_ASCII = "US-ASCII"; /* /********************************************************************** /* Lazy-loaded thingies /********************************************************************** */ XMLInputFactory2 mInputFactory = null; XMLOutputFactory2 mOutputFactory = null; /* /********************************************************************** /* Factory methods /********************************************************************** */ protected XMLInputFactory2 getInputFactory() { if (mInputFactory == null) { mInputFactory = getNewInputFactory(); } return mInputFactory; } protected XMLInputFactory2 getNewInputFactory() { // Can hard-code things here, being Aalto-specific tests. return new InputFactoryImpl(); } protected XMLOutputFactory2 getOutputFactory() { if (mOutputFactory == null) { mOutputFactory = getNewOutputFactory(); } return mOutputFactory; } protected XMLOutputFactory2 getNewOutputFactory() { // Can hard-code things here, being Aalto-specific tests. return new OutputFactoryImpl(); } /* /********************************************************************** /* Additional assert methods /********************************************************************** */ final static HashMap<Integer,String> mTokenTypes = new HashMap<Integer,String>(); static { mTokenTypes.put(START_ELEMENT, "START_ELEMENT"); mTokenTypes.put(END_ELEMENT, "END_ELEMENT"); mTokenTypes.put(START_DOCUMENT, "START_DOCUMENT"); mTokenTypes.put(END_DOCUMENT, "END_DOCUMENT"); mTokenTypes.put(CHARACTERS, "CHARACTERS"); mTokenTypes.put(CDATA, "CDATA"); mTokenTypes.put(COMMENT, "COMMENT"); mTokenTypes.put(PROCESSING_INSTRUCTION, "PROCESSING_INSTRUCTION"); mTokenTypes.put(DTD, "DTD"); mTokenTypes.put(SPACE, "SPACE"); mTokenTypes.put(ENTITY_REFERENCE, "ENTITY_REFERENCE"); // and Async addition(s) mTokenTypes.put(AsyncXMLStreamReader.EVENT_INCOMPLETE, "Async.EVENT_INCOMPLETE"); } protected static String tokenTypeDesc(int tt) { String desc = (String) mTokenTypes.get(new Integer(tt)); return (desc == null) ? ("["+tt+"]") : desc; } protected static void assertTokenType(int expType, int actType) { if (expType != actType) { String expStr = tokenTypeDesc(expType); String actStr = tokenTypeDesc(actType); if (expStr == null) { expStr = ""+expType; } if (actStr == null) { actStr = ""+actType; } fail("Expected token "+expStr+"; got "+actStr+"."); } } protected void verifyException(Throwable e, String match) { String msg = e.getMessage(); String lmsg = msg.toLowerCase(); String lmatch = match.toLowerCase(); if (lmsg.indexOf(lmatch) < 0) { fail("Expected an exception with sub-string \""+match+"\": got one with message \""+msg+"\""); } } }