(no commit message)
[utils] / support / general / src / test / java / org / wamblee / test / AssertionUtils.java
index 767f679c9be45026010a959110afdf7328aaac54..a0216a8b994128fa314c69c9954580e9ed7e9180 100644 (file)
  */
 package org.wamblee.test;
 
+import java.util.Arrays;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 import junit.framework.TestCase;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
 /**
  * Useful assertions for use in test cases.
  *
  * @author Erik Brakkee
  */
 public final class AssertionUtils {
+       
+       private static final Log LOG = LogFactory.getLog(AssertionUtils.class);
 
     /**
      * Disabled constructor.
@@ -37,25 +42,6 @@ public final class AssertionUtils {
         // Empty
     }
     
-    /**
-     * Asserts that two collections are equal including equality of the elements. 
-     * @param aExpected
-     * @param aActual
-     */
-    public static void assertEquals(List aExpected, List aActual) { 
-       assertEquals(aExpected.toArray(), aActual.toArray());
-    }
-    
-    /**
-     * Asserts that two collections are equal including equality of the elements. 
-     * @param aMsg
-     * @param aExpected
-     * @param aActual
-     */
-    public static void assertEquals(String aMsg, List aExpected, List aActual) { 
-       assertEquals(aMsg, aExpected.toArray(), aActual.toArray());
-    }
-
     /**
      * Asserts that two object arrays are equal.
      * 
@@ -64,9 +50,10 @@ public final class AssertionUtils {
      * @param aActual
      *            Actual object array.
      */
-    public static void assertEquals(Object[] aExpected, Object[] aActual) {
+    public static <T> void assertEquals(T[] aExpected, T[] aActual) {
         assertEquals("", aExpected, aActual);
     }
+    
 
     /**
      * Asserts that two object arrays are equal.
@@ -78,9 +65,11 @@ public final class AssertionUtils {
      * @param aActual
      *            Actual array.
      */
-    public static void assertEquals(String aMsg, Object[] aExpected,
-            Object[] aActual) {
-        TestCase.assertEquals(aMsg + ": Array lengths ", aExpected.length,
+    public static <T> void assertEquals(String aMsg, T[] aExpected,
+            T[] aActual) {
+        TestCase.assertEquals(aMsg + " expected " + 
+                Arrays.asList(aExpected) + ", actual " + 
+                Arrays.asList(aActual) + ": Array lengths ", aExpected.length,
                 aActual.length);
 
         for (int i = 0; i < aExpected.length; i++) {
@@ -88,6 +77,7 @@ public final class AssertionUtils {
                     aActual[i]);
         }
     }
+    
 
     /**
      * Asserts that two objects are equal, and in case the object is an Object[]
@@ -100,8 +90,8 @@ public final class AssertionUtils {
      * @param aActual
      *            Actual result.
      */
-    public static void assertEquals(String aMsg, Object aExpected,
-            Object aActual) {
+    public static <T> void assertEquals(String aMsg, T aExpected,
+            T aActual) {
         if (aExpected instanceof Object[]) {
             AssertionUtils.assertEquals(aMsg, (Object[]) aExpected,
                     (Object[]) aActual);
@@ -123,7 +113,8 @@ public final class AssertionUtils {
      * @param aActual
      *            Actual result.
      */
-    public static void assertEquals(String aMsg, Map aExpectedMap, Map aActual) {
+    public static <Key,Value> void assertEquals(String aMsg, 
+            Map<Key,Value> aExpectedMap, Map<Key,Value> aActual) {
         TestCase.assertEquals("Map sizes differ", aExpectedMap.size(), aActual
                 .size());
 
@@ -151,8 +142,10 @@ public final class AssertionUtils {
     public static void assertException(ErroneousCode aObject, Class aType) { 
        try { 
                aObject.run();
+               throw new RuntimeException("No exception occurred");
        } catch (Throwable t) { 
                if ( aType.isInstance(t)) { 
+                       LOG.info("Expected exception occured " + t.getMessage());
                        return; // ok 
                }
                else {