aboutsummaryrefslogtreecommitdiffstats
path: root/utils/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'utils/src/test/java')
-rw-r--r--utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderObjectTest.java89
-rw-r--r--utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderTest.java48
2 files changed, 137 insertions, 0 deletions
diff --git a/utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderObjectTest.java b/utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderObjectTest.java
new file mode 100644
index 00000000..44086f30
--- /dev/null
+++ b/utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderObjectTest.java
@@ -0,0 +1,89 @@
+/*
+ * ============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.utils.coder;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonElement;
+import org.junit.Before;
+import org.junit.Test;
+
+public class StandardCoderObjectTest {
+ private static final Gson gson = new Gson();
+
+ private static final String PROP1 = "abc";
+ private static final String PROP2 = "ghi";
+ private static final String PROP2b = "jkl";
+ private static final String VAL1 = "def";
+ private static final String VAL2 = "mno";
+ private static final String JSON = "{'abc':'def','ghi':{'jkl':'mno'}}".replace('\'', '"');
+
+ private StandardCoderObject sco;
+
+ /**
+ * Creates a standard object, populated with some data.
+ *
+ * @throws Exception if an error occurs
+ */
+ @Before
+ public void setUp() throws Exception {
+ sco = new StandardCoderObject(gson.fromJson(JSON, JsonElement.class));
+ }
+
+ @Test
+ public void testStandardCoderObject() {
+ assertNull(new StandardCoderObject().getData());
+ }
+
+ @Test
+ public void testStandardCoderObjectJsonElement() {
+ assertNotNull(sco.getData());
+ assertEquals(JSON, gson.toJson(sco.getData()));
+ }
+
+ @Test
+ public void testGetString() throws Exception {
+ // one field
+ assertEquals(VAL1, sco.getString(PROP1));
+
+ // multiple fields
+ assertEquals(VAL2, sco.getString(PROP2, PROP2b));
+
+ // not found
+ assertNull(sco.getString("xyz"));
+
+ // read from null object
+ assertNull(new StandardCoderObject().getString());
+ assertNull(new StandardCoderObject().getString(PROP1));
+
+ JsonElement obj = gson.fromJson("{'abc':[]}".replace('\'', '"'), JsonElement.class);
+ sco = new StandardCoderObject(obj);
+
+ // not a primitive
+ assertNull(sco.getString(PROP1));
+
+ // not a JSON object
+ assertNull(sco.getString(PROP1, PROP2));
+ }
+}
diff --git a/utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderTest.java b/utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderTest.java
index 25cce748..7583d776 100644
--- a/utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderTest.java
+++ b/utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderTest.java
@@ -22,6 +22,7 @@ package org.onap.policy.common.utils.coder;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@@ -196,4 +197,51 @@ public class StandardCoderTest {
assertThatThrownBy(() -> coder.decode(file, JsonElement.class)).isInstanceOf(CoderException.class)
.hasCause(ioe);
}
+
+ @Test
+ public void testToStandard() throws Exception {
+ MyObject obj = new MyObject();
+ obj.abc = "xyz";
+ StandardCoderObject sco = coder.toStandard(obj);
+ assertNotNull(sco.getData());
+ assertEquals("{'abc':'xyz'}".replace('\'', '"'), sco.getData().toString());
+
+ // class instead of object -> exception
+ assertThatThrownBy(() -> coder.toStandard(String.class)).isInstanceOf(CoderException.class);
+ }
+
+ @Test
+ public void testFromStandard() throws Exception {
+ MyObject obj = new MyObject();
+ obj.abc = "pdq";
+ StandardCoderObject sco = coder.toStandard(obj);
+
+ MyObject obj2 = coder.fromStandard(sco, MyObject.class);
+ assertEquals(obj.toString(), obj2.toString());
+
+ // null class -> exception
+ assertThatThrownBy(() -> coder.fromStandard(sco, null)).isInstanceOf(CoderException.class);
+ }
+
+ @Test
+ public void testStandardTypeAdapter() throws Exception {
+ String json = "{'abc':'def'}".replace('\'', '"');
+ StandardCoderObject sco = coder.fromJson(json, StandardCoderObject.class);
+ assertNotNull(sco.getData());
+ assertEquals(json, sco.getData().toString());
+ assertEquals(json, coder.toJson(sco));
+
+ // invalid json -> exception
+ assertThatThrownBy(() -> coder.fromJson(new StringReader("["), StandardCoderObject.class));
+ }
+
+
+ private static class MyObject {
+ private String abc;
+
+ @Override
+ public String toString() {
+ return "MyObject [abc=" + abc + "]";
+ }
+ }
}