You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bi...@apache.org on 2007/10/30 02:55:22 UTC

svn commit: r589934 - in /incubator/cxf/trunk/rt/javascript/src: main/java/org/apache/cxf/javascript/types/ test/java/org/apache/cxf/javascript/fortest/ test/java/org/apache/cxf/javascript/types/ test/resources/

Author: bimargulies
Date: Mon Oct 29 18:55:21 2007
New Revision: 589934

URL: http://svn.apache.org/viewvc?rev=589934&view=rev
Log:
Add and pass more tests.

Modified:
    incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java
    incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean1.java
    incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTests.java
    incubator/cxf/trunk/rt/javascript/src/test/resources/serializationTest.js

Modified: incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java?rev=589934&r1=589933&r2=589934&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java Mon Oct 29 18:55:21 2007
@@ -375,6 +375,8 @@
             }
             
             if (isParticleArray(elChild)) {
+                // protected against null in arrays.
+                utils.startIf(elementName + " != null");
                 utils.startFor("var ax = 0", "ax < " +  elementName + ".length", "ax ++");
                 elementName = elementName + "[ax]";
                 // we need an extra level of 'nil' testing here. Or do we, depending on the type structure?
@@ -403,6 +405,7 @@
             if (isParticleArray(elChild)) {
                 utils.endBlock(); // for the extra level of nil checking, which might be wrong.
                 utils.endBlock(); // for the for loop.
+                utils.endBlock(); // the null protection.
             }
             
             if (nillable && !isParticleArray(elChild)) {

Modified: incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean1.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean1.java?rev=589934&r1=589933&r2=589934&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean1.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/fortest/TestBean1.java Mon Oct 29 18:55:21 2007
@@ -30,6 +30,7 @@
     //CHECKSTYLE:OFF
     public String stringItem;
     public int intItem;
+    @XmlElement(defaultValue = "43")
     public long longItem;
     public byte[] base64Item;
     @XmlElement(required = false)

Modified: incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTests.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTests.java?rev=589934&r1=589933&r2=589934&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTests.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/java/org/apache/cxf/javascript/types/SerializationTests.java Mon Oct 29 18:55:21 2007
@@ -19,8 +19,7 @@
 
 package org.apache.cxf.javascript.types;
 
-import java.io.File;
-import java.io.FilenameFilter;
+import java.io.IOException;
 import java.io.StringReader;
 import java.util.Collection;
 import java.util.List;
@@ -48,6 +47,11 @@
 public class SerializationTests extends AbstractDependencyInjectionSpringContextTests {
     private JavascriptTestUtilities testUtilities;
     private XMLInputFactory xmlInputFactory;
+    private Client client;
+    private List<ServiceInfo> serviceInfos;
+    private Collection<SchemaInfo> schemata;
+    private NameManager nameManager;
+    private JaxWsProxyFactoryBean clientProxyFactory;
 
     public SerializationTests() {
         testUtilities = new JavascriptTestUtilities(getClass());
@@ -62,29 +66,7 @@
     
     @Test
     public void testSerialization() throws Exception {
-        testUtilities.setBus((Bus)applicationContext.getBean("cxf"));
-        
-        testUtilities.initializeRhino();
-        testUtilities.readResourceIntoRhino("/org/apache/cxf/javascript/cxf-utils.js");
-
-        JaxWsProxyFactoryBean clientProxyFactory = 
-            (JaxWsProxyFactoryBean)applicationContext.getBean("simple-dlwu-proxy-factory");
-        
-        Client client = clientProxyFactory.getClientFactoryBean().create();
-        List<ServiceInfo> serviceInfos = client.getEndpoint().getService().getServiceInfos();
-        // there can only be one.
-        assertEquals(1, serviceInfos.size());
-        ServiceInfo serviceInfo = serviceInfos.get(0);
-        Collection<SchemaInfo> schemata = serviceInfo.getSchemas();
-        NameManager nameManager = new BasicNameManager(serviceInfo);
-
-        for (SchemaInfo schema : schemata) {
-            SchemaJavascriptBuilder builder = 
-                new SchemaJavascriptBuilder(nameManager, schema);
-            String allThatJavascript = builder.generateCodeForSchema(schema);
-            assertNotNull(allThatJavascript);
-            testUtilities.readStringIntoRhino(allThatJavascript, schema.toString());
-        }
+        setupClientAndRhino("simple-dlwu-proxy-factory");
         
         testUtilities.readResourceIntoRhino("/serializationTest.js");
         DataBinding dataBinding = clientProxyFactory.getServiceFactory().getDataBinding();
@@ -110,16 +92,68 @@
             assertEquals(1, testBean.optionalIntArrayItem.length);
             assertEquals(543, testBean.optionalIntArrayItem[0]);
             
+            serialized = testUtilities.rhinoCall("serializeTestBean1_2");
+            assertTrue(serialized instanceof String);
+            xml = (String)serialized;
+            reader = dataBinding.createReader(XMLStreamReader.class);
+            stringReader = new StringReader(xml);
+            xmlStreamReader = xmlInputFactory.createXMLStreamReader(stringReader);
+            bean = reader.read(testBeanQName, xmlStreamReader, TestBean1.class);
+            assertNotNull(bean);
+            assertTrue(bean instanceof TestBean1);
+            testBean = (TestBean1)bean;
+            assertEquals("bean1<stringItem", testBean.stringItem);
+            assertEquals(64, testBean.intItem);
+            assertEquals(64000000, testBean.longItem);
+            assertEquals(0, testBean.optionalIntItem);
+            assertNotNull(testBean.optionalIntArrayItem);
+            assertEquals(3, testBean.optionalIntArrayItem.length);
+            assertEquals(543, testBean.optionalIntArrayItem[0]);
+            assertEquals(0, testBean.optionalIntArrayItem[1]);
+            assertEquals(345, testBean.optionalIntArrayItem[2]);
+            
+            serialized = testUtilities.rhinoCall("serializeTestBean1_3");
+            assertTrue(serialized instanceof String);
+            xml = (String)serialized;
+            reader = dataBinding.createReader(XMLStreamReader.class);
+            stringReader = new StringReader(xml);
+            xmlStreamReader = xmlInputFactory.createXMLStreamReader(stringReader);
+            bean = reader.read(testBeanQName, xmlStreamReader, TestBean1.class);
+            assertNotNull(bean);
+            assertTrue(bean instanceof TestBean1);
+            testBean = (TestBean1)bean;
+            assertEquals("bean1<stringItem", testBean.stringItem);
+            assertEquals(64, testBean.intItem);
+            assertEquals(43, testBean.longItem);
+            assertEquals(33, testBean.optionalIntItem);
+            assertNull(testBean.optionalIntArrayItem);
         } catch (RhinoException angryRhino) {
-            String trace = angryRhino.getScriptStackTrace(new FilenameFilter() {
-
-                public boolean accept(File dir, String name) {
-                    return true;
-                }
-            } 
-            );
+            String trace = angryRhino.getScriptStackTrace();
             Assert.fail("Javascript error: " + angryRhino.toString() + " " + trace);
         }
         
+    }
+
+    private void setupClientAndRhino(String clientProxyFactoryBeanId) throws IOException {
+        testUtilities.setBus((Bus)applicationContext.getBean("cxf"));
+        
+        testUtilities.initializeRhino();
+        testUtilities.readResourceIntoRhino("/org/apache/cxf/javascript/cxf-utils.js");
+
+        clientProxyFactory = (JaxWsProxyFactoryBean)applicationContext.getBean(clientProxyFactoryBeanId);
+        client = clientProxyFactory.getClientFactoryBean().create();
+        serviceInfos = client.getEndpoint().getService().getServiceInfos();
+        // there can only be one.
+        assertEquals(1, serviceInfos.size());
+        ServiceInfo serviceInfo = serviceInfos.get(0);
+        schemata = serviceInfo.getSchemas();
+        nameManager = new BasicNameManager(serviceInfo);
+        for (SchemaInfo schema : schemata) {
+            SchemaJavascriptBuilder builder = 
+                new SchemaJavascriptBuilder(nameManager, schema);
+            String allThatJavascript = builder.generateCodeForSchema(schema);
+            assertNotNull(allThatJavascript);
+            testUtilities.readStringIntoRhino(allThatJavascript, schema.toString() + ".js");
+        }
     }
 }

Modified: incubator/cxf/trunk/rt/javascript/src/test/resources/serializationTest.js
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/test/resources/serializationTest.js?rev=589934&r1=589933&r2=589934&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/test/resources/serializationTest.js (original)
+++ incubator/cxf/trunk/rt/javascript/src/test/resources/serializationTest.js Mon Oct 29 18:55:21 2007
@@ -54,7 +54,6 @@
  	var bean1 = new org_apache_cxf_javascript_testns_testBean1();
  	bean1.setStringItem("bean1<stringItem");
  	bean1.setIntItem(64);
- 	bean1.setLongItem(64000000);
  	bean1.setBase64Item(''); // later
  	bean1.setOptionalIntItem(33);
  	bean1.setOptionalIntArrayItem(null);