Author: DartPeng
Date: 2009-07-01 04:19:58 -0400 (Wed, 01 Jul 2009)
New Revision: 16312
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/
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/input-message.jsn
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/smooks-config.xml
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/smooks-config.xml.ext
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/model11/BaseTestCase.java
Modified:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/model11/AbstractSmooks11ModelTestCase.java
Log:
JBIDE-4217
Add Json data parser unit test
Added:
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
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/JsonParserTest.java 2009-07-01
08:19:58 UTC (rev 16312)
@@ -0,0 +1,95 @@
+package org.jboss.tools.smooks.test.jsonparse;
+
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+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.uitls.JsonInputDataParser;
+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.json.JsonReader;
+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;
+
+public class JsonParserTest extends BaseTestCase {
+ public void testParser1() throws IOException, ParserConfigurationException,
DocumentException, InvocationTargetException {
+ Resource extResource = new
SmooksGraphicsExtResourceFactoryImpl().createResource(null);
+ extResource.load(JsonParserTest.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("json".equalsIgnoreCase( ((InputType)object).getType())){
+ inputType = (InputType)object;
+ break;
+ }
+ }
+ }
+
+ smooksResource.load(JsonParserTest.class.getResourceAsStream("smooks-config.xml"),
null);
+
+ SmooksResourceListType resourceList =
((org.jboss.tools.smooks.model.smooks.DocumentRoot) smooksResource
+ .getContents().get(0)).getSmooksResourceList();
+ assertNotNull(resourceList);
+ JsonInputDataParser parser = new JsonInputDataParser();
+
+ JsonReader reader = null;
+ List<?> list = resourceList.getAbstractReader();
+ for (Iterator<?> iterator = list.iterator(); iterator.hasNext();) {
+ Object object = (Object) iterator.next();
+ if(object instanceof JsonReader){
+ reader = (JsonReader)object;
+ }
+ }
+ 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);
+ checkModel(rootModel);
+
+ parser = new JsonInputDataParser();
+
+ model =
parser.parseJsonFile(JsonParserTest.class.getResourceAsStream("input-message.jsn"),
inputType, resourceList);
+ children = model.getChildren();
+ assertEquals(children.size(), 1);
+ rootModel = children.get(0);
+ checkModel(rootModel);
+ }
+
+ private void checkModel(IXMLStructuredObject model){
+ assertEquals("root", model.getNodeName());
+ assertEquals(2, model.getChildren().size());
+ for (Iterator<?> iterator = model.getChildren().iterator(); iterator.hasNext();)
{
+ IXMLStructuredObject child = (IXMLStructuredObject) iterator.next();
+ if(child.getNodeName().equals("header")){
+ List<?> list = child.getChildren();
+ boolean checked = false;
+ for (Iterator<?> iterator2 = list.iterator(); iterator2.hasNext();) {
+ Object object = (Object) iterator2.next();
+ if(object instanceof IXMLStructuredObject){
+ if(((IXMLStructuredObject)object).getNodeName().equals("date-time") ||
+ ((IXMLStructuredObject)object).getNodeName().equals("timeanddate")){
+ checked = true;
+ }
+ }
+ }
+ assertEquals(checked, true);
+ }
+ }
+ }
+
+}
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/JsonParserTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/input-message.jsn
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/input-message.jsn
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/input-message.jsn 2009-07-01
08:19:58 UTC (rev 16312)
@@ -0,0 +1,31 @@
+{
+ "header" : {
+ "order id" : 1,
+ "status code" : 0,
+ "net amount" : 59.97,
+ "total amount" : 64.92,
+ "tax" : 4.95,
+ "date&time" : "Wed Nov 15 13:45:28 EST 2006",
+ "customer details" : {
+ "username" : "HenkJansen",
+ "firstname" : "Henk",
+ "lastname" : "Jansen",
+ "state" : "SD"
+ }
+ },
+ "order item" : [
+ {
+ "quantity" : 1,
+ "product id" : 364,
+ "title" : "The 40-Year-Old Virgin",
+ "price" : 29.98
+ },
+ {
+ "quantity" : 1,
+ "product id" : 299,
+ "title" : "Pulp Fiction",
+ "price" : 29.99
+ }
+
+ ]
+}
\ No newline at end of file
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/smooks-config.xml
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/smooks-config.xml
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/smooks-config.xml 2009-07-01
08:19:58 UTC (rev 16312)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<smooks-resource-list
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
xmlns:json="http://www.milyn.org/xsd/smooks/json-1.1.xsd"
default-selector="/root/order-item/">
+ <params>
+ <param name="stream.filter.type">SAX</param>
+ </params>
+ <abstract-reader xsi:type="json:reader"
arrayElementName="element" encoding="UTF-8"
keyWhitspaceReplacement="-" rootName="root">
+ <json:keyMap>
+ <json:key from="date&time" to="timeanddate"/>
+ </json:keyMap>
+ </abstract-reader>
+</smooks-resource-list>
\ No newline at end of file
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/smooks-config.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/smooks-config.xml.ext
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/smooks-config.xml.ext
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/jsonparse/smooks-config.xml.ext 2009-07-01
08:19:58 UTC (rev 16312)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<smooks-graphics-ext
xmlns="http://www.jboss.org/jbosstools/smooks/smooks-graphics-ext.xs...
+ <input type="json">
+ <param name="path">Workspace://test/src/json.jsn</param>
+ <param name="linkJSONReader">true</param>
+ </input>
+
+ <input type="json">
+ <param name="path">Workspace://test/src/json.jsn</param>
+ <param name="encoding">UTF-8</param>
+ <param name="_key_date&time">date-time</param>
+ <param name="spaceReplace">-</param>
+ <param name="arrayElementName">element</param>
+ <param name="rootName">root</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/model11/AbstractSmooks11ModelTestCase.java
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/model11/AbstractSmooks11ModelTestCase.java 2009-07-01
08:15:24 UTC (rev 16311)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/model11/AbstractSmooks11ModelTestCase.java 2009-07-01
08:19:58 UTC (rev 16312)
@@ -15,51 +15,31 @@
import java.util.Collections;
import java.util.HashMap;
-import junit.framework.TestCase;
-
import org.eclipse.emf.common.command.BasicCommandStack;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage.Registry;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.calc.CalcPackage;
import org.jboss.tools.smooks.model.calc.provider.CalcItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.common.CommonPackage;
import org.jboss.tools.smooks.model.common.provider.CommonItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.csv.CsvPackage;
import org.jboss.tools.smooks.model.csv.provider.CsvItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.datasource.DatasourcePackage;
import
org.jboss.tools.smooks.model.datasource.provider.DatasourceItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.dbrouting.DbroutingPackage;
import
org.jboss.tools.smooks.model.dbrouting.provider.DbroutingItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.edi.EdiPackage;
import org.jboss.tools.smooks.model.edi.provider.EdiItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.esbrouting.EsbroutingPackage;
-import org.jboss.tools.smooks.model.fileRouting.FileRoutingPackage;
import
org.jboss.tools.smooks.model.fileRouting.provider.FileRoutingItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.freemarker.FreemarkerPackage;
import
org.jboss.tools.smooks.model.freemarker.provider.FreemarkerItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.groovy.GroovyPackage;
import org.jboss.tools.smooks.model.groovy.provider.GroovyItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.iorouting.IoroutingPackage;
import
org.jboss.tools.smooks.model.iorouting.provider.IoroutingItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.javabean.JavabeanPackage;
import
org.jboss.tools.smooks.model.javabean.provider.JavabeanItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.jmsrouting.JmsroutingPackage;
import
org.jboss.tools.smooks.model.jmsrouting.provider.JmsroutingItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.json.JsonPackage;
import org.jboss.tools.smooks.model.json.provider.JsonItemProviderAdapterFactory;
import org.jboss.tools.smooks.model.medi.DocumentRoot;
-import org.jboss.tools.smooks.model.medi.MEdiPackage;
import org.jboss.tools.smooks.model.medi.MappingNode;
import org.jboss.tools.smooks.model.medi.provider.MEdiItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.smooks.SmooksPackage;
import org.jboss.tools.smooks.model.smooks.SmooksResourceListType;
import org.jboss.tools.smooks.model.smooks.provider.SmooksItemProviderAdapterFactory;
-import org.jboss.tools.smooks.model.xsl.XslPackage;
import org.jboss.tools.smooks.model.xsl.provider.XslItemProviderAdapterFactory;
import org.jboss.tools.smooks10.model.smooks.util.SmooksResourceFactoryImpl;
@@ -68,36 +48,12 @@
* @author Dart (dpeng(a)redhat.com)
*
*/
-public abstract class AbstractSmooks11ModelTestCase extends TestCase {
+public abstract class AbstractSmooks11ModelTestCase extends BaseTestCase {
protected ComposedAdapterFactory adapterFactory;
protected AdapterFactoryEditingDomain editingDomain;
protected EObject smooksModel;
- static {
- // regist emf model uri mapping
- Registry.INSTANCE.put(SmooksPackage.eNS_URI, SmooksPackage.eINSTANCE);
- Registry.INSTANCE.put(CalcPackage.eNS_URI, CalcPackage.eINSTANCE);
- Registry.INSTANCE.put(CommonPackage.eNS_URI, CommonPackage.eINSTANCE);
- Registry.INSTANCE.put(CsvPackage.eNS_URI, CsvPackage.eINSTANCE);
- Registry.INSTANCE.put(DatasourcePackage.eNS_URI, DatasourcePackage.eINSTANCE);
- Registry.INSTANCE.put(DbroutingPackage.eNS_URI, DbroutingPackage.eINSTANCE);
- Registry.INSTANCE.put(EdiPackage.eNS_URI, EdiPackage.eINSTANCE);
- Registry.INSTANCE.put(FileRoutingPackage.eNS_URI, FileRoutingPackage.eINSTANCE);
-
- Registry.INSTANCE.put(FreemarkerPackage.eNS_URI, FreemarkerPackage.eINSTANCE);
- Registry.INSTANCE.put(GroovyPackage.eNS_URI, GroovyPackage.eINSTANCE);
- Registry.INSTANCE.put(IoroutingPackage.eNS_URI, IoroutingPackage.eINSTANCE);
- Registry.INSTANCE.put(JavabeanPackage.eNS_URI, JavabeanPackage.eINSTANCE);
- Registry.INSTANCE.put(JmsroutingPackage.eNS_URI, JmsroutingPackage.eINSTANCE);
- Registry.INSTANCE.put(JsonPackage.eNS_URI, JsonPackage.eINSTANCE);
- Registry.INSTANCE.put(MEdiPackage.eNS_URI, MEdiPackage.eINSTANCE);
- Registry.INSTANCE.put(XslPackage.eNS_URI, XslPackage.eINSTANCE);
- Registry.INSTANCE.put(EsbroutingPackage.eNS_URI, EsbroutingPackage.eINSTANCE);
- Registry.INSTANCE.put(org.jboss.tools.smooks10.model.smooks.SmooksPackage.eNS_URI,
- org.jboss.tools.smooks10.model.smooks.SmooksPackage.eINSTANCE);
- }
-
public void testModel() {
// do nothing
}
Added:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/model11/BaseTestCase.java
===================================================================
---
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/model11/BaseTestCase.java
(rev 0)
+++
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/model11/BaseTestCase.java 2009-07-01
08:19:58 UTC (rev 16312)
@@ -0,0 +1,59 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.test.model11;
+
+import org.eclipse.emf.ecore.EPackage.Registry;
+import org.jboss.tools.smooks.model.calc.CalcPackage;
+import org.jboss.tools.smooks.model.common.CommonPackage;
+import org.jboss.tools.smooks.model.csv.CsvPackage;
+import org.jboss.tools.smooks.model.datasource.DatasourcePackage;
+import org.jboss.tools.smooks.model.dbrouting.DbroutingPackage;
+import org.jboss.tools.smooks.model.edi.EdiPackage;
+import org.jboss.tools.smooks.model.esbrouting.EsbroutingPackage;
+import org.jboss.tools.smooks.model.fileRouting.FileRoutingPackage;
+import org.jboss.tools.smooks.model.freemarker.FreemarkerPackage;
+import org.jboss.tools.smooks.model.graphics.ext.SmooksGraphicsExtPackage;
+import org.jboss.tools.smooks.model.groovy.GroovyPackage;
+import org.jboss.tools.smooks.model.iorouting.IoroutingPackage;
+import org.jboss.tools.smooks.model.javabean.JavabeanPackage;
+import org.jboss.tools.smooks.model.jmsrouting.JmsroutingPackage;
+import org.jboss.tools.smooks.model.json.JsonPackage;
+import org.jboss.tools.smooks.model.medi.MEdiPackage;
+import org.jboss.tools.smooks.model.smooks.SmooksPackage;
+import org.jboss.tools.smooks.model.xsl.XslPackage;
+
+import junit.framework.TestCase;
+
+/**
+ * @author Dart
+ *
+ */
+public class BaseTestCase extends TestCase {
+ static {
+ // regist emf model uri mapping
+ Registry.INSTANCE.put(SmooksGraphicsExtPackage.eNS_URI,
SmooksGraphicsExtPackage.eINSTANCE);
+ Registry.INSTANCE.put(SmooksPackage.eNS_URI, SmooksPackage.eINSTANCE);
+ Registry.INSTANCE.put(CalcPackage.eNS_URI, CalcPackage.eINSTANCE);
+ Registry.INSTANCE.put(CommonPackage.eNS_URI, CommonPackage.eINSTANCE);
+ Registry.INSTANCE.put(CsvPackage.eNS_URI, CsvPackage.eINSTANCE);
+ Registry.INSTANCE.put(DatasourcePackage.eNS_URI, DatasourcePackage.eINSTANCE);
+ Registry.INSTANCE.put(DbroutingPackage.eNS_URI, DbroutingPackage.eINSTANCE);
+ Registry.INSTANCE.put(EdiPackage.eNS_URI, EdiPackage.eINSTANCE);
+ Registry.INSTANCE.put(FileRoutingPackage.eNS_URI, FileRoutingPackage.eINSTANCE);
+
+ Registry.INSTANCE.put(FreemarkerPackage.eNS_URI, FreemarkerPackage.eINSTANCE);
+ Registry.INSTANCE.put(GroovyPackage.eNS_URI, GroovyPackage.eINSTANCE);
+ Registry.INSTANCE.put(IoroutingPackage.eNS_URI, IoroutingPackage.eINSTANCE);
+ Registry.INSTANCE.put(JavabeanPackage.eNS_URI, JavabeanPackage.eINSTANCE);
+ Registry.INSTANCE.put(JmsroutingPackage.eNS_URI, JmsroutingPackage.eINSTANCE);
+ Registry.INSTANCE.put(JsonPackage.eNS_URI, JsonPackage.eINSTANCE);
+ Registry.INSTANCE.put(MEdiPackage.eNS_URI, MEdiPackage.eINSTANCE);
+ Registry.INSTANCE.put(XslPackage.eNS_URI, XslPackage.eINSTANCE);
+ Registry.INSTANCE.put(EsbroutingPackage.eNS_URI, EsbroutingPackage.eINSTANCE);
+ Registry.INSTANCE.put(org.jboss.tools.smooks10.model.smooks.SmooksPackage.eNS_URI,
+ org.jboss.tools.smooks10.model.smooks.SmooksPackage.eINSTANCE);
+ }
+ public void testNull(){//ignore
+ }
+}
Property changes on:
trunk/smooks/tests/org.jboss.tools.smooks.test/src/org/jboss/tools/smooks/test/model11/BaseTestCase.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain