aboutsummaryrefslogtreecommitdiffstats
path: root/utils/src/test/java/org/onap/policy/common/utils/coder/PropertyCoderTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'utils/src/test/java/org/onap/policy/common/utils/coder/PropertyCoderTest.java')
-rw-r--r--utils/src/test/java/org/onap/policy/common/utils/coder/PropertyCoderTest.java105
1 files changed, 105 insertions, 0 deletions
diff --git a/utils/src/test/java/org/onap/policy/common/utils/coder/PropertyCoderTest.java b/utils/src/test/java/org/onap/policy/common/utils/coder/PropertyCoderTest.java
new file mode 100644
index 00000000..87617758
--- /dev/null
+++ b/utils/src/test/java/org/onap/policy/common/utils/coder/PropertyCoderTest.java
@@ -0,0 +1,105 @@
+/*
+ * ============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 com.google.gson.annotations.SerializedName;
+
+import java.io.Reader;
+import java.io.StringReader;
+import java.util.List;
+
+import lombok.Getter;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class PropertyCoderTest {
+ private PropertyCoder propertyCoder = null;
+ private static final String AES_ENCRYPTION_KEY = "aes_encryption_key";
+ private static final String json =
+ ("{'aes_encryption_key':'abcdefghijklmnopqrstuvwxyzabcdef'"
+ + ",'xacml.pdp.rest.password':'enc:YZ8EqzsxIOzIuK416SWAdrv+0cKKkqsQt/NYH9+uxwI='"
+ + ",'xacml.pdp.rest.user':'testpdp'"
+ + ",'xacml.pdp.rest.client.user':'policy'"
+ + ",'xacml.pdp.rest.client.password':'policy'"
+ + ",'xacml.pdp.rest.environment':'TEST'"
+ + ",'servers':[{'name':'server1','port':'10',"
+ + "'pass':'enc:KXIY94KcAapOAAeFbtjQL4kBPB4k+NJfwdP+GpG3LWQ='}"
+ + ",{'name':'server2','port':'20','pass':'plaintext'}]"
+ + "}").replace('\'', '"');
+
+ /**
+ * Creates a standard object, populated with some data.
+ *
+ * @throws Exception if an error occurs
+ */
+ @Before
+ public void setUp() throws Exception {
+ propertyCoder = new PropertyCoder();
+ }
+
+ @Test
+ public void testPropertyCoder() throws CoderException {
+ MyClass data = propertyCoder.decode(json, AES_ENCRYPTION_KEY, MyClass.class);
+ assertEquals("alpha", data.getPdpRestPass());
+ assertEquals("hello", data.servers.get(0).pass);
+ assertEquals("server1", data.servers.get(0).name);
+ assertEquals("10", data.servers.get(0).port);
+ assertEquals("plaintext", data.servers.get(1).pass);
+ }
+
+ @Test
+ public void testPropertyCoderReader() throws CoderException {
+ Reader reader = new StringReader(json);
+ MyClass data = propertyCoder.decode(reader, AES_ENCRYPTION_KEY, MyClass.class);
+ assertEquals("alpha", data.getPdpRestPass());
+ assertEquals("hello", data.servers.get(0).pass);
+ assertEquals("server1", data.servers.get(0).name);
+ assertEquals("10", data.servers.get(0).port);
+ assertEquals("plaintext", data.servers.get(1).pass);
+ }
+
+ @Getter
+ public static class MyClass {
+ @SerializedName("aes_encryption_key")
+ private String key;
+ @SerializedName("xacml.pdp.rest.password")
+ private String pdpRestPass;
+ @SerializedName("xacml.pdp.rest.user")
+ private String pdpRestUser;
+ @SerializedName("xacml.pdp.rest.client.user")
+ private String pdpClientUser;
+ @SerializedName("xacml.pdp.rest.client.password")
+ private String pdpClientPass;
+ @SerializedName("xacml.pdp.rest.environment")
+ private String pdpRestEnv;
+ @SerializedName("servers")
+ private List<ServerClass> servers;
+ }
+
+ public static class ServerClass {
+ private String name;
+ private String port;
+ private String pass;
+ }
+} \ No newline at end of file