aboutsummaryrefslogtreecommitdiffstats
path: root/gson/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'gson/src/test')
-rw-r--r--gson/src/test/java/org/onap/policy/common/gson/internal/AdapterTest.java76
-rw-r--r--gson/src/test/java/org/onap/policy/common/gson/internal/ClassWalkerTest.java13
2 files changed, 69 insertions, 20 deletions
diff --git a/gson/src/test/java/org/onap/policy/common/gson/internal/AdapterTest.java b/gson/src/test/java/org/onap/policy/common/gson/internal/AdapterTest.java
index 33160007..fc98017e 100644
--- a/gson/src/test/java/org/onap/policy/common/gson/internal/AdapterTest.java
+++ b/gson/src/test/java/org/onap/policy/common/gson/internal/AdapterTest.java
@@ -23,6 +23,9 @@ package org.onap.policy.common.gson.internal;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -31,24 +34,34 @@ import com.google.gson.JsonPrimitive;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.List;
+import org.junit.After;
+import org.junit.BeforeClass;
import org.junit.Test;
import org.onap.policy.common.gson.JacksonExclusionStrategy;
import org.onap.policy.common.gson.annotation.GsonJsonProperty;
+import org.onap.policy.common.gson.internal.Adapter.Factory;
import org.onap.policy.common.gson.internal.DataAdapterFactory.Data;
import org.onap.policy.common.gson.internal.DataAdapterFactory.DerivedData;
+import org.powermock.reflect.Whitebox;
public class AdapterTest {
+ private static final String GET_INVALID_NAME = "get$InvalidName";
+ private static final String SET_INVALID_NAME = "set$InvalidName";
private static final String EMPTY_ALIAS = "emptyAlias";
private static final String GET_VALUE = ".getValue";
private static final String GET_VALUE_NAME = "getValue";
+ private static final String SET_VALUE_NAME = "setValue";
private static final String VALUE_NAME = "value";
private static final String MY_NAME = AdapterTest.class.getName();
+ private static final String FACTORY_FIELD = "factory";
private static DataAdapterFactory dataAdapter = new DataAdapterFactory();
private static Gson gson = new GsonBuilder().registerTypeAdapterFactory(dataAdapter)
.setExclusionStrategies(new JacksonExclusionStrategy()).create();
+ private static Factory saveFactory;
+
/*
* The remaining fields are just used within the tests.
*/
@@ -64,26 +77,44 @@ public class AdapterTest {
protected String unaliased;
- protected String $invalidFieldName;
-
private List<Data> listField;
private Data dataField;
+ @BeforeClass
+ public static void setUpBeforeClass() {
+ saveFactory = Whitebox.getInternalState(Adapter.class, FACTORY_FIELD);
+ }
+
+ @After
+ public void tearDown() {
+ Whitebox.setInternalState(Adapter.class, FACTORY_FIELD, saveFactory);
+ }
@Test
public void testIsManagedField() {
assertTrue(Adapter.isManaged(field(VALUE_NAME)));
- assertFalse(Adapter.isManaged(field("$invalidFieldName")));
+ // return an invalid field name
+ Factory factory = mock(Factory.class);
+ when(factory.getName(any(Field.class))).thenReturn("$invalidFieldName");
+ Whitebox.setInternalState(Adapter.class, FACTORY_FIELD, factory);
+ assertFalse(Adapter.isManaged(field(VALUE_NAME)));
}
@Test
public void testIsManagedMethod() {
assertTrue(Adapter.isManaged(mget(GET_VALUE_NAME)));
- assertFalse(Adapter.isManaged(mget("get$InvalidName")));
- assertFalse(Adapter.isManaged(mset("set$InvalidName")));
+ // return an invalid method name
+ Factory factory = mock(Factory.class);
+ Whitebox.setInternalState(Adapter.class, FACTORY_FIELD, factory);
+
+ when(factory.getName(any(Method.class))).thenReturn(GET_INVALID_NAME);
+ assertFalse(Adapter.isManaged(mget(GET_VALUE_NAME)));
+
+ when(factory.getName(any(Method.class))).thenReturn(SET_INVALID_NAME);
+ assertFalse(Adapter.isManaged(mset(SET_VALUE_NAME)));
}
@Test
@@ -178,7 +209,7 @@ public class AdapterTest {
// test setter
- adapter = new Adapter(gson, mset("setValue"), String.class);
+ adapter = new Adapter(gson, mset(SET_VALUE_NAME), String.class);
assertEquals(VALUE_NAME, adapter.getPropName());
assertEquals(MY_NAME + ".setValue", adapter.getFullName());
@@ -205,7 +236,12 @@ public class AdapterTest {
assertEquals(EMPTY_ALIAS, Adapter.detmPropName(field(EMPTY_ALIAS)));
assertEquals("name-with-alias", Adapter.detmPropName(field("nameWithAlias")));
assertEquals("unaliased", Adapter.detmPropName(field("unaliased")));
- assertEquals(null, Adapter.detmPropName(field("$invalidFieldName")));
+
+ // return an invalid field name
+ Factory factory = mock(Factory.class);
+ when(factory.getName(any(Field.class))).thenReturn("$invalidFieldName");
+ Whitebox.setInternalState(Adapter.class, FACTORY_FIELD, factory);
+ assertEquals(null, Adapter.detmPropName(field(VALUE_NAME)));
}
@Test
@@ -218,7 +254,13 @@ public class AdapterTest {
assertEquals(null, Adapter.detmGetterPropName(mget("isString")));
assertEquals(null, Adapter.detmGetterPropName(mget("noGet")));
assertEquals(null, Adapter.detmGetterPropName(mget("get")));
- assertEquals(null, Adapter.detmGetterPropName(mget("get$InvalidName")));
+
+ // return an invalid method name
+ Factory factory = mock(Factory.class);
+ Whitebox.setInternalState(Adapter.class, FACTORY_FIELD, factory);
+
+ when(factory.getName(any(Method.class))).thenReturn(GET_INVALID_NAME);
+ assertEquals(null, Adapter.detmGetterPropName(mget(GET_VALUE_NAME)));
}
@Test
@@ -228,7 +270,13 @@ public class AdapterTest {
assertEquals("plain", Adapter.detmSetterPropName(mset("setPlain")));
assertEquals(null, Adapter.detmSetterPropName(mset("noSet")));
assertEquals(null, Adapter.detmSetterPropName(mset("set")));
- assertEquals(null, Adapter.detmSetterPropName(mset("set$InvalidName")));
+
+ // return an invalid method name
+ Factory factory = mock(Factory.class);
+ Whitebox.setInternalState(Adapter.class, FACTORY_FIELD, factory);
+
+ when(factory.getName(any(Method.class))).thenReturn(SET_INVALID_NAME);
+ assertEquals(null, Adapter.detmSetterPropName(mset(SET_VALUE_NAME)));
}
@Test
@@ -335,11 +383,6 @@ public class AdapterTest {
return "";
}
- // name has a bogus character
- protected String get$InvalidName() {
- return "";
- }
-
protected void setValue(String text) {
// do nothing
@@ -371,11 +414,6 @@ public class AdapterTest {
// do nothing
}
- // name has a bogus character
- protected void set$InvalidName(String text) {
- // do nothing
- }
-
// returns a list
protected List<Data> getMyList() {
return listField;
diff --git a/gson/src/test/java/org/onap/policy/common/gson/internal/ClassWalkerTest.java b/gson/src/test/java/org/onap/policy/common/gson/internal/ClassWalkerTest.java
index 6af4ae4f..a1350643 100644
--- a/gson/src/test/java/org/onap/policy/common/gson/internal/ClassWalkerTest.java
+++ b/gson/src/test/java/org/onap/policy/common/gson/internal/ClassWalkerTest.java
@@ -46,6 +46,7 @@ import org.onap.policy.common.gson.annotation.GsonJsonProperty;
public class ClassWalkerTest {
private static final String SET_OVERRIDE = ".setOverride";
+ private static final String INVALID_FIELD_NAME = "invalidFieldName";
private MyWalker walker;
@@ -205,6 +206,15 @@ public class ClassWalkerTest {
super.examine(method);
}
+
+ @Override
+ protected String detmPropName(Field field) {
+ if (INVALID_FIELD_NAME.equals(field.getName())) {
+ return null;
+ }
+
+ return super.detmPropName(field);
+ }
}
protected static interface Intfc1 {
@@ -223,7 +233,8 @@ public class ClassWalkerTest {
private int id;
public String value;
- public String invalid$fieldName;
+ // this is not actually invalid, but will be treated as if it were
+ public String invalidFieldName;
@GsonJsonProperty("exposed")
private String exposedField;