You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by va...@apache.org on 2008/06/11 17:16:26 UTC

svn commit: r666699 - in /incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src: main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/ test/java/org/apache/tuscany/sca/itest/databindings/jaxb/

Author: vamsic007
Date: Wed Jun 11 08:16:26 2008
New Revision: 666699

URL: http://svn.apache.org/viewvc?rev=666699&view=rev
Log:
Fix the Image databinding tests.

Modified:
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesServiceImpl.java
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesTransformer.java
    incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesDatabindingTestCase.java

Modified: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesServiceImpl.java?rev=666699&r1=666698&r2=666699&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesServiceImpl.java (original)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesServiceImpl.java Wed Jun 11 08:16:26 2008
@@ -158,8 +158,7 @@
     }
 
     public Image getNewImage(Image img) {
-        //FIXME: transform the input
-        return img;
+        return StandardTypesTransformer.getNewImage(img);
     }
 
     public Image[] getNewImageArray(Image[] imgs) {

Modified: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesTransformer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesTransformer.java?rev=666699&r1=666698&r2=666699&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesTransformer.java (original)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/main/java/org/apache/tuscany/sca/itest/databindings/jaxb/impl/StandardTypesTransformer.java Wed Jun 11 08:16:26 2008
@@ -19,6 +19,7 @@
 
 package org.apache.tuscany.sca.itest.databindings.jaxb.impl;
 
+import java.awt.Image;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.CharArrayReader;
@@ -135,4 +136,9 @@
         }
         return ret;
     }
+    
+    public static Image getNewImage(Image arg) {
+        arg.getGraphics().drawOval(2, 2, 7, 7);
+        return arg;
+    }
 }

Modified: incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesDatabindingTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesDatabindingTestCase.java?rev=666699&r1=666698&r2=666699&view=diff
==============================================================================
--- incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesDatabindingTestCase.java (original)
+++ incubator/tuscany/java/sca/itest/databindings/jaxb-bottom-up/src/test/java/org/apache/tuscany/sca/itest/databindings/jaxb/StandardTypesDatabindingTestCase.java Wed Jun 11 08:16:26 2008
@@ -21,6 +21,7 @@
 
 import java.awt.Image;
 import java.awt.image.BufferedImage;
+import java.awt.image.PixelGrabber;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.StringReader;
@@ -302,7 +303,6 @@
      * Service method invoked is getNewImageArray.
      */
     @Test
-    @Ignore("junit.framework.AssertionFailedError: expected:<BufferedImage@79ecf4: type = 5 ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@aee320 transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 10 height = 10 #numDataElements 3 dataOff[0] = 2> but was:<BufferedImage@1c160cb: type = 0 ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@aee320 transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 10 height = 10 #numDataElements 3 dataOff[0] = 0>")
     public void testSCANewImageArray() throws Exception {
         StandardTypesServiceClient serviceClient =
             domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientSCAComponent");
@@ -584,7 +584,6 @@
      * Service method invoked is getNewImage.
      */
     @Test
-    @Ignore("junit.framework.AssertionFailedError: expected:<BufferedImage@1e9d0cc: type = 5 ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@aee320 transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 10 height = 10 #numDataElements 3 dataOff[0] = 2> but was:<BufferedImage@18b0b4a: type = 0 ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@aee320 transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 10 height = 10 #numDataElements 3 dataOff[0] = 0>")
     public void testWSNewImage() throws Exception {
         StandardTypesServiceClient serviceClient =
             domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientWSComponent");
@@ -596,7 +595,6 @@
      * Service method invoked is getNewImageArray.
      */
     @Test
-    @Ignore("junit.framework.AssertionFailedError: expected:<BufferedImage@5afcb1: type = 5 ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@aee320 transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 10 height = 10 #numDataElements 3 dataOff[0] = 2> but was:<BufferedImage@bb1bc4: type = 0 ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@aee320 transparency = 1 has alpha = false isAlphaPre = false ByteInterleavedRaster: width = 10 height = 10 #numDataElements 3 dataOff[0] = 0>")
     public void testWSNewImageArray() throws Exception {
         StandardTypesServiceClient serviceClient =
             domain.getService(StandardTypesServiceClient.class, "StandardTypesServiceClientWSComponent");
@@ -1202,28 +1200,70 @@
         }
     }
 
-    private void performTestNewImage(StandardTypesServiceClient serviceClient) {
+    private void performTestNewImage(StandardTypesServiceClient serviceClient) throws InterruptedException {
+        // Create some images to test with.
         Image[] imgs = new Image[3];
         imgs[0] = new BufferedImage(10, 10, BufferedImage.TYPE_3BYTE_BGR);
         imgs[1] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB);
         imgs[2] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB);
+        imgs[0].getGraphics().drawLine(1, 1, 8, 8);
+        imgs[1].getGraphics().drawLine(8, 1, 1, 8);
+        imgs[2].getGraphics().drawLine(1, 8, 8, 1);
+        
+        Image[] copy = imgs;
+        // Create the same images once again as the StandardTypesTransformer may manipulate the image passed.
+        imgs = new Image[3];
+        imgs[0] = new BufferedImage(10, 10, BufferedImage.TYPE_3BYTE_BGR);
+        imgs[1] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB);
+        imgs[2] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB);
+        imgs[0].getGraphics().drawLine(1, 1, 8, 8);
+        imgs[1].getGraphics().drawLine(8, 1, 1, 8);
+        imgs[2].getGraphics().drawLine(1, 8, 8, 1);
+        
+        // Make sure the images and copies are equal using ImageInfo
+        for(int i = 0; i < imgs.length; ++i) {
+            Assert.assertEquals(new ImageInfo(imgs[i]), new ImageInfo(copy[i]));
+        }
 
         for (int i = 0; i < imgs.length; ++i) {
             Image actual = serviceClient.getNewImageForward(imgs[i]);
-            Assert.assertEquals(imgs[i], actual);
+            Image expected = StandardTypesTransformer.getNewImage(copy[i]);
+            // Compare using ImageInfo
+            Assert.assertEquals(new ImageInfo(expected), new ImageInfo(actual));
         }
     }
 
-    private void performTestNewImageArray(StandardTypesServiceClient serviceClient) {
+    private void performTestNewImageArray(StandardTypesServiceClient serviceClient) throws InterruptedException {
+        // Create some images to test with.
         Image[] imgs = new Image[3];
         imgs[0] = new BufferedImage(10, 10, BufferedImage.TYPE_3BYTE_BGR);
         imgs[1] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB);
         imgs[2] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB);
+        imgs[0].getGraphics().drawLine(1, 1, 8, 8);
+        imgs[1].getGraphics().drawLine(8, 1, 1, 8);
+        imgs[2].getGraphics().drawLine(1, 8, 8, 1);
+        
+        Image[] copy = imgs;
+        // Create the same images once again as the StandardTypesTransformer may manipulate the image passed.
+        imgs = new Image[3];
+        imgs[0] = new BufferedImage(10, 10, BufferedImage.TYPE_3BYTE_BGR);
+        imgs[1] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB);
+        imgs[2] = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB);
+        imgs[0].getGraphics().drawLine(1, 1, 8, 8);
+        imgs[1].getGraphics().drawLine(8, 1, 1, 8);
+        imgs[2].getGraphics().drawLine(1, 8, 8, 1);
+        
+        // Make sure the images and copies are equal using ImageInfo
+        for(int i = 0; i < imgs.length; ++i) {
+            Assert.assertEquals(new ImageInfo(imgs[i]), new ImageInfo(copy[i]));
+        }
 
         Image[] actual = serviceClient.getNewImageArrayForward(imgs);
         Assert.assertEquals(imgs.length, actual.length);
         for (int i = 0; i < imgs.length; ++i) {
-            Assert.assertEquals(imgs[i], actual[i]);
+            Image expected = StandardTypesTransformer.getNewImage(copy[i]);
+            // Compare using ImageInfo
+            Assert.assertEquals(new ImageInfo(expected), new ImageInfo(actual[i]));
         }
     }
 
@@ -1364,4 +1404,41 @@
         sw.close();
         return sw.toString();
     }
+    
+    /**
+     * This class initializes with the width, height and pixel data of a java.awt.Image object.
+     */
+    private static class ImageInfo {
+        private int h, w, pixels[];
+        public ImageInfo(Image img) throws InterruptedException {
+            w = img.getWidth(null);
+            h = img.getHeight(null);
+            pixels = new int[w*h];
+            PixelGrabber pg = new PixelGrabber(img, 0, 0, w, h, pixels, 0, w);
+            pg.grabPixels();
+        }
+        
+        public boolean equals(Object that) {
+            if(that == null) {
+                return false;
+            } else if(!(that instanceof ImageInfo)) {
+                return false;
+            }
+            
+            ImageInfo that1 = (ImageInfo)that;
+            if(w != that1.w || h != that1.h || pixels == null || that1.pixels == null || pixels.length != that1.pixels.length) {
+                return false;
+            }
+            for(int i = 0; i < pixels.length; ++i) {
+                if(pixels[i] != that1.pixels[i]) {
+                    return false;
+                }
+            }
+            return true;
+        }
+        
+        public String toString() {
+            return this.getClass().getSimpleName()+"[w = "+w+", h = "+h+", pixels = "+pixels+"]";
+        }
+    }
 }