diff options
Diffstat (limited to 'holmes-actions/src/test/java/org/onap/holmes/common/utils/GsonUtilTest.java')
-rw-r--r-- | holmes-actions/src/test/java/org/onap/holmes/common/utils/GsonUtilTest.java | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/utils/GsonUtilTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/utils/GsonUtilTest.java new file mode 100644 index 0000000..ebba1d2 --- /dev/null +++ b/holmes-actions/src/test/java/org/onap/holmes/common/utils/GsonUtilTest.java @@ -0,0 +1,146 @@ +/** + * Copyright 2020 ZTE Corporation. + * + * 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. + */ + +package org.onap.holmes.common.utils; + +import com.google.gson.Gson; +import com.google.gson.JsonParser; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +import static org.hamcrest.core.Is.is; +import static org.hamcrest.core.IsEqual.equalTo; +import static org.junit.Assert.assertThat; + +public class GsonUtilTest { + + private final TestBean bean1 = new TestBean("onap1", 10, 10f, 10d); + private final TestBean bean2 = new TestBean("onap2", 20, 20f, 20d); + private final Gson gson = new Gson(); + + @Test + public void beanToJson() { + String expected = gson.toJson(bean1); + String actual = GsonUtil.beanToJson(bean1); + assertThat(actual, equalTo(expected)); + } + + @Test + public void jsonToBean() { + TestBean expected = bean1; + TestBean actual = GsonUtil.jsonToBean(gson.toJson(expected), TestBean.class); + assertThat(expected.getString(), equalTo(actual.getString())); + assertThat(expected.getInteger(), equalTo(actual.getInteger())); + assertThat(expected.getaDouble(), equalTo(actual.getaDouble())); + assertThat(expected.getaFloat(), equalTo(actual.getaFloat())); + } + + @Test + public void jsonToList() { + List<TestBean> expected = Arrays.asList( bean1, bean2); + List<TestBean> actual = GsonUtil.jsonToList(gson.toJson(expected), TestBean.class); + + assertThat(expected.size(), equalTo(actual.size())); + for (TestBean tb : expected) { + assertThat(actual.contains(tb), is(true)); + } + } + + @Test + public void jsonToListMaps() { + List<Map<String, TestBean>> actual = GsonUtil.jsonToListMaps( + "[{\"onap1\":{\"string\":\"onap1\",\"integer\":10,\"aFloat\":10.0,\"aDouble\":10.0}}," + + "{\"onap2\":{\"string\":\"onap2\",\"integer\":20,\"aFloat\":20.0,\"aDouble\":20.0}}]", TestBean.class); + + assertThat(actual.get(0).get("onap1"), equalTo(new TestBean("onap1", 10, 10f, 10d))); + assertThat(actual.get(1).get("onap2"), equalTo(new TestBean("onap2", 20, 20f, 20d))); + } + + @Test + public void jsonToMap() { + Map<String, TestBean> actual = GsonUtil + .jsonToMap("{\"onap1\":{\"string\":\"onap1\",\"integer\":10,\"aFloat\":10.0,\"aDouble\":10.0}}", TestBean.class); + assertThat(actual.get("onap1"), equalTo(new TestBean("onap1", 10, 10f, 10d))); + } + + @Test + public void getAsString() { + assertThat("onap1", + equalTo(GsonUtil.getAsString(JsonParser.parseString(GsonUtil.beanToJson(bean1)).getAsJsonObject(),"string"))); + } + + @Test + public void getAsLong() { + assertThat(10L, + is(GsonUtil.getAsLong(JsonParser.parseString(GsonUtil.beanToJson(bean1)).getAsJsonObject(),"integer"))); + } + + @Test + public void getAsInt() { + assertThat(10, + is(GsonUtil.getAsInt(JsonParser.parseString(GsonUtil.beanToJson(bean1)).getAsJsonObject(),"integer"))); + } +} + +class TestBean { + private String string; + private int integer; + private float aFloat; + private double aDouble; + + public TestBean(String string, int integer, float aFloat, double aDouble) { + this.string = string; + this.integer = integer; + this.aFloat = aFloat; + this.aDouble = aDouble; + } + + public String getString() { + return string; + } + + public int getInteger() { + return integer; + } + + public float getaFloat() { + return aFloat; + } + + public double getaDouble() { + return aDouble; + } + + @Override + public boolean equals(Object o) { + if (o == null || ! (o instanceof TestBean)) { + return false; + } + + return string.equals(((TestBean) o).string) + && integer == ((TestBean) o).integer + && aDouble == ((TestBean) o).aDouble + && aFloat == ((TestBean) o).aFloat; + } + + @Override + public int hashCode() { + return string.hashCode(); + } +}
\ No newline at end of file |