package spiffy.junit; import junit.framework.Assert; import java.util.Collection; /** * This class provides essential assertions missing from JUnit in order to create clear JUnit test cases. * * @author Kasper B. Graversen */ public class AssertHelper extends Assert { /** * Check if a collection is empty * * @param collection */ public static <T> void assertEmpty(final String message, final Collection<T> collection) { if( collection == null ) { fail(message + "[collection is null]"); } if( collection.size() != 0 ) { fail("Collection " + collection + " is not empty!"); } } /** * Check if two arrays element for element are equal. If not an AssertionFailedError is thrown. When both argument * arrays are <tt>null</tt>, the method silently returns. */ public static void assertEquals(final String message, final byte[] expected, final byte[] actual) { if( expected == null && actual == null ) { return; } if( expected == null || actual == null ) { fail(message + " [Expected: " + expected + ", actual " + actual + ']'); } assertEquals(message + " [Length]", expected.length, actual.length); for( int i = 0; i < expected.length; i++ ) { assertEquals(message + " [" + i + ']', expected[i], actual[i]); } } /** * Check if two arrays element for element are equal. If not an AssertionFailedError is thrown. When both argument * arrays are <tt>null</tt>, the method silently returns. */ public static void assertEquals(final String message, final int[] expected, final int[] actual) { if( expected == null && actual == null ) { return; } if( expected == null || actual == null ) { fail(message + " [Expected: " + expected + ", actual " + actual + ']'); } assertEquals(message + " [Length]", expected.length, actual.length); for( int i = 0; i < expected.length; i++ ) { assertEquals(message + " [" + i + ']', expected[i], actual[i]); } } /** * Check if two arrays element for element are equal. If not an AssertionFailedError is thrown. When both argument * arrays are <tt>null</tt>, the method silently returns. */ public static void assertEquals(final String message, final Object[] expected, final Object[] actual) { if( expected == null && actual == null ) { return; } if( expected == null || actual == null ) { fail(message + " [Expected: " + expected + ", actual " + actual + ']'); } assertEquals(message + " [Length]", expected.length, actual.length); for( int i = 0; i < expected.length; i++ ) { assertEquals(message + " [" + i + ']', expected[i], actual[i]); } } /** * check that the actual value is greater than the expected */ public static void assertGreaterThan(final String message, final double expectedGreaterThan, final double actual) { if( expectedGreaterThan >= actual ) { fail(message + ". Actual not greater than expected, " + expectedGreaterThan + " >= " + actual); } } /** * check that the actual value is greater than the expected */ public static void assertGreaterThan(final String message, final int expectedGreaterThan, final int actual) { if( expectedGreaterThan >= actual ) { fail(message + ". Actual not greater than expected, " + expectedGreaterThan + " >= " + actual); } } public static void assertNotEquals(final int expected, final int actual) { if( expected == actual ) { fail("The two values are equal! Expected: " + expected + " actual: " + actual); } } /** * check that the actual value is not the expected */ public static void assertNotEquals(final String message, final double expected, final double actual) { if( expected == actual ) { fail(message + ". The two values are equal! Expected: " + expected + " actual: " + actual); } } /** * check that the actual value is not the expected */ public static void assertNotEquals(final String message, final int expected, final int actual) { if( expected == actual ) { fail(message + ". The two values are equal! Expected: " + expected + " actual: " + actual); } } }