aairesultwrapper is now actually serializable 29/62329/1
authorBenjamin, Max (mb388a) <mb388a@us.att.com>
Fri, 24 Aug 2018 13:02:47 +0000 (09:02 -0400)
committerBenjamin, Max (mb388a) <mb388a@us.att.com>
Fri, 24 Aug 2018 13:03:14 +0000 (09:03 -0400)
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>
common/src/main/java/org/onap/so/client/aai/entities/AAIResultWrapper.java
common/src/test/java/org/onap/so/client/aai/entities/AAIResultWrapperTest.java

index 9087995..36e67e2 100644 (file)
@@ -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() {
index ff940a0..e40c25a 100644 (file)
 
 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();