Add test cases for getting the value of an Object Field.

This commit is contained in:
John Blum
2018-09-19 23:57:07 -07:00
parent 6f18e2a084
commit b6e47a6578
2 changed files with 126 additions and 5 deletions

View File

@@ -19,6 +19,8 @@ package org.springframework.geode.core.util;
import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.data.gemfire.util.RuntimeExceptionFactory.newRuntimeException;
import java.lang.reflect.Field;
import org.junit.Test;
/**
@@ -59,6 +61,83 @@ public class ObjectUtilsUnitTests {
}
}
@Test
public void getFieldValueIsSuccessful() throws Exception {
TestObject testObject = new TestObject();
Field existingField = testObject.getClass().getDeclaredField("existingField");
existingField.setAccessible(true);
assertThat(ObjectUtils.<String>get(testObject, existingField)).isEqualTo("MOCK");
}
@Test(expected = IllegalArgumentException.class)
public void testGetFieldWithNullObjectThrowsIllegalArgumentException() throws Exception {
try {
ObjectUtils.get(null, TestObject.class.getDeclaredField("existingField"));
}
catch (IllegalArgumentException expected) {
assertThat(expected).hasMessage("Object is required");
assertThat(expected).hasNoCause();
throw expected;
}
}
@Test(expected = IllegalArgumentException.class)
public void testGetFieldWithNullFieldThrowsIllegalArgumentException() throws Exception {
try {
ObjectUtils.get(new TestObject(), (Field) null);
}
catch (IllegalArgumentException expected) {
assertThat(expected).hasMessage("Field is required");
assertThat(expected).hasNoCause();
throw expected;
}
}
@Test
public void getNamedFieldValueIsSuccessful() {
assertThat(ObjectUtils.<String>get(new TestObject(), "existingField")).isEqualTo("MOCK");
}
@Test(expected = IllegalArgumentException.class)
public void getNamedFieldWithNullObjectThrowsIllegalArgumentException() {
try {
ObjectUtils.get(null, "testField");
}
catch (IllegalArgumentException expected) {
assertThat(expected).hasMessage("Object is required");
assertThat(expected).hasNoCause();
throw expected;
}
}
@Test(expected = IllegalArgumentException.class)
public void getNamedFieldWithNoFieldNameThrowsIllegalArgumentException() {
try {
ObjectUtils.get(new TestObject(), "");
}
catch (IllegalArgumentException expected) {
assertThat(expected).hasMessage("Field name [] is required");
assertThat(expected).hasNoCause();
throw expected;
}
}
@Test
public void invokeMethodOnObjectReturnsValue() {
assertThat(ObjectUtils.<String>invoke(new TestObject(), "testMethod")).isEqualTo("TEST");
@@ -101,8 +180,11 @@ public class ObjectUtilsUnitTests {
}
}
@SuppressWarnings("unused")
public static class TestObject {
private Object existingField = "MOCK";
public String testMethod() {
return "TEST";
}