package vnet.sms.common.shell.springshell.internal.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
/**
* Unit test of {@link ObjectUtils}
*
* @author Andrew Swan
* @since 1.2.0
*/
public class ObjectUtilsTest {
@Test
public void testCompareTwoNulls() {
assertEquals(0, ObjectUtils.nullSafeComparison(null, null));
}
@Test
public void testCompareNullWithNonNull() {
// Invoke
final int result = ObjectUtils.nullSafeComparison(null, "");
// Check
assertTrue(result < 0);
}
@Test
public void testCompareNonNullWithNull() {
// Invoke
final int result = ObjectUtils.nullSafeComparison("", null);
// Check
assertTrue(result > 0);
}
@Test
public void testCompareLesserWithGreater() {
// Invoke
final int result = ObjectUtils.nullSafeComparison(100, 200);
// Check
assertTrue(result < 0);
}
@Test
public void testCompareGreaterWithLesser() {
// Invoke
final int result = ObjectUtils.nullSafeComparison(300, 200);
// Check
assertTrue(result > 0);
}
@Test
public void testCompareTwoEqualObjects() {
assertEquals(0, ObjectUtils.nullSafeComparison(400, 400));
}
@Test
public void testToStringWithNullObjectAndNullDefault() {
assertNull(ObjectUtils.toString(null, null));
}
@Test
public void testToStringWithNullObjectAndEmptyDefault() {
assertEquals("", ObjectUtils.toString(null, ""));
}
@Test
public void testToStringWithNullObjectAndNonEmptyDefault() {
assertEquals("x", ObjectUtils.toString(null, "x"));
}
@Test
public void testToStringWithNonNullObjectAndNullDefault() {
assertEquals("1", ObjectUtils.toString(1, "anything"));
}
@Test
public void testDefaultIfNullWhenObjectIsNullAndDefaultIsNull() {
assertNull(ObjectUtils.defaultIfNull(null, null));
}
@Test
public void testDefaultIfNullWhenObjectIsNullAndDefaultIsNotNull() {
final Object defaultValue = 27;
assertEquals(defaultValue,
ObjectUtils.defaultIfNull(null, defaultValue));
}
@Test
public void testDefaultIfNullWhenObjectIsNotNullAndDefaultIsNull() {
final Object value = 27;
assertEquals(value, ObjectUtils.defaultIfNull(value, null));
}
@Test
public void testDefaultIfNullWhenObjectIsNotNullAndDefaultIsNotNull() {
final Integer value = 27;
assertEquals(value, ObjectUtils.defaultIfNull(value, value + 1));
}
}