aboutsummaryrefslogtreecommitdiffstats
path: root/gson/src/test/java/org/onap/policy/common/gson/internal/MethodDeserializerTest.java
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2019-02-12 13:17:09 -0500
committerJim Hahn <jrh3@att.com>2019-02-12 13:45:41 -0500
commit3cc17f964e46578f8ff6275072d1c77dafa551dd (patch)
tree6d6184907913d03686fecf4c41b93e49b0a6b2b6 /gson/src/test/java/org/onap/policy/common/gson/internal/MethodDeserializerTest.java
parent13ca63c40a379f95539cb4882ec2b645cd0c2a48 (diff)
Add jackson behavior for methods
Added classes to make gson treat methods as jackson does. Remove unneeded "forGetter" parameter from constructors. Fixed sonar issue with too long "if" test. Corrected comment about annotation names. Adjusted error message. Removed unused constant. Removed trailing spaces. Change-Id: I3a4fc92193737a0dc89f1218e70f093aedbdb152 Issue-ID: POLICY-1428 Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'gson/src/test/java/org/onap/policy/common/gson/internal/MethodDeserializerTest.java')
-rw-r--r--gson/src/test/java/org/onap/policy/common/gson/internal/MethodDeserializerTest.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/gson/src/test/java/org/onap/policy/common/gson/internal/MethodDeserializerTest.java b/gson/src/test/java/org/onap/policy/common/gson/internal/MethodDeserializerTest.java
new file mode 100644
index 00000000..338644ae
--- /dev/null
+++ b/gson/src/test/java/org/onap/policy/common/gson/internal/MethodDeserializerTest.java
@@ -0,0 +1,100 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.common.gson.internal;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.google.gson.JsonNull;
+import com.google.gson.JsonObject;
+import java.util.List;
+import org.junit.Test;
+import org.onap.policy.common.gson.JacksonExclusionStrategy;
+import org.onap.policy.common.gson.internal.DataAdapterFactory.Data;
+import org.onap.policy.common.gson.internal.MethodDeserializer;
+
+public class MethodDeserializerTest {
+ private static final String PROP_NAME = "text";
+ private static final String METHOD_NAME = "setText";
+ private static final String INITIAL_VALUE = "initial value";
+ private static final String NEW_VALUE = "new value";
+
+ private static DataAdapterFactory dataAdapter = new DataAdapterFactory();
+
+ private static Gson gson = new GsonBuilder().registerTypeAdapterFactory(dataAdapter)
+ .setExclusionStrategies(new JacksonExclusionStrategy()).create();
+
+ private MethodDeserializer deser;
+
+ private String text;
+
+ private List<Data> listField;
+
+ @Test
+ public void testGetFromTree() throws Exception {
+ deser = new MethodDeserializer(gson, MethodDeserializerTest.class.getDeclaredMethod(METHOD_NAME, String.class));
+
+ // non-existent value - should not overwrite
+ text = INITIAL_VALUE;
+ JsonObject json = new JsonObject();
+ deser.getFromTree(json, this);
+ assertEquals(INITIAL_VALUE, text);
+
+ // null value - should not overwrite
+ text = INITIAL_VALUE;
+ json.add(PROP_NAME, JsonNull.INSTANCE);
+ deser.getFromTree(json, this);
+ assertEquals(INITIAL_VALUE, text);
+
+ // has a value - should store it
+ text = INITIAL_VALUE;
+ json.addProperty(PROP_NAME, NEW_VALUE);
+ deser.getFromTree(json, this);
+ assertEquals(NEW_VALUE, text);
+
+ /*
+ * check list field
+ */
+ deser = new MethodDeserializer(gson, MethodDeserializerTest.class.getDeclaredMethod("setTheList", List.class));
+
+ json = new JsonObject();
+ json.add("theList", DataAdapterFactory.makeArray());
+
+ dataAdapter.reset();
+ listField = null;
+ deser.getFromTree(json, this);
+
+ assertTrue(dataAdapter.isDataRead());
+ assertNotNull(listField);
+ assertEquals(DataAdapterFactory.makeList().toString(), listField.toString());
+ }
+
+ protected void setText(String text) {
+ this.text = text;
+ }
+
+ protected void setTheList(List<Data> lst) {
+ listField = lst;
+ }
+}