Author: DartPeng
Date: 2009-07-07 01:36:21 -0400 (Tue, 07 Jul 2009)
New Revision: 16453
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/CsvParserTest.java
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/input-message.csv
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/smooks-config.xml
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/smooks-config.xml.ext
Modified:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/JsonParserTest.java
Log:
JBIDE-4217
Add CSV parser test case
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/CsvParserTest.java
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/CsvParserTest.java
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/CsvParserTest.java 2009-07-07
05:36:21 UTC (rev 16453)
@@ -0,0 +1,125 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.test.csvparser;
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.dom4j.DocumentException;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.jboss.tools.smooks.configuration.editors.IXMLStructuredObject;
+import org.jboss.tools.smooks.configuration.editors.csv.CSVDataParser;
+import org.jboss.tools.smooks.configuration.editors.uitls.SmooksUIUtils;
+import org.jboss.tools.smooks.configuration.editors.xml.TagList;
+import org.jboss.tools.smooks.model.graphics.ext.DocumentRoot;
+import org.jboss.tools.smooks.model.graphics.ext.InputType;
+import org.jboss.tools.smooks.model.graphics.ext.SmooksGraphicsExtType;
+import
org.jboss.tools.smooks.model.graphics.ext.util.SmooksGraphicsExtResourceFactoryImpl;
+import org.jboss.tools.smooks.model.smooks.SmooksResourceListType;
+import org.jboss.tools.smooks.model.smooks.util.SmooksResourceFactoryImpl;
+import org.jboss.tools.smooks.test.model11.BaseTestCase;
+
+/**
+ * @author Dart (dpeng(a)redhat.com)
+ *
+ */
+public class CsvParserTest extends BaseTestCase {
+
+ public void testCsvParser() throws IOException, DocumentException,
ParserConfigurationException {
+ Resource extResource = new
SmooksGraphicsExtResourceFactoryImpl().createResource(null);
+ extResource.load(CsvParserTest.class.getResourceAsStream("smooks-config.xml.ext"),
null);
+ SmooksGraphicsExtType extType = ((DocumentRoot)
extResource.getContents().get(0)).getSmooksGraphicsExt();
+ Resource smooksResource = new SmooksResourceFactoryImpl().createResource(null);
+
+ assertNotNull(extType);
+ InputType inputType = null;
+ List<?> ilist = extType.getInput();
+ for (Iterator<?> iterator = ilist.iterator(); iterator.hasNext();) {
+ Object object = (Object) iterator.next();
+ if (object instanceof InputType) {
+ if ("csv".equalsIgnoreCase(((InputType) object).getType())) {
+ inputType = (InputType) object;
+ break;
+ }
+ }
+ }
+ assertNotNull(inputType);
+
+ smooksResource.load(CsvParserTest.class.getResourceAsStream("smooks-config.xml"),
null);
+
+ SmooksResourceListType resourceList =
((org.jboss.tools.smooks.model.smooks.DocumentRoot) smooksResource
+ .getContents().get(0)).getSmooksResourceList();
+ assertNotNull(resourceList);
+
+ CSVDataParser parser = new CSVDataParser();
+ TagList tagList =
parser.parseCSV(CsvParserTest.class.getResourceAsStream("input-message.csv"),
inputType,
+ resourceList);
+ assertNotNull(tagList);
+ checkTagList1(tagList);
+
+ for (Iterator<?> iterator = ilist.iterator(); iterator.hasNext();) {
+ Object object = (Object) iterator.next();
+ if (object instanceof InputType) {
+ if ("csv".equalsIgnoreCase(((InputType) object).getType()) &&
object != inputType) {
+ inputType = (InputType) object;
+ break;
+ }
+ }
+ }
+
+ parser = new CSVDataParser();
+ tagList =
parser.parseCSV(CsvParserTest.class.getResourceAsStream("input-message.csv"),
inputType,
+ resourceList);
+ assertNotNull(tagList);
+ checkTagList2(tagList);
+ }
+
+ private void checkNode(String nodeName , IXMLStructuredObject tag){
+ IXMLStructuredObject node1 = SmooksUIUtils.localXMLNodeWithNodeName(nodeName, tag);
+ assertNotNull(node1);
+ String selector = SmooksUIUtils.generateFullPath(node1, "/");
+ assertEquals("/csv-set/csv-record/"+nodeName, selector);
+
+ }
+
+ private void checkTagList2(TagList tagList){
+ assertEquals(1, tagList.getChildren().size());
+ IXMLStructuredObject tag = tagList.getChildren().get(0);
+ assertEquals("csv-set",tag.getNodeName());
+
+ IXMLStructuredObject child = tag.getChildren().get(0);
+ assertEquals("csv-record", child.getNodeName());
+
+ checkNode("a",tag);
+ checkNode("b",tag);
+ checkNode("c",tag);
+ checkNode("d",tag);
+ checkNode("e",tag);
+ }
+
+ private void checkTagList1(TagList tagList){
+ assertEquals(1, tagList.getChildren().size());
+ IXMLStructuredObject tag = tagList.getChildren().get(0);
+ assertEquals("csv-set",tag.getNodeName());
+
+ IXMLStructuredObject child = tag.getChildren().get(0);
+ assertEquals("csv-record", child.getNodeName());
+
+ checkNode("firstname",tag);
+ checkNode("lastname",tag);
+ checkNode("gender",tag);
+ checkNode("age",tag);
+ checkNode("country",tag);
+ }
+}
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/CsvParserTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/input-message.csv
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/input-message.csv
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/input-message.csv 2009-07-07
05:36:21 UTC (rev 16453)
@@ -0,0 +1,2 @@
+Tom,Fennelly,Male,4,Ireland
+Mike,Fennelly,Male,2,Ireland
\ No newline at end of file
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/smooks-config.xml
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/smooks-config.xml
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/smooks-config.xml 2009-07-07
05:36:21 UTC (rev 16453)
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<smooks-resource-list
+
xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+
xmlns:csv="http://www.milyn.org/xsd/smooks/csv-1.1.xsd">
+
+ <!--
+ Configure the CSV Reader to read the message and change it into a stream of SAX
events.
+ -->
+ <csv:reader fields="firstname,lastname,gender,age,country" />
+
+</smooks-resource-list>
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/smooks-config.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/smooks-config.xml.ext
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/smooks-config.xml.ext
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/csvparser/smooks-config.xml.ext 2009-07-07
05:36:21 UTC (rev 16453)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<smooks-graphics-ext
xmlns="http://www.jboss.org/jbosstools/smooks/smooks-graphics-ext.xs...
+ <input type="csv">
+ <param
name="path">Workspace://java_project/csv-to-xml/input-message.csv</param>
+ <param name="linkCSVReader">true</param>
+ </input>
+ <input type="csv">
+ <param
name="path">Workspace://java_project/csv-to-xml/input-message.csv</param>
+ <param name="fields">a,b,c,d,e</param>
+ <param name="quoteChar">"</param>
+ <param name="encoding">UTF-8</param>
+ <param name="separator">,</param>
+ </input>
+</smooks-graphics-ext>
\ No newline at end of file
Modified:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/JsonParserTest.java
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/JsonParserTest.java 2009-07-07
05:34:35 UTC (rev 16452)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/JsonParserTest.java 2009-07-07
05:36:21 UTC (rev 16453)
@@ -55,7 +55,9 @@
reader = (JsonReader)object;
}
}
+ try{
IXMLStructuredObject model =
parser.parseJsonFile(JsonParserTest.class.getResourceAsStream("input-message.jsn"),
reader);
+
List<IXMLStructuredObject> children = model.getChildren();
assertEquals(children.size(), 1);
IXMLStructuredObject rootModel = children.get(0);
@@ -68,6 +70,9 @@
assertEquals(children.size(), 1);
rootModel = children.get(0);
checkModel(rootModel);
+ }catch(Throwable t){
+ t.printStackTrace();
+ }
}
private void checkModel(IXMLStructuredObject model){