diff options
author | Jim Hahn <jrh3@att.com> | 2019-02-28 21:59:33 -0500 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2019-03-01 01:08:42 -0500 |
commit | ddb5911efe46953200be8965ac65ae9bbc8a36ee (patch) | |
tree | 5e328e8205d2076b262943b65ade74584893430d /utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderTest.java | |
parent | 3849ce18d51e308bbd58b71219472c23b5f3e814 (diff) |
Add StandardCoderObject to hide GSON internals
Added StandardCoderObject to hide GSON's JsonElement so that classes
are not dependent on the use of JsonElement, making it easier to switch
out serialization mechanisms in the future.
Added a test for field-not-found.
Converted tabs to spaces in json test file.
Simplified StandardCoderObject and added methods to Coder for
translating to and from StandardCoderObject.
Removed a test for a method that no longer exists.
Added more tests to a test case.
Change-Id: I5123dc3f17c940ded431ef7f9ccd8c4bff6b1c5f
Issue-ID: POLICY-1444
Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderTest.java')
-rw-r--r-- | utils/src/test/java/org/onap/policy/common/utils/coder/StandardCoderTest.java | 48 |
1 files changed, 48 insertions, 0 deletions
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 + "]"; + } + } } |