X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Ftest%2FAssertionUtils.java;h=e6e0b155c72650cc06b3d42bc913d44f66ee77fa;hb=e84a037d2ee2d2d2e8d991128f83978f2e98201c;hp=824620418797fc7c42dc2688457c789b6a85a325;hpb=183281472cb842ed1be98c1590fc7cdef4f088db;p=utils diff --git a/support/general/src/test/java/org/wamblee/test/AssertionUtils.java b/support/general/src/test/java/org/wamblee/test/AssertionUtils.java index 82462041..e6e0b155 100644 --- a/support/general/src/test/java/org/wamblee/test/AssertionUtils.java +++ b/support/general/src/test/java/org/wamblee/test/AssertionUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2006 the original author or authors. + * Copyright 2005-2010 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,20 +16,21 @@ package org.wamblee.test; import java.util.Arrays; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Map.Entry; +import java.util.logging.Logger; import junit.framework.TestCase; /** * Useful assertions for use in test cases. - * + * * @author Erik Brakkee */ public final class AssertionUtils { + private static final Logger LOG = Logger.getLogger(AssertionUtils.class + .getName()); /** * Disabled constructor. @@ -38,7 +39,7 @@ public final class AssertionUtils { private AssertionUtils() { // Empty } - + /** * Asserts that two object arrays are equal. * @@ -50,7 +51,6 @@ public final class AssertionUtils { public static void assertEquals(T[] aExpected, T[] aActual) { assertEquals("", aExpected, aActual); } - /** * Asserts that two object arrays are equal. @@ -62,22 +62,21 @@ public final class AssertionUtils { * @param aActual * Actual array. */ - public static void assertEquals(String aMsg, T[] aExpected, - T[] aActual) { - TestCase.assertEquals(aMsg + ": Array lengths ", aExpected.length, - aActual.length); + public static 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++) { TestCase.assertEquals(aMsg + ": Element " + i, aExpected[i], - aActual[i]); + aActual[i]); } } - - /** +/** * Asserts that two objects are equal, and in case the object is an Object[] - * delegates to {@link #assertEquals(String, Object[], Object[]). - * + * delegates to {@link #assertEquals(String, Object[], Object[])}. + * * @param aMsg * Message. * @param aExpected @@ -85,11 +84,10 @@ public final class AssertionUtils { * @param aActual * Actual result. */ - public static void assertEquals(String aMsg, T aExpected, - T aActual) { + public static void assertEquals(String aMsg, T aExpected, T aActual) { if (aExpected instanceof Object[]) { AssertionUtils.assertEquals(aMsg, (Object[]) aExpected, - (Object[]) aActual); + (Object[]) aActual); return; } @@ -108,43 +106,46 @@ public final class AssertionUtils { * @param aActual * Actual result. */ - public static void assertEquals(String aMsg, - Map aExpectedMap, Map aActual) { + public static void assertEquals(String aMsg, + Map aExpectedMap, Map aActual) { TestCase.assertEquals("Map sizes differ", aExpectedMap.size(), aActual - .size()); + .size()); - Set keys = aExpectedMap.keySet(); + Set> expectedEntries = aExpectedMap.entrySet(); - for (Iterator i = keys.iterator(); i.hasNext();) { - String key = (String) i.next(); + for (Entry entry : expectedEntries) { + Key key = entry.getKey(); TestCase.assertTrue("Map does not containg entry for key:" + key, - aActual.containsKey(key)); + aActual.containsKey(key)); AssertionUtils.assertEquals("Value of key " + key + " of map", - aExpectedMap.get(key), aActual.get(key)); + entry.getValue(), aActual.get(key)); } } - - public static interface ErroneousCode { - void run() throws Exception; - } - - /** + + /** * Asserts that an exception occurs. - * @param aRunnable Test cases should create a subclass of this which contains the - * code that should throw an exception. - * @param aType Type of exception that is expected. + * + * @param aObject Erroneious code. + * Test cases should create a subclass of this which contains the + * code that should throw an exception. + * @param aType + * Type of exception that is expected. */ - public static void assertException(ErroneousCode aObject, Class aType) { - try { - aObject.run(); - throw new RuntimeException("No exception occurred"); - } catch (Throwable t) { - if ( aType.isInstance(t)) { - return; // ok - } - else { - throw new RuntimeException(t); - } - } + 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 + } + throw new RuntimeException(t); + } + } + + public static interface ErroneousCode { + void run() throws Exception; } }