diff options
author | Jonni Nakari <jonni@vaadin.com> | 2012-12-13 14:41:26 +0200 |
---|---|---|
committer | Jonni Nakari <jonni@vaadin.com> | 2012-12-13 14:41:26 +0200 |
commit | 3eaee7d5d676c60641c198bd8b9352e650a6fe22 (patch) | |
tree | 45387f51fd73e87c09541702bae30beabd796777 /server/tests/src/com/vaadin/util | |
parent | 21cfeb145c81fabfc935a136cff581d53754a27d (diff) | |
download | vaadin-framework-3eaee7d5d676c60641c198bd8b9352e650a6fe22.tar.gz vaadin-framework-3eaee7d5d676c60641c198bd8b9352e650a6fe22.zip |
Fix for ticket #10121, a unit test for the ticket's issue and a unit
test for the new method in ReflectTools
Change-Id: If8d57b4b38e8856ff2a9ef130dc71cf5b315858a
Diffstat (limited to 'server/tests/src/com/vaadin/util')
-rw-r--r-- | server/tests/src/com/vaadin/util/ReflectToolsGetFieldValueByType.java | 65 | ||||
-rw-r--r-- | server/tests/src/com/vaadin/util/ReflectToolsGetPrimitiveFieldValue.java | 26 |
2 files changed, 91 insertions, 0 deletions
diff --git a/server/tests/src/com/vaadin/util/ReflectToolsGetFieldValueByType.java b/server/tests/src/com/vaadin/util/ReflectToolsGetFieldValueByType.java new file mode 100644 index 0000000000..78be9b04fb --- /dev/null +++ b/server/tests/src/com/vaadin/util/ReflectToolsGetFieldValueByType.java @@ -0,0 +1,65 @@ +package com.vaadin.util; + +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.lang.reflect.InvocationTargetException; + +import org.junit.Test; + +public class ReflectToolsGetFieldValueByType { + @Test + public void getFieldValue() { + class MyClass { + public Integer getField() { + return 1; + } + + public void setField(Integer i) { + } + + } + class MySubClass extends MyClass { + public String field = "Hello"; + } + + MySubClass myInstance = new MySubClass(); + + java.lang.reflect.Field memberField; + Object fieldValue = new Boolean(false); + try { + memberField = myInstance.getClass().getField("field"); + // Should get a String value. Without the third parameter (calling + // ReflectTools.getJavaFieldValue(Object object, Field field)) would + // get an Integer value + fieldValue = ReflectTools.getJavaFieldValue(myInstance, + memberField, String.class); + } catch (Exception e) { + } + assertTrue(fieldValue instanceof String); + + } + + @Test + public void getFieldValueViaGetter() { + class MyClass { + public Integer field = 1; + } + class MySubClass extends MyClass { + public String field = "Hello"; + } + + MySubClass myInstance = new MySubClass(); + + java.lang.reflect.Field memberField; + try { + memberField = myInstance.getClass().getField("field"); + // Should throw an IllegalArgument exception as the mySubClass class + // doesn't have an Integer field. + ReflectTools.getJavaFieldValue(myInstance, + memberField, Integer.class); + fail("Previous method call should have thrown an exception"); + } catch (Exception e) { + } + } +}
\ No newline at end of file diff --git a/server/tests/src/com/vaadin/util/ReflectToolsGetPrimitiveFieldValue.java b/server/tests/src/com/vaadin/util/ReflectToolsGetPrimitiveFieldValue.java new file mode 100644 index 0000000000..df192c51f2 --- /dev/null +++ b/server/tests/src/com/vaadin/util/ReflectToolsGetPrimitiveFieldValue.java @@ -0,0 +1,26 @@ +package com.vaadin.util; + +import static org.junit.Assert.assertFalse; + +import org.junit.Test; + +public class ReflectToolsGetPrimitiveFieldValue { + @Test + public void getFieldValueViaGetter() { + class MyClass { + public int field = 1; + } + + MyClass myInstance = new MyClass(); + + java.lang.reflect.Field memberField; + Object fieldValue = new Boolean(false); + try { + memberField = myInstance.getClass().getField("field"); + fieldValue = ReflectTools.getJavaFieldValue(myInstance, + memberField); + } catch (Exception e) { + } + assertFalse(fieldValue instanceof Boolean); + } +}
\ No newline at end of file |