summaryrefslogtreecommitdiffstats
path: root/server/tests/src/com/vaadin/util
diff options
context:
space:
mode:
authorJonni Nakari <jonni@vaadin.com>2012-12-13 14:41:26 +0200
committerJonni Nakari <jonni@vaadin.com>2012-12-13 14:41:26 +0200
commit3eaee7d5d676c60641c198bd8b9352e650a6fe22 (patch)
tree45387f51fd73e87c09541702bae30beabd796777 /server/tests/src/com/vaadin/util
parent21cfeb145c81fabfc935a136cff581d53754a27d (diff)
downloadvaadin-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.java65
-rw-r--r--server/tests/src/com/vaadin/util/ReflectToolsGetPrimitiveFieldValue.java26
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