X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Ftest%2FTestCase.java;h=4e7d3800c5a588bf6a1b06f341bfc5d3c2c8c2ac;hb=534332fff48954b4d26c6394a79d7a7aff605f67;hp=429200b4ceb3d800cb4ace07215ee82cc700fc69;hpb=c37cc6902542f0b790d7b9c999447bf81a9e9837;p=nikiroo-utils.git diff --git a/src/be/nikiroo/utils/test/TestCase.java b/src/be/nikiroo/utils/test/TestCase.java index 429200b..4e7d380 100644 --- a/src/be/nikiroo/utils/test/TestCase.java +++ b/src/be/nikiroo/utils/test/TestCase.java @@ -1,5 +1,7 @@ package be.nikiroo.utils.test; +import java.util.List; + /** * A {@link TestCase} that can be run with {@link TestLauncher}. * @@ -113,8 +115,8 @@ abstract public class TestCase { /** * Check that 2 {@link Object}s are equals. * - * @param the - * error message to display if they differ + * @param errorMessage + * the error message to display if they differ * @param expected * the expected value * @param actual @@ -130,15 +132,15 @@ abstract public class TestCase { if (errorMessage == null) { throw new AssertException(generateAssertMessage(expected, actual)); - } else { - throw new AssertException(errorMessage, new AssertException( - generateAssertMessage(expected, actual))); } + + throw new AssertException(errorMessage, new AssertException( + generateAssertMessage(expected, actual))); } } /** - * Check that 2 {@link Object}s are equals. + * Check that 2 longs are equals. * * @param expected * the expected value @@ -149,14 +151,14 @@ abstract public class TestCase { * in case they differ */ public void assertEquals(long expected, long actual) throws AssertException { - assertEquals(new Long(expected), new Long(actual)); + assertEquals(Long.valueOf(expected), Long.valueOf(actual)); } /** - * Check that 2 {@link Object}s are equals. + * Check that 2 longs are equals. * - * @param the - * error message to display if they differ + * @param errorMessage + * the error message to display if they differ * @param expected * the expected value * @param actual @@ -167,11 +169,11 @@ abstract public class TestCase { */ public void assertEquals(String errorMessage, long expected, long actual) throws AssertException { - assertEquals(errorMessage, new Long(expected), new Long(actual)); + assertEquals(errorMessage, Long.valueOf(expected), Long.valueOf(actual)); } /** - * Check that 2 {@link Object}s are equals. + * Check that 2 booleans are equals. * * @param expected * the expected value @@ -183,14 +185,14 @@ abstract public class TestCase { */ public void assertEquals(boolean expected, boolean actual) throws AssertException { - assertEquals(new Boolean(expected), new Boolean(actual)); + assertEquals(Boolean.valueOf(expected), Boolean.valueOf(actual)); } /** - * Check that 2 {@link Object}s are equals. + * Check that 2 booleans are equals. * - * @param the - * error message to display if they differ + * @param errorMessage + * the error message to display if they differ * @param expected * the expected value * @param actual @@ -201,11 +203,12 @@ abstract public class TestCase { */ public void assertEquals(String errorMessage, boolean expected, boolean actual) throws AssertException { - assertEquals(errorMessage, new Boolean(expected), new Boolean(actual)); + assertEquals(errorMessage, Boolean.valueOf(expected), + Boolean.valueOf(actual)); } /** - * Check that 2 {@link Object}s are equals. + * Check that 2 doubles are equals. * * @param expected * the expected value @@ -217,14 +220,14 @@ abstract public class TestCase { */ public void assertEquals(double expected, double actual) throws AssertException { - assertEquals(new Double(expected), new Double(actual)); + assertEquals(Double.valueOf(expected), Double.valueOf(actual)); } /** - * Check that 2 {@link Object}s are equals. + * Check that 2 doubles are equals. * - * @param the - * error message to display if they differ + * @param errorMessage + * the error message to display if they differ * @param expected * the expected value * @param actual @@ -235,14 +238,64 @@ abstract public class TestCase { */ public void assertEquals(String errorMessage, double expected, double actual) throws AssertException { - assertEquals(errorMessage, new Double(expected), new Double(actual)); + assertEquals(errorMessage, Double.valueOf(expected), + Double.valueOf(actual)); + } + + /** + * Check that 2 {@link List}s are equals. + * + * @param errorMessage + * the error message to display if they differ + * @param expected + * the expected value + * @param actual + * the actual value + * + * @throws AssertException + * in case they differ + */ + public void assertEquals(List expected, List actual) + throws AssertException { + assertEquals("Assertion failed", expected, actual); + } + + /** + * Check that 2 {@link List}s are equals. + * + * @param errorMessage + * the error message to display if they differ + * @param expected + * the expected value + * @param actual + * the actual value + * @param errorMessage + * the error message to display if they differ + * + * @throws AssertException + * in case they differ + */ + public void assertEquals(String errorMessage, List expected, + List actual) throws AssertException { + + if (expected.size() != actual.size()) { + assertEquals(errorMessage + ": not same number of items", + list(expected), list(actual)); + } + + int size = expected.size(); + for (int i = 0; i < size; i++) { + assertEquals(errorMessage + ": item " + i + + " (0-based) is not correct", expected.get(i), + actual.get(i)); + } } /** * Check that given {@link Object} is not NULL. * - * @param the - * error message to display if it is NULL + * @param errorMessage + * the error message to display if it is NULL * @param actual * the actual value * @@ -253,15 +306,15 @@ abstract public class TestCase { throws AssertException { if (actual == null) { String defaultReason = String.format("" // - + "Assertion failed!\n" // - + "Object should have been NULL: [%s]", actual); + + "Assertion failed!%n" // + + "Object should not have been NULL"); if (errorMessage == null) { throw new AssertException(defaultReason); - } else { - throw new AssertException(errorMessage, new AssertException( - defaultReason)); } + + throw new AssertException(errorMessage, new AssertException( + defaultReason)); } } @@ -278,8 +331,29 @@ abstract public class TestCase { */ public static String generateAssertMessage(Object expected, Object actual) { return String.format("" // - + "Assertion failed!\n" // - + "Expected value: [%s]\n" // + + "Assertion failed!%n" // + + "Expected value: [%s]%n" // + "Actual value: [%s]", expected, actual); } + + private static String list(List items) { + StringBuilder builder = new StringBuilder(); + for (Object item : items) { + if (builder.length() == 0) { + builder.append(items.size() + " item(s): "); + } else { + builder.append(", "); + } + + builder.append("" + item); + + if (builder.length() > 60) { + builder.setLength(57); + builder.append("..."); + break; + } + } + + return builder.toString(); + } }