From cb067ee35bfba82cb686cdfce8207fe3060380c8 Mon Sep 17 00:00:00 2001
From: "Benjamin, Max (mb388a)" <mb388a@us.att.com>
Date: Fri, 24 Aug 2018 09:02:47 -0400
Subject: aairesultwrapper is now actually serializable

added in a proper serialization and deserialization test
addressed any comments from pull
added in a serialization test for AAIResultWrapper and updated one of
the null returns
change jsonBody in AAIResultWrapper back to String

Change-Id: Iffa5661f129cc26d69dfaa966cd265c67903cf21
Issue-ID: SO-899
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
---
 .../so/client/aai/entities/AAIResultWrapper.java   | 24 +++++++++++++---------
 .../client/aai/entities/AAIResultWrapperTest.java  | 19 +++++++++++++++--
 2 files changed, 31 insertions(+), 12 deletions(-)

(limited to 'common/src')

diff --git a/common/src/main/java/org/onap/so/client/aai/entities/AAIResultWrapper.java b/common/src/main/java/org/onap/so/client/aai/entities/AAIResultWrapper.java
index 9087995f97..36e67e2e09 100644
--- a/common/src/main/java/org/onap/so/client/aai/entities/AAIResultWrapper.java
+++ b/common/src/main/java/org/onap/so/client/aai/entities/AAIResultWrapper.java
@@ -35,19 +35,19 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 public class AAIResultWrapper implements Serializable {
 
 	private static final long serialVersionUID = 5895841925807816737L;
-	private final Optional<String> jsonBody;
+	private final String jsonBody;
 	private final ObjectMapper mapper;
 	public AAIResultWrapper(String json) {
-		this.jsonBody = Optional.ofNullable(json);
+		this.jsonBody = json;
 		this.mapper = new AAICommonObjectMapperProvider().getMapper();
 	}
 	
 	public Optional<Relationships> getRelationships() {
 		final String path = "$.relationship-list";
-		if (!jsonBody.isPresent()) {
+		if (isEmpty()) {
 			return Optional.empty();
 		}
-		Optional<String> result = JsonPathUtil.getInstance().locateResult(jsonBody.get(), path);
+		Optional<String> result = JsonPathUtil.getInstance().locateResult(jsonBody, path);
 		if (result.isPresent()) {
 			return Optional.of(new Relationships(result.get()));
 		} else {
@@ -56,33 +56,37 @@ public class AAIResultWrapper implements Serializable {
 	}
 	
 	public String getJson() {
-		return jsonBody.orElse("{}");
+		if(jsonBody == null) {
+			return "{}";
+		} else {
+			return jsonBody;
+		}
 	}
 	
 	public Map<String, Object> asMap() {
-		if (!this.jsonBody.isPresent()) {
+		if (isEmpty()) {
 			return new HashMap<>();
 		}
 		try {
-			return mapper.readValue(this.jsonBody.get(), new TypeReference<Map<String, Object>>(){});
+			return mapper.readValue(this.jsonBody, new TypeReference<Map<String, Object>>(){});
 		} catch (IOException e) {
 			return new HashMap<>();
 		}
 	}
 	
 	public <T> Optional<T> asBean(Class<T> clazz) {
-		if (!this.jsonBody.isPresent()) {
+		if (isEmpty()) {
 			return Optional.empty();
 		}
 		try {
-			return Optional.of(mapper.readValue(this.jsonBody.get(), clazz));
+			return Optional.of(mapper.readValue(this.jsonBody, clazz));
 		} catch (IOException e) {
 			return Optional.empty();
 		}
 	}
 	
 	public boolean isEmpty() {
-		return !this.jsonBody.isPresent();
+		return jsonBody == null;
 	}
 	@Override
 	public String toString() {
diff --git a/common/src/test/java/org/onap/so/client/aai/entities/AAIResultWrapperTest.java b/common/src/test/java/org/onap/so/client/aai/entities/AAIResultWrapperTest.java
index ff940a0dea..e40c25a2e2 100644
--- a/common/src/test/java/org/onap/so/client/aai/entities/AAIResultWrapperTest.java
+++ b/common/src/test/java/org/onap/so/client/aai/entities/AAIResultWrapperTest.java
@@ -20,9 +20,10 @@
 
 package org.onap.so.client.aai.entities;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.io.IOException;
+import java.io.Serializable;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.util.HashMap;
@@ -30,11 +31,15 @@ import java.util.Map;
 import java.util.Optional;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.ExpectedException;
 import org.junit.runner.RunWith;
 import org.mockito.runners.MockitoJUnitRunner;
 import org.onap.aai.domain.yang.GenericVnf;
 import org.onap.so.client.aai.AAICommonObjectMapperProvider;
+import org.springframework.util.SerializationUtils;
+
 import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.JsonMappingException;
@@ -43,7 +48,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 @RunWith(MockitoJUnitRunner.class) 
 public class AAIResultWrapperTest {
 	String json;
-
+	@Rule
+    public ExpectedException thrown= ExpectedException.none();
+	
 	AAIResultWrapper aaiResultWrapper;
 	AAIResultWrapper aaiResultWrapperEmpty;
 	
@@ -56,6 +63,14 @@ public class AAIResultWrapperTest {
 		aaiResultWrapperEmpty = new AAIResultWrapper("{}");
 	}
 	
+	@Test
+	public void testAAIResultWrapperIsSerializable() throws IOException {
+		AAIResultWrapper original = new AAIResultWrapper("");
+		byte[] serialized = SerializationUtils.serialize(original);
+		AAIResultWrapper deserialized = (AAIResultWrapper) SerializationUtils.deserialize(serialized);
+		assertEquals(deserialized.getJson(), original.getJson());
+	}
+	
 	@Test
 	public void testGetRelationshipsEmpty() {
 		Optional<Relationships> relationships = aaiResultWrapperEmpty.getRelationships();
-- 
cgit