### Question:
Preconditions { public static void checkArgument(boolean expression) { if (!expression) { throw new IllegalArgumentException(); } } private  Preconditions(); static T checkNotNull(T reference); static T checkNotNull(T reference, @Nullable Object errorMessage); @NonNull static String checkNotEmpty(String str, @Nullable Object errorMessage); @NonNull static T checkCollectionNotEmpty(
            T collection, @Nullable Object errorMessage); @NonNull static String checkNullOrNotEmpty(String str, @Nullable Object errorMessage); static void checkArgument(boolean expression); static void checkArgument(boolean expression, @Nullable Object errorMessage); static void checkArgument(
            boolean expression,
            @NonNull String errorTemplate,
            Object... params);  }### Answer:
@Test public void testCheckArgument() { checkArgument(true); }
@Test(expected = IllegalArgumentException.class) public void testCheckArgument_false() { checkArgument(false); }
@Test public void testCheckArgumentWithMessage() { checkArgument(true, TEST_MSG); }
@Test public void testCheckArgumentWithMessage_false() { try { checkArgument(false, TEST_MSG); fail("Expected IllegalArgumentException not thrown."); } catch (IllegalArgumentException ex) { assertEquals(TEST_MSG, ex.getMessage()); } }