### Question:
Preconditions { @NonNull public static String checkNullOrNotEmpty(String str, @Nullable Object errorMessage) { if (str != null) { checkNotEmpty(str, errorMessage); } return str; } 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 testCheckNullOrNotEmpty() { String testString = "I am not empty"; assertSame(testString, checkNullOrNotEmpty(testString, TEST_MSG)); }
@Test public void testCheckNullOrNotEmpty_nullString() { assertNull(checkNullOrNotEmpty(null, TEST_MSG)); }
@Test(expected = IllegalArgumentException.class) public void testCheckNullOrNotEmpty_emptyString() { checkNullOrNotEmpty("", TEST_MSG); }