You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2010/10/17 15:31:50 UTC

svn commit: r1023498 - /openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java

Author: andygumbrecht
Date: Sun Oct 17 13:31:49 2010
New Revision: 1023498

URL: http://svn.apache.org/viewvc?rev=1023498&view=rev
Log:
Fix test for carriage-return/whitespace processing issues.

Modified:
    openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java

Modified: openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java?rev=1023498&r1=1023497&r2=1023498&view=diff
==============================================================================
--- openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java (original)
+++ openejb/branches/openejb-3.1.x/container/openejb-core/src/test/java/org/apache/openejb/config/OpenEjb2ConversionTest.java Sun Oct 17 13:31:49 2010
@@ -30,8 +30,12 @@ import javax.xml.bind.JAXBException;
 import javax.xml.bind.Marshaller;
 import java.io.BufferedInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringReader;
+import org.custommonkey.xmlunit.XMLUnit;
 
 /**
  * @version $Rev$ $Date$
@@ -40,14 +44,14 @@ public class OpenEjb2ConversionTest exte
 
     public void testSimple() throws Exception {
         String prefix = "convert/oej2/simple/";
-        
+
         AppModule appModule = deploy(prefix);
 
         // compare the results to the expected results
         EjbModule ejbModule = appModule.getEjbModules().get(0);
 
-        assertJaxb(prefix + "geronimo-openejb.xml", ejbModule.getAltDDs().get("geronimo-openejb.xml"), GeronimoEjbJarType.class);
         assertJaxb(prefix + "openejb-jar-expected.xml", ejbModule.getOpenejbJar(), OpenejbJar.class);
+        assertJaxb(prefix + "geronimo-openejb.xml", ejbModule.getAltDDs().get("geronimo-openejb.xml"), GeronimoEjbJarType.class);
     }
 
     public void testItests22() throws Exception {
@@ -97,29 +101,34 @@ public class OpenEjb2ConversionTest exte
         assertJaxb(prefix + "orm.xml", appModule.getCmpMappings(), EntityMappings.class);
     }
 
-    private  void assertJaxb(String expectedFile, Object object, Class<?> type) throws IOException, JAXBException, SAXException {
-        assertSame(type, object.getClass());
-        String expected = read(expectedFile).replaceAll("\r\n", "\n");
-
-        String actual = toString(object, type).replaceAll("\r\n", "\n");
-
-//        System.out.println("expected = " + expected);
-//        System.out.println("actual = " + actual);
+    private void assertJaxb(String expectedFile, Object object, Class<?> type) throws IOException, JAXBException, SAXException {
         
-        Diff myDiff = new Diff(expected, actual);
-        assertTrue("Files are similar " + myDiff, myDiff.similar());
-    }
+        assertSame(type, object.getClass());
 
-    private String read(String name) throws IOException {
-        InputStream in = getClass().getClassLoader().getResource(name).openStream();
-        StringBuffer sb = new StringBuffer();
-        in = new BufferedInputStream(in);
-        int i = in.read();
-        while (i != -1) {
-            sb.append((char) i);
-            i = in.read();
+        final String actual = toString(object, type);
+        final boolean nw = XMLUnit.getNormalizeWhitespace();
+        final boolean n = XMLUnit.getNormalize();
+        InputStreamReader isr = null;
+
+        try {
+
+            XMLUnit.setNormalizeWhitespace(true);
+            XMLUnit.setNormalize(true);
+
+            isr = new InputStreamReader(getClass().getClassLoader().getResource(expectedFile).openStream());
+            final org.w3c.dom.Document actualDoc = XMLUnit.buildDocument(XMLUnit.newTestParser(), new StringReader(actual));
+            final org.w3c.dom.Document expectedDoc = XMLUnit.buildDocument(XMLUnit.newControlParser(), isr);
+
+            Diff myDiff = new Diff(expectedDoc, actualDoc);
+            assertTrue("Files are similar " + myDiff, myDiff.similar());
+        } finally {
+            XMLUnit.setNormalizeWhitespace(nw);
+            XMLUnit.setNormalize(n);
+
+            if(null != isr){
+                isr.close();
+            }
         }
-        return sb.toString().trim();
     }
 
     private AppModule deploy(String prefix) throws OpenEJBException {
@@ -144,7 +153,6 @@ public class OpenEjb2ConversionTest exte
         return appModule;
     }
 
-
     private String toString(Object object, Class<?> type) throws JAXBException {
         JAXBContext jaxbContext = JAXBContextFactory.newInstance(type);
 
@@ -157,6 +165,4 @@ public class OpenEjb2ConversionTest exte
         String actual = new String(baos.toByteArray());
         return actual.trim();
     }
-
-
 }