/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.collect; import static com.opengamma.strata.collect.TestHelper.assertThrowsIllegalArg; import static com.opengamma.strata.collect.TestHelper.assertUtilityClass; import static org.testng.Assert.assertEquals; import java.time.LocalDate; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.SortedMap; import java.util.regex.Pattern; import org.testng.annotations.Test; import com.google.common.base.CharMatcher; import com.google.common.collect.ImmutableSortedMap; /** * Test ArgChecker. */ @Test public class ArgCheckerTest { public void test_isTrue_simple_ok() { ArgChecker.isTrue(true); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_isTrue_simple_false() { ArgChecker.isTrue(false); } public void test_isTrue_ok() { ArgChecker.isTrue(true, "Message"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Message") public void test_isTrue_false() { ArgChecker.isTrue(false, "Message"); } public void test_isTrue_ok_args() { ArgChecker.isTrue(true, "Message {} {} {}", "A", 2, 3d); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Message A 2 3.0") public void test_isTrue_false_args() { ArgChecker.isTrue(false, "Message {} {} {}", "A", 2, 3d); } public void test_isTrue_ok_longArg() { ArgChecker.isTrue(true, "Message {}", 3L); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Message 3") public void test_isTrue_false_longArg() { ArgChecker.isTrue(false, "Message {}", 3L); } public void test_isTrue_ok_doubleArg() { ArgChecker.isTrue(true, "Message {}", 3d); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Message 3.0") public void test_isTrue_false_doubleArg() { ArgChecker.isTrue(false, "Message {}", 3d); } //------------------------------------------------------------------------- public void test_isFalse_ok() { ArgChecker.isFalse(false, "Message"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Message") public void test_isFalse_true() { ArgChecker.isFalse(true, "Message"); } public void test_isFalse_ok_args() { ArgChecker.isFalse(false, "Message {} {} {}", "A", 2., 3, true); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Message A 2 3.0") public void test_isFalse_ok_args_true() { ArgChecker.isFalse(true, "Message {} {} {}", "A", 2, 3.); } //------------------------------------------------------------------------- public void test_notNull_ok() { assertEquals(ArgChecker.notNull("OG", "name"), "OG"); assertEquals(ArgChecker.notNull(1, "name"), Integer.valueOf(1)); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*") public void test_notNull_null() { ArgChecker.notNull(null, "name"); } //------------------------------------------------------------------------- public void test_notNullItem_noText_ok() { assertEquals(ArgChecker.notNullItem("OG"), "OG"); assertEquals(ArgChecker.notNullItem(1), Integer.valueOf(1)); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_notNullItem_noText_null() { ArgChecker.notNullItem(null); } //------------------------------------------------------------------------- public void test_matches_String_ok() { assertEquals(ArgChecker.matches(Pattern.compile("[A-Z]+"), "OG", "name"), "OG"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'pattern'.*") public void test_matches_String_nullPattern() { ArgChecker.matches(null, "", "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*") public void test_matches_String_nullString() { ArgChecker.matches(Pattern.compile("[A-Z]+"), null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*") public void test_matches_String_empty() { ArgChecker.matches(Pattern.compile("[A-Z]+"), "", "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*'123'.*") public void test_matches_String_noMatch() { ArgChecker.matches(Pattern.compile("[A-Z]+"), "123", "name"); } //------------------------------------------------------------------------- public void test_matches_CharMatcher_String_ok() { assertEquals(ArgChecker.matches(CharMatcher.inRange('A', 'Z'), 1, Integer.MAX_VALUE, "OG", "name", "[A-Z]+"), "OG"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*") public void test_matches_CharMatcher_String_tooShort() { ArgChecker.matches(CharMatcher.inRange('A', 'Z'), 1, 2, "", "name", "[A-Z]+"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*") public void test_matches_CharMatcher_String_tooLong() { ArgChecker.matches(CharMatcher.inRange('A', 'Z'), 1, 2, "abc", "name", "[A-Z]+"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'pattern'.*") public void test_matches_CharMatcher_String_nullMatcher() { ArgChecker.matches(null, 1, Integer.MAX_VALUE, "", "name", "[A-Z]+"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*") public void test_matches_CharMatcher_String_nullString() { ArgChecker.matches(CharMatcher.inRange('A', 'Z'), 1, 2, null, "name", "[A-Z]+"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*'123'.*") public void test_matches_CharMatcher_String_noMatch() { ArgChecker.matches(CharMatcher.inRange('A', 'Z'), 1, Integer.MAX_VALUE, "123", "name", "[A-Z]+"); } //------------------------------------------------------------------------- public void test_notBlank_String_ok() { assertEquals(ArgChecker.notBlank("OG", "name"), "OG"); } public void test_notBlank_String_ok_notTrimmed() { assertEquals(ArgChecker.notBlank(" OG ", "name"), " OG "); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*") public void test_notBlank_String_null() { ArgChecker.notBlank(null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*") public void test_notBlank_String_empty() { ArgChecker.notBlank("", "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*") public void test_notBlank_String_spaces() { ArgChecker.notBlank(" ", "name"); } //------------------------------------------------------------------------- public void test_notEmpty_String_ok() { assertEquals(ArgChecker.notEmpty("OG", "name"), "OG"); assertEquals(ArgChecker.notEmpty(" ", "name"), " "); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*null.*") public void test_notEmpty_String_null() { ArgChecker.notEmpty((String) null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*empty.*") public void test_notEmpty_String_empty() { ArgChecker.notEmpty("", "name"); } //------------------------------------------------------------------------- public void test_notEmpty_Array_ok() { Object[] expected = new Object[] {"Element"}; Object[] result = ArgChecker.notEmpty(expected, "name"); assertEquals(result, expected); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*null.*") public void test_notEmpty_Array_null() { ArgChecker.notEmpty((Object[]) null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*array.*'name'.*empty.*") public void test_notEmpty_Array_empty() { ArgChecker.notEmpty(new Object[] {}, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*null.*") public void test_notEmpty_2DArray_null() { ArgChecker.notEmpty((Object[][]) null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*array.*'name'.*empty.*") public void test_notEmpty_2DArray_empty() { ArgChecker.notEmpty(new Object[0][0], "name"); } //------------------------------------------------------------------------- public void test_notEmpty_intArray_ok() { int[] expected = new int[] {6}; int[] result = ArgChecker.notEmpty(expected, "name"); assertEquals(result, expected); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*null.*") public void test_notEmpty_intArray_null() { ArgChecker.notEmpty((int[]) null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*array.*'name'.*empty.*") public void test_notEmpty_intArray_empty() { ArgChecker.notEmpty(new int[0], "name"); } //------------------------------------------------------------------------- public void test_notEmpty_longArray_ok() { long[] expected = new long[] {6L}; long[] result = ArgChecker.notEmpty(expected, "name"); assertEquals(result, expected); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*null.*") public void test_notEmpty_longArray_null() { ArgChecker.notEmpty((long[]) null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*array.*'name'.*empty.*") public void test_notEmpty_longArray_empty() { ArgChecker.notEmpty(new long[0], "name"); } //------------------------------------------------------------------------- public void test_notEmpty_doubleArray_ok() { double[] expected = new double[] {6.0d}; double[] result = ArgChecker.notEmpty(expected, "name"); assertEquals(result, expected); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*null.*") public void test_notEmpty_doubleArray_null() { ArgChecker.notEmpty((double[]) null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*array.*'name'.*empty.*") public void test_notEmpty_doubleArray_empty() { ArgChecker.notEmpty(new double[0], "name"); } //------------------------------------------------------------------------- public void test_notEmpty_Iterable_ok() { Iterable<String> expected = Arrays.asList("Element"); Iterable<String> result = ArgChecker.notEmpty((Iterable<String>) expected, "name"); assertEquals(result, expected); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*null.*") public void test_notEmpty_Iterable_null() { ArgChecker.notEmpty((Iterable<?>) null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*iterable.*'name'.*empty.*") public void test_notEmpty_Iterable_empty() { ArgChecker.notEmpty((Iterable<?>) Collections.emptyList(), "name"); } //------------------------------------------------------------------------- public void test_notEmpty_Collection_ok() { List<String> expected = Arrays.asList("Element"); List<String> result = ArgChecker.notEmpty(expected, "name"); assertEquals(result, expected); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*null.*") public void test_notEmpty_Collection_null() { ArgChecker.notEmpty((Collection<?>) null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*collection.*'name'.*empty.*") public void test_notEmpty_Collection_empty() { ArgChecker.notEmpty(Collections.emptyList(), "name"); } //------------------------------------------------------------------------- public void test_notEmpty_Map_ok() { SortedMap<String, String> expected = ImmutableSortedMap.of("Element", "Element"); SortedMap<String, String> result = ArgChecker.notEmpty(expected, "name"); assertEquals(result, expected); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*null.*") public void test_notEmpty_Map_null() { ArgChecker.notEmpty((Map<?, ?>) null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*map.*'name'.*empty.*") public void test_notEmpty_Map_empty() { ArgChecker.notEmpty(Collections.emptyMap(), "name"); } //------------------------------------------------------------------------- public void test_noNulls_Array_ok() { String[] expected = new String[] {"Element"}; String[] result = ArgChecker.noNulls(expected, "name"); assertEquals(result, expected); } public void test_noNulls_Array_ok_empty() { Object[] array = new Object[] {}; ArgChecker.noNulls(array, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*null.*") public void test_noNulls_Array_null() { ArgChecker.noNulls((Object[]) null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*array.*'name'.*null.*") public void test_noNulls_Array_nullElement() { ArgChecker.noNulls(new Object[] {null}, "name"); } //------------------------------------------------------------------------- public void test_noNulls_Iterable_ok() { List<String> expected = Arrays.asList("Element"); List<String> result = ArgChecker.noNulls(expected, "name"); assertEquals(result, expected); } public void test_noNulls_Iterable_ok_empty() { Iterable<?> coll = Arrays.asList(); ArgChecker.noNulls(coll, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*null.*") public void test_noNulls_Iterable_null() { ArgChecker.noNulls((Iterable<?>) null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*iterable.*'name'.*null.*") public void test_noNulls_Iterable_nullElement() { ArgChecker.noNulls(Arrays.asList((Object) null), "name"); } //------------------------------------------------------------------------- public void test_noNulls_Map_ok() { ImmutableSortedMap<String, String> expected = ImmutableSortedMap.of("A", "B"); ImmutableSortedMap<String, String> result = ArgChecker.noNulls(expected, "name"); assertEquals(result, expected); } public void test_noNulls_Map_ok_empty() { Map<Object, Object> map = new HashMap<>(); ArgChecker.noNulls(map, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*null.*") public void test_noNulls_Map_null() { ArgChecker.noNulls((Map<Object, Object>) null, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*map.*'name'.*null.*") public void test_noNulls_Map_nullKey() { Map<Object, Object> map = new HashMap<>(); map.put("A", "B"); map.put(null, "Z"); ArgChecker.noNulls(map, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*map.*'name'.*null.*") public void test_noNulls_Map_nullValue() { Map<Object, Object> map = new HashMap<>(); map.put("A", "B"); map.put("Z", null); ArgChecker.noNulls(map, "name"); } //------------------------------------------------------------------------- public void test_notNegative_int_ok() { assertEquals(ArgChecker.notNegative(0, "name"), 0); assertEquals(ArgChecker.notNegative(1, "name"), 1); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*negative.*") public void test_notNegative_int_negative() { ArgChecker.notNegative(-1, "name"); } public void test_notNegative_long_ok() { assertEquals(ArgChecker.notNegative(0L, "name"), 0L); assertEquals(ArgChecker.notNegative(1L, "name"), 1L); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*negative.*") public void test_notNegative_long_negative() { ArgChecker.notNegative(-1L, "name"); } public void test_notNegative_double_ok() { assertEquals(ArgChecker.notNegative(0d, "name"), 0d, 0.0001d); assertEquals(ArgChecker.notNegative(1d, "name"), 1d, 0.0001d); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*negative.*") public void test_notNegative_double_negative() { ArgChecker.notNegative(-1.0d, "name"); } //------------------------------------------------------------------------- public void test_notNegativeOrZero_int_ok() { assertEquals(ArgChecker.notNegativeOrZero(1, "name"), 1); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*negative.*zero.*") public void test_notNegativeOrZero_int_zero() { ArgChecker.notNegativeOrZero(0, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*negative.*zero.*") public void test_notNegativeOrZero_int_negative() { ArgChecker.notNegativeOrZero(-1, "name"); } public void test_notNegativeOrZero_long_ok() { assertEquals(ArgChecker.notNegativeOrZero(1L, "name"), 1); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*negative.*zero.*") public void test_notNegativeOrZero_long_zero() { ArgChecker.notNegativeOrZero(0L, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*negative.*zero.*") public void test_notNegativeOrZero_long_negative() { ArgChecker.notNegativeOrZero(-1L, "name"); } public void test_notNegativeOrZero_double_ok() { assertEquals(ArgChecker.notNegativeOrZero(1d, "name"), 1d, 0.0001d); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*negative.*zero.*") public void test_notNegativeOrZero_double_zero() { ArgChecker.notNegativeOrZero(0.0d, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*negative.*zero.*") public void test_notNegativeOrZero_double_negative() { ArgChecker.notNegativeOrZero(-1.0d, "name"); } public void test_notNegativeOrZero_double_eps_ok() { assertEquals(ArgChecker.notNegativeOrZero(1d, 0.0001d, "name"), 1d, 0.0001d); assertEquals(ArgChecker.notNegativeOrZero(0.1d, 0.0001d, "name"), 0.1d, 0.0001d); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*zero.*") public void test_notNegativeOrZero_double_eps_zero() { ArgChecker.notNegativeOrZero(0.0000001d, 0.0001d, "name"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*greater.*zero.*") public void test_notNegativeOrZero_double_eps_negative() { ArgChecker.notNegativeOrZero(-1.0d, 0.0001d, "name"); } //------------------------------------------------------------------------- public void test_notZero_double_ok() { assertEquals(ArgChecker.notZero(1d, 0.1d, "name"), 1d, 0.0001d); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*'name'.*zero.*") public void test_notZero_double_zero() { ArgChecker.notZero(0d, 0.1d, "name"); } public void test_notZero_double_negative() { ArgChecker.notZero(-1d, 0.1d, "name"); } //------------------------------------------------------------------------- public void test_double_inRange() { double low = 0d; double mid = 0.5d; double high = 1d; double small = 0.00000000001d; assertEquals(ArgChecker.inRange(mid, low, high, "name"), mid); assertEquals(ArgChecker.inRange(low, low, high, "name"), low); assertEquals(ArgChecker.inRange(high - small, low, high, "name"), high - small); assertEquals(ArgChecker.inRangeInclusive(mid, low, high, "name"), mid); assertEquals(ArgChecker.inRangeInclusive(low, low, high, "name"), low); assertEquals(ArgChecker.inRangeInclusive(high, low, high, "name"), high); assertEquals(ArgChecker.inRangeExclusive(mid, low, high, "name"), mid); assertEquals(ArgChecker.inRangeExclusive(small, low, high, "name"), small); assertEquals(ArgChecker.inRangeExclusive(high - small, low, high, "name"), high - small); } public void test_double_inRange_outOfRange() { double low = 0d; double high = 1d; double small = 0.00000000001d; assertThrowsIllegalArg(() -> ArgChecker.inRange(low - small, low, high, "name")); assertThrowsIllegalArg(() -> ArgChecker.inRange(high, low, high, "name")); assertThrowsIllegalArg(() -> ArgChecker.inRangeInclusive(low - small, low, high, "name")); assertThrowsIllegalArg(() -> ArgChecker.inRangeInclusive(high + small, low, high, "name")); assertThrowsIllegalArg(() -> ArgChecker.inRangeExclusive(low, low, high, "name")); assertThrowsIllegalArg(() -> ArgChecker.inRangeExclusive(high, low, high, "name")); } public void test_int_inRange() { int low = 0; int mid = 1; int high = 2; assertEquals(ArgChecker.inRange(mid, low, high, "name"), mid); assertEquals(ArgChecker.inRange(low, low, high, "name"), low); assertEquals(ArgChecker.inRangeInclusive(mid, low, high, "name"), mid); assertEquals(ArgChecker.inRangeInclusive(low, low, high, "name"), low); assertEquals(ArgChecker.inRangeInclusive(high, low, high, "name"), high); assertEquals(ArgChecker.inRangeExclusive(mid, low, high, "name"), mid); } public void test_int_inRange_outOfRange() { int low = 0; int high = 1; assertThrowsIllegalArg(() -> ArgChecker.inRange(low - 1, low, high, "name")); assertThrowsIllegalArg(() -> ArgChecker.inRange(high, low, high, "name")); assertThrowsIllegalArg(() -> ArgChecker.inRangeInclusive(low - 1, low, high, "name")); assertThrowsIllegalArg(() -> ArgChecker.inRangeInclusive(high + 1, low, high, "name")); assertThrowsIllegalArg(() -> ArgChecker.inRangeExclusive(low, low, high, "name")); assertThrowsIllegalArg(() -> ArgChecker.inRangeExclusive(high, low, high, "name")); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*array.*'name'.*empty.*") public void testNotEmptyLongArray() { ArgChecker.notEmpty(new double[0], "name"); } //------------------------------------------------------------------------- public void test_inOrderNotEqual_true() { LocalDate a = LocalDate.of(2011, 7, 2); LocalDate b = LocalDate.of(2011, 7, 3); ArgChecker.inOrderNotEqual(a, b, "a", "b"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*a.* [<] .*b.*") public void test_inOrderNotEqual_false_invalidOrder() { LocalDate a = LocalDate.of(2011, 7, 2); LocalDate b = LocalDate.of(2011, 7, 3); ArgChecker.inOrderNotEqual(b, a, "a", "b"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*a.* [<] .*b.*") public void test_inOrderNotEqual_false_equal() { LocalDate a = LocalDate.of(2011, 7, 3); ArgChecker.inOrderNotEqual(a, a, "a", "b"); } //------------------------------------------------------------------------- public void test_inOrderOrEqual_true() { LocalDate a = LocalDate.of(2011, 7, 2); LocalDate b = LocalDate.of(2011, 7, 3); ArgChecker.inOrderOrEqual(a, b, "a", "b"); ArgChecker.inOrderOrEqual(a, a, "a", "b"); ArgChecker.inOrderOrEqual(b, b, "a", "b"); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = ".*a.* [<][=] .*b.*") public void test_inOrderOrEqual_false() { LocalDate a = LocalDate.of(2011, 7, 3); LocalDate b = LocalDate.of(2011, 7, 2); ArgChecker.inOrderOrEqual(a, b, "a", "b"); } //------------------------------------------------------------------------- public void test_validUtilityClass() { assertUtilityClass(ArgChecker.class); } }