001: package com.bostechcorp.cbesb.runtime.parser;
002:
003: import java.io.File;
004: import java.io.FileInputStream;
005: import java.io.FileOutputStream;
006: import java.io.IOException;
007: import java.io.InputStream;
008:
009: import javax.xml.transform.OutputKeys;
010: import javax.xml.transform.Transformer;
011: import javax.xml.transform.TransformerException;
012: import javax.xml.transform.TransformerFactory;
013: import javax.xml.transform.dom.DOMSource;
014: import javax.xml.transform.stream.StreamResult;
015:
016: import junit.framework.TestCase;
017:
018: import org.w3c.dom.Document;
019:
020: import com.bostechcorp.cbesb.common.mdl.IMDLDocument;
021: import com.bostechcorp.cbesb.common.mdl.IMessageDefinition;
022: import com.bostechcorp.cbesb.common.mdl.fsmparser.Mdl2Fsm;
023: import com.bostechcorp.cbesb.common.mdl.util.FormatDefUtil;
024: import com.bostechcorp.cbesb.common.util.ClassPathHacker;
025: import com.bostechcorp.cbesb.common.util.Dom;
026: import com.bostechcorp.cbesb.common.util.FileUtil;
027: import com.bostechcorp.cbesb.runtime.parser.impl.LegacyDataParser;
028: import com.bostechcorp.cbesb.runtime.parser.impl.LegacyDataSerializer;
029:
030: public class TestParsers extends TestCase {
031:
032: public void testFixed1() throws Throwable {
033: File mdlFile = new File("target/test-data/in/fixed1.mdl");
034: File dataFile = new File("target/test-data/in/fixed1.dat");
035: File outputFile = new File("target/test-data/out/fixed1.txt");
036:
037: IMDLDocument mdlDoc = FormatDefUtil.getMdlDocFromPath(mdlFile
038: .getAbsolutePath());
039:
040: IMessageDefinition msgDef = mdlDoc.getMessageDefinition(mdlDoc
041: .getTargetNamespace(), mdlDoc
042: .getAllMessageDefinitions()[0].getName());
043:
044: Document domDoc = null;
045: LegacyDataParser parser = new LegacyDataParser();
046: try {
047: InputStream is = new FileInputStream(dataFile);
048: domDoc = parser.parse(is, msgDef);
049: } catch (Exception pe) {
050: System.err.println("Error Parsing:");
051: System.err.println(pe.getMessage());
052: System.exit(0);
053: }
054:
055: try {
056: TransformerFactory tFactory = TransformerFactory
057: .newInstance();
058: Transformer transformer = tFactory.newTransformer();
059: transformer.setOutputProperty(OutputKeys.INDENT, "yes");
060: transformer.setOutputProperty(OutputKeys.METHOD, "xml");
061: DOMSource source = new DOMSource(domDoc);
062: StreamResult result = new StreamResult(System.out);
063: transformer.transform(source, result);
064: } catch (TransformerException te) {
065: System.err.println("Error Writing Output");
066: System.err.println(te.getMessage());
067: System.exit(0);
068: }
069:
070: try {
071: LegacyDataSerializer serializer = new LegacyDataSerializer();
072: FileOutputStream fio = new FileOutputStream(outputFile);
073: serializer.serialize(domDoc, msgDef, System.out);
074: serializer.serialize(domDoc, msgDef, fio);
075: String rsuleString = FileUtil
076: .readStringFromFile("target/test-data/out/fixed1.txt");
077: String beginString = FileUtil
078: .readStringFromFile("target/test-data/in/fixed1.dat");
079: assertTrue(rsuleString.equals(beginString));
080: } catch (Exception e) {
081: System.err.println("Error Serializer:");
082: System.err.println(e.getMessage());
083: System.exit(0);
084: }
085: }
086:
087: public void testFixed2() throws Throwable {
088: File mdlFile = new File("target/test-data/in/fixed2.mdl");
089: File dataFile = new File("target/test-data/in/fixed1.dat");
090: File outputFile = new File("target/test-data/out/fixed2.txt");
091:
092: IMDLDocument mdlDoc = FormatDefUtil.getMdlDocFromPath(mdlFile
093: .getAbsolutePath());
094:
095: IMessageDefinition msgDef = mdlDoc.getMessageDefinition(mdlDoc
096: .getTargetNamespace(), mdlDoc
097: .getAllMessageDefinitions()[0].getName());
098:
099: Document domDoc = null;
100: LegacyDataParser parser = new LegacyDataParser();
101: try {
102: InputStream is = new FileInputStream(dataFile);
103: domDoc = parser.parse(is, msgDef);
104: } catch (Exception pe) {
105: System.err.println("Error Parsing:");
106: System.err.println(pe.getMessage());
107: System.exit(0);
108: }
109:
110: try {
111: TransformerFactory tFactory = TransformerFactory
112: .newInstance();
113: Transformer transformer = tFactory.newTransformer();
114: transformer.setOutputProperty(OutputKeys.INDENT, "yes");
115: transformer.setOutputProperty(OutputKeys.METHOD, "xml");
116: DOMSource source = new DOMSource(domDoc);
117: StreamResult result = new StreamResult(System.out);
118: transformer.transform(source, result);
119: } catch (TransformerException te) {
120: System.err.println("Error Writing Output");
121: System.err.println(te.getMessage());
122: System.exit(0);
123: }
124:
125: try {
126: LegacyDataSerializer serializer = new LegacyDataSerializer();
127: FileOutputStream fio = new FileOutputStream(outputFile);
128: serializer.serialize(domDoc, msgDef, System.out);
129: serializer.serialize(domDoc, msgDef, fio);
130: String rsuleString = FileUtil
131: .readStringFromFile("target/test-data/out/fixed2.txt");
132: String beginString = FileUtil
133: .readStringFromFile("target/test-data/in/fixed1.dat");
134: assertTrue(rsuleString.equals(beginString));
135: } catch (Exception e) {
136: System.err.println("Error Serializer:");
137: System.err.println(e.getMessage());
138: System.exit(0);
139: }
140: }
141:
142: public void testVariable1() throws Throwable {
143: File mdlFile = new File("target/test-data/in/Variable1.mdl");
144: File dataFile = new File("target/test-data/in/Variable1.dat");
145: File outputFile = new File("target/test-data/out/Variable1.txt");
146:
147: IMDLDocument mdlDoc = FormatDefUtil.getMdlDocFromPath(mdlFile
148: .getAbsolutePath());
149:
150: IMessageDefinition msgDef = mdlDoc.getMessageDefinition(mdlDoc
151: .getTargetNamespace(), mdlDoc
152: .getAllMessageDefinitions()[0].getName());
153:
154: Document domDoc = null;
155: LegacyDataParser parser = new LegacyDataParser();
156: try {
157: InputStream is = new FileInputStream(dataFile);
158: domDoc = parser.parse(is, msgDef);
159: } catch (Exception pe) {
160: System.err.println("Error Parsing:");
161: System.err.println(pe.getMessage());
162: System.exit(0);
163: }
164:
165: try {
166: TransformerFactory tFactory = TransformerFactory
167: .newInstance();
168: Transformer transformer = tFactory.newTransformer();
169: transformer.setOutputProperty(OutputKeys.INDENT, "yes");
170: transformer.setOutputProperty(OutputKeys.METHOD, "xml");
171: DOMSource source = new DOMSource(domDoc);
172: StreamResult result = new StreamResult(System.out);
173: transformer.transform(source, result);
174: } catch (TransformerException te) {
175: System.err.println("Error Writing Output");
176: System.err.println(te.getMessage());
177: System.exit(0);
178: }
179:
180: try {
181: LegacyDataSerializer serializer = new LegacyDataSerializer();
182: FileOutputStream fio = new FileOutputStream(outputFile);
183: serializer.serialize(domDoc, msgDef, System.out);
184: serializer.serialize(domDoc, msgDef, fio);
185: String rsuleString = FileUtil
186: .readStringFromFile("target/test-data/out/Variable1.txt");
187: String beginString = FileUtil
188: .readStringFromFile("target/test-data/in/Variable1.dat");
189: assertTrue(rsuleString.equals(beginString));
190: } catch (Exception e) {
191: System.err.println("Error Serializer:");
192: System.err.println(e.getMessage());
193: System.exit(0);
194: }
195: }
196:
197: public void testVariable2() throws Throwable {
198: File mdlFile = new File("target/test-data/in/Variable2a.mdl");
199: File dataFile = new File("target/test-data/in/Variable1b.dat");
200: File outputFile = new File(
201: "target/test-data/out/Variable2b.txt");
202:
203: IMDLDocument mdlDoc = FormatDefUtil.getMdlDocFromPath(mdlFile
204: .getAbsolutePath());
205:
206: IMessageDefinition msgDef = mdlDoc.getMessageDefinition(mdlDoc
207: .getTargetNamespace(), mdlDoc
208: .getAllMessageDefinitions()[0].getName());
209:
210: Document domDoc = null;
211: LegacyDataParser parser = new LegacyDataParser();
212: try {
213: InputStream is = new FileInputStream(dataFile);
214: domDoc = parser.parse(is, msgDef);
215: } catch (Exception pe) {
216: System.err.println("Error Parsing:");
217: System.err.println(pe.getMessage());
218: System.exit(0);
219: }
220:
221: try {
222: TransformerFactory tFactory = TransformerFactory
223: .newInstance();
224: Transformer transformer = tFactory.newTransformer();
225: transformer.setOutputProperty(OutputKeys.INDENT, "yes");
226: transformer.setOutputProperty(OutputKeys.METHOD, "xml");
227: DOMSource source = new DOMSource(domDoc);
228: StreamResult result = new StreamResult(System.out);
229: transformer.transform(source, result);
230: } catch (TransformerException te) {
231: System.err.println("Error Writing Output");
232: System.err.println(te.getMessage());
233: System.exit(0);
234: }
235:
236: try {
237: LegacyDataSerializer serializer = new LegacyDataSerializer();
238: FileOutputStream fio = new FileOutputStream(outputFile);
239: serializer.serialize(domDoc, msgDef, System.out);
240: serializer.serialize(domDoc, msgDef, fio);
241: String rsuleString = FileUtil
242: .readStringFromFile("target/test-data/out/Variable2b.txt");
243: String beginString = FileUtil
244: .readStringFromFile("target/test-data/in/Variable1b.dat");
245: assertTrue(rsuleString.equals(beginString));
246: } catch (Exception e) {
247: System.err.println("Error Serializer:");
248: System.err.println(e.getMessage());
249: System.exit(0);
250: }
251: }
252:
253: public void testSpecialDelimiter() throws Throwable {
254: File mdlFile = new File("target/test-data/in/Rn.mdl");
255: File dataFile = new File("target/test-data/in/Rn.dat");
256: File outputFile = new File("target/test-data/out/Rn.txt");
257:
258: IMDLDocument mdlDoc = FormatDefUtil.getMdlDocFromPath(mdlFile
259: .getAbsolutePath());
260:
261: IMessageDefinition msgDef = mdlDoc.getMessageDefinition(mdlDoc
262: .getTargetNamespace(), mdlDoc
263: .getAllMessageDefinitions()[0].getName());
264:
265: Document domDoc = null;
266: LegacyDataParser parser = new LegacyDataParser();
267: try {
268: InputStream is = new FileInputStream(dataFile);
269: domDoc = parser.parse(is, msgDef);
270: } catch (Exception pe) {
271: System.err.println("Error Parsing:");
272: System.err.println(pe.getMessage());
273: System.exit(0);
274: }
275:
276: try {
277: TransformerFactory tFactory = TransformerFactory
278: .newInstance();
279: Transformer transformer = tFactory.newTransformer();
280: transformer.setOutputProperty(OutputKeys.INDENT, "yes");
281: transformer.setOutputProperty(OutputKeys.METHOD, "xml");
282: DOMSource source = new DOMSource(domDoc);
283: StreamResult result = new StreamResult(System.out);
284: transformer.transform(source, result);
285: } catch (TransformerException te) {
286: System.err.println("Error Writing Output");
287: System.err.println(te.getMessage());
288: System.exit(0);
289: }
290:
291: try {
292: LegacyDataSerializer serializer = new LegacyDataSerializer();
293: FileOutputStream fio = new FileOutputStream(outputFile);
294: serializer.serialize(domDoc, msgDef, System.out);
295: serializer.serialize(domDoc, msgDef, fio);
296: String rsuleString = FileUtil
297: .readStringFromFile("target/test-data/out/Rn.txt");
298: String beginString = FileUtil
299: .readStringFromFile("target/test-data/in/Rn.dat");
300: assertEquals(rsuleString, beginString);
301: } catch (Exception e) {
302: System.err.println("Error Serializer:");
303: System.err.println(e.getMessage());
304: System.exit(0);
305: }
306: }
307:
308: public void testMixed() throws Throwable {
309: File mdlFile = new File("target/test-data/in/mixed1.mdl");
310: File dataFile = new File("target/test-data/in/mixed1.dat");
311: File outputFile = new File("target/test-data/out/mixed1.txt");
312:
313: IMDLDocument mdlDoc = FormatDefUtil.getMdlDocFromPath(mdlFile
314: .getAbsolutePath());
315:
316: IMessageDefinition msgDef = mdlDoc.getMessageDefinition(mdlDoc
317: .getTargetNamespace(), mdlDoc
318: .getAllMessageDefinitions()[0].getName());
319:
320: Document domDoc = null;
321: LegacyDataParser parser = new LegacyDataParser();
322: try {
323: InputStream is = new FileInputStream(dataFile);
324: domDoc = parser.parse(is, msgDef);
325: } catch (Exception pe) {
326: System.err.println("Error Parsing:");
327: System.err.println(pe.getMessage());
328: System.exit(0);
329: }
330:
331: try {
332: TransformerFactory tFactory = TransformerFactory
333: .newInstance();
334: Transformer transformer = tFactory.newTransformer();
335: transformer.setOutputProperty(OutputKeys.INDENT, "yes");
336: transformer.setOutputProperty(OutputKeys.METHOD, "xml");
337: DOMSource source = new DOMSource(domDoc);
338: StreamResult result = new StreamResult(System.out);
339: transformer.transform(source, result);
340: } catch (TransformerException te) {
341: System.err.println("Error Writing Output");
342: System.err.println(te.getMessage());
343: System.exit(0);
344: }
345:
346: try {
347: LegacyDataSerializer serializer = new LegacyDataSerializer();
348: FileOutputStream fio = new FileOutputStream(outputFile);
349: serializer.serialize(domDoc, msgDef, System.out);
350: serializer.serialize(domDoc, msgDef, fio);
351: // String rsuleString = FileUtil
352: // .readStringFromFile("target/test-data/out/mixed1.txt");
353: // String beginString = FileUtil
354: // .readStringFromFile("target/test-data/in/mixed1.dat");
355: // assertTrue(rsuleString.equals(beginString));
356: } catch (Exception e) {
357: System.err.println("Error Serializer:");
358: System.err.println(e.getMessage());
359: System.exit(0);
360: }
361: }
362:
363: public void testHrl1() throws Throwable {
364: File mdlFile = new File("target/test-data/in/parser.mdl");
365: File dataFile = new File("target/test-data/in/parser.dat");
366: File outputFile = new File("target/test-data/out/parser.txt");
367:
368: IMDLDocument mdlDoc = FormatDefUtil.getMdlDocFromPath(mdlFile
369: .getAbsolutePath());
370:
371: IMessageDefinition msgDef = mdlDoc.getMessageDefinition(mdlDoc
372: .getTargetNamespace(), mdlDoc
373: .getAllMessageDefinitions()[0].getName());
374:
375: // Mdl2Fsm.toFsm(msgDef, "com.bostechcorp.cbesb.fsm", "OrderRecord.jar",
376: // "/tmp/target",
377: // "/work/chainbuilderESB/com.bostechcorp.cbesb.runtime.parser.test/target/classes");
378: Mdl2Fsm
379: .toFsm(
380: msgDef,
381: "com.bostechcorp.cbesb.fsm",
382: "OrderRecord.jar",
383: "D:/tmp/target",
384: "D:/Winnipeg/BostechCorp/ChainBuilderESB/project-test/com.bostechcorp.cbesb.runtime.parser.test/target/classes",
385: null);
386:
387: try {
388: ClassPathHacker
389: .addFile("D:/Winnipeg/BostechCorp/ChainBuilderESB/project-test/com.bostechcorp.cbesb.runtime.parser.test/target/classes/OrderRecord.jar");
390: } catch (IOException e) {
391:
392: e.printStackTrace();
393: }
394:
395: Document domDoc = null;
396: LegacyDataParser parser = new LegacyDataParser();
397: try {
398: InputStream is = new FileInputStream(dataFile);
399: domDoc = parser.parse(is, msgDef);
400: String result = Dom.createStringFromDOMDocument(domDoc,
401: true);
402: System.out.println(result);
403: } catch (Exception pe) {
404: pe.printStackTrace();
405: fail();
406:
407: }
408:
409: try {
410: LegacyDataSerializer serializer = new LegacyDataSerializer();
411: FileOutputStream fio = new FileOutputStream(outputFile);
412: serializer.serialize(domDoc, msgDef, System.out);
413: serializer.serialize(domDoc, msgDef, fio);
414: String rsuleString = FileUtil
415: .readStringFromFile("target/test-data/out/parser.txt");
416: String beginString = FileUtil
417: .readStringFromFile("target/test-data/in/parser.dat");
418: assertTrue(rsuleString.equals(beginString));
419: } catch (Exception e) {
420: System.err.println("Error Serializer:");
421: System.err.println(e.getMessage());
422: System.exit(0);
423: }
424: }
425: }
|