updated delete payloads for bulk deletes 38/92838/1
authorBenjamin, Max <max.benjamin@att.com>
Tue, 6 Aug 2019 19:54:51 +0000 (15:54 -0400)
committerBenjamin, Max (mb388a) <mb388a@att.com>
Tue, 6 Aug 2019 19:54:52 +0000 (15:54 -0400)
updated delete payloads for bulk deletes
moved test-request.json to the correct location

Issue-ID: SO-2203
Signed-off-by: Benjamin, Max (mb388a) <mb388a@att.com>
Change-Id: I8d9d4d0bbe45f32d4e07a1ba0128e627d3b27795

bpmn/MSOCommonBPMN/src/test/resources/__files/aai/bulkprocess/test-request.json [deleted file]
common/src/main/java/org/onap/so/client/aai/AAISingleTransactionClient.java
common/src/main/java/org/onap/so/client/aai/AAITransactionalClient.java
common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryCommonObjectMapperProvider.java
common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryTransactionClient.java
common/src/test/java/org/onap/so/client/aai/AAISingleTransactionClientTest.java
common/src/test/java/org/onap/so/client/aai/AAITransactionalClientTest.java
common/src/test/resources/__files/aai/bulkprocess/test-request.json
common/src/test/resources/__files/aai/singletransaction/sample-request.json

diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/aai/bulkprocess/test-request.json b/bpmn/MSOCommonBPMN/src/test/resources/__files/aai/bulkprocess/test-request.json
deleted file mode 100644 (file)
index f5ffe38..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-  "transactions" : [ {
-    "put" : [ {
-      "uri" : "/network/generic-vnfs/generic-vnf/test1/relationship-list/relationship",
-      "body" : {
-        "related-link" : "/cloud-infrastructure/pservers/pserver/test2"
-      }
-    }, {
-      "uri" : "/network/generic-vnfs/generic-vnf/test3/relationship-list/relationship",
-      "body" : {
-        "related-link" : "/cloud-infrastructure/pservers/pserver/test4"
-      }
-    } ]
-  }, {
-    "put" : [ {
-      "uri" : "/network/generic-vnfs/generic-vnf/test5/relationship-list/relationship",
-      "body" : {
-        "related-link" : "/cloud-infrastructure/pservers/pserver/test6"
-      }
-    } ]
-  } ]
-}
\ No newline at end of file
index 1370bb3..3f9715b 100644 (file)
@@ -116,17 +116,23 @@ public class AAISingleTransactionClient
     }
 
     @Override
-    public void put(String uri, Object body) {
+    protected void put(String uri, Object body) {
         request.getOperations().add(new OperationBodyRequest().withAction("put").withUri(uri).withBody(body));
     }
 
     @Override
-    public void delete(String uri, Object body) {
-        request.getOperations().add(new OperationBodyRequest().withAction("delete").withUri(uri).withBody(body));
+    protected void delete(String uri) {
+        request.getOperations()
+                .add(new OperationBodyRequest().withAction("delete").withUri(uri).withBody(new Object()));
     }
 
     @Override
-    public void patch(String uri, Object body) {
+    protected void delete(String uri, Object obj) {
+        request.getOperations().add(new OperationBodyRequest().withAction("delete").withUri(uri).withBody(obj));
+    }
+
+    @Override
+    protected void patch(String uri, Object body) {
         request.getOperations().add(new OperationBodyRequest().withAction("patch").withUri(uri).withBody(body));
     }
 
index 11e458a..e621566 100644 (file)
@@ -169,18 +169,22 @@ public class AAITransactionalClient
     }
 
     @Override
-    public void put(String uri, Object body) {
+    protected void put(String uri, Object body) {
         currentTransaction.getPut().add(new OperationBody().withUri(uri).withBody(body));
     }
 
     @Override
-    public void delete(String uri, Object body) {
-        currentTransaction.getDelete().add(new OperationBody().withUri(uri).withBody(body));
+    protected void delete(String uri) {
+        currentTransaction.getDelete().add(new OperationBody().withUri(uri).withBody(null));
+    }
 
+    @Override
+    protected void delete(String uri, Object obj) {
+        currentTransaction.getDelete().add(new OperationBody().withUri(uri).withBody(obj));
     }
 
     @Override
-    public void patch(String uri, Object body) {
+    protected void patch(String uri, Object body) {
         currentTransaction.getPatch().add(new OperationBody().withUri(uri).withBody(body));
     }
 
index 72b01c2..a4f9496 100644 (file)
@@ -40,6 +40,7 @@ public class GraphInventoryCommonObjectMapperProvider extends CommonObjectMapper
         mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
         mapper.enable(MapperFeature.USE_ANNOTATIONS);
         mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, false);
+        mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
         mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, false);
         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
         AnnotationIntrospector aiJaxb = new JaxbAnnotationIntrospector(TypeFactory.defaultInstance());
index 5fc8726..45ac1f7 100644 (file)
@@ -33,8 +33,7 @@ import org.onap.so.client.graphinventory.exceptions.BulkProcessFailed;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public abstract class GraphInventoryTransactionClient<Self, Uri extends GraphInventoryResourceUri, EdgeLabel extends GraphInventoryEdgeLabel>
-        implements TransactionBuilder {
+public abstract class GraphInventoryTransactionClient<Self, Uri extends GraphInventoryResourceUri, EdgeLabel extends GraphInventoryEdgeLabel> {
 
     protected static Logger logger = LoggerFactory.getLogger(GraphInventoryTransactionClient.class);
 
@@ -181,7 +180,7 @@ public abstract class GraphInventoryTransactionClient<Self, Uri extends GraphInv
         Map<String, Object> result = this.get(new GenericType<Map<String, Object>>() {}, (Uri) uri.clone())
                 .orElseThrow(() -> new NotFoundException(uri.build() + " does not exist in " + this.getGraphDBName()));
         String resourceVersion = (String) result.get("resource-version");
-        this.delete(uri.resourceVersion(resourceVersion).build().toString(), "");
+        this.delete(uri.resourceVersion(resourceVersion).build().toString());
         incrementActionAmount();
         return (Self) this;
     }
@@ -192,6 +191,14 @@ public abstract class GraphInventoryTransactionClient<Self, Uri extends GraphInv
 
     protected abstract String getGraphDBName();
 
+    protected abstract void put(String uri, Object body);
+
+    protected abstract void delete(String uri);
+
+    protected abstract void delete(String uri, Object obj);
+
+    protected abstract void patch(String uri, Object body);
+
     /**
      * @param obj - can be any object which will marshal into a valid A&AI payload
      * @param uri
index 1c49c11..b07d893 100644 (file)
@@ -24,6 +24,7 @@ import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.Matchers.greaterThan;
 import static org.junit.Assert.assertThat;
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
@@ -32,12 +33,14 @@ import static org.mockito.Mockito.verify;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Optional;
+import javax.ws.rs.core.GenericType;
 import org.json.JSONException;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.InjectMocks;
 import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.aai.domain.yang.Pserver;
@@ -46,7 +49,6 @@ import org.onap.so.client.aai.entities.singletransaction.SingleTransactionReques
 import org.onap.so.client.aai.entities.singletransaction.SingleTransactionResponse;
 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
-import org.onap.so.client.defaultproperties.DefaultAAIPropertiesImpl;
 import org.onap.so.client.graphinventory.GraphInventoryPatchConverter;
 import org.skyscreamer.jsonassert.JSONAssert;
 import com.fasterxml.jackson.core.JsonParseException;
@@ -60,11 +62,13 @@ public class AAISingleTransactionClientTest {
     private final static String AAI_JSON_FILE_LOCATION = "src/test/resources/__files/aai/singletransaction/";
     AAIResourceUri uriA = AAIUriFactory.createResourceUri(AAIObjectType.PSERVER, "pserver-hostname");
     AAIResourceUri uriB = AAIUriFactory.createResourceUri(AAIObjectType.COMPLEX, "my-complex");
+    AAIResourceUri uriC = AAIUriFactory.createResourceUri(AAIObjectType.COMPLEX, "my-complex2");
 
     ObjectMapper mapper;
 
     public AAIClient client = new AAIClient();
 
+    @Spy
     public AAIResourcesClient aaiClient = new AAIResourcesClient();
 
     @Before
@@ -82,9 +86,11 @@ public class AAISingleTransactionClientTest {
         pserver2.setFqdn("patched-fqdn");
         Complex complex = new Complex();
         complex.setCity("my-city");
-        AAISingleTransactionClient singleTransaction =
-                aaiClient.beginSingleTransaction().create(uriA, pserver).update(uriA, pserver2).create(uriB, complex);
-
+        Map<String, Object> map = new HashMap<>();
+        map.put("resource-version", "1234");
+        doReturn(Optional.of(map)).when(aaiClient).get(any(GenericType.class), eq(uriC));
+        AAISingleTransactionClient singleTransaction = aaiClient.beginSingleTransaction().create(uriA, pserver)
+                .update(uriA, pserver2).create(uriB, complex).delete(uriC);
 
         SingleTransactionRequest actual = singleTransaction.getRequest();
 
index adbdbb4..305cdf5 100644 (file)
@@ -22,6 +22,7 @@ package org.onap.so.client.aai;
 
 import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
@@ -31,19 +32,19 @@ import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import javax.ws.rs.core.GenericType;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.InjectMocks;
 import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.aai.domain.yang.Relationship;
 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
-import org.onap.so.client.defaultproperties.DefaultAAIPropertiesImpl;
 import org.onap.so.client.graphinventory.GraphInventoryPatchConverter;
 import com.fasterxml.jackson.core.JsonParseException;
 import com.fasterxml.jackson.core.type.TypeReference;
@@ -61,11 +62,13 @@ public class AAITransactionalClientTest {
     AAIResourceUri uriD = AAIUriFactory.createResourceUri(AAIObjectType.PSERVER, "test4");
     AAIResourceUri uriE = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test5");
     AAIResourceUri uriF = AAIUriFactory.createResourceUri(AAIObjectType.PSERVER, "test6");
+    AAIResourceUri uriG = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, "test7");
 
     ObjectMapper mapper;
 
     public AAIClient client = new AAIClient();
 
+    @Spy
     public AAIResourcesClient aaiClient = new AAIResourcesClient();
 
     @Before
@@ -95,9 +98,12 @@ public class AAITransactionalClientTest {
         List<AAIResourceUri> uris = new ArrayList<AAIResourceUri>();
         uris.add(uriB);
 
+        Map<String, Object> map = new HashMap<>();
+        map.put("resource-version", "1234");
+        doReturn(Optional.of(map)).when(aaiClient).get(any(GenericType.class), eq(uriG));
         AAIResourceUri uriAClone = uriA.clone();
         AAITransactionalClient transactions = aaiClient.beginTransaction().connect(uriA, uris).connect(uriC, uriD)
-                .beginNewTransaction().connect(uriE, uriF);
+                .beginNewTransaction().connect(uriE, uriF).beginNewTransaction().delete(uriG);
 
         String serializedTransactions = mapper.writeValueAsString(transactions.getTransactions());
         Map<String, Object> actual =
index f5ffe38..5a2953c 100644 (file)
@@ -18,5 +18,9 @@
         "related-link" : "/cloud-infrastructure/pservers/pserver/test6"
       }
     } ]
-  } ]
+  }, {
+    "delete" : [ {
+      "uri" : "/network/generic-vnfs/generic-vnf/test7?resource-version=1234"
+    } ]
+  }]
 }
\ No newline at end of file
index f0761a0..69024dc 100644 (file)
       "body": {
         "city": "my-city"
       }
+    },
+    {
+      "action": "delete",
+      "uri": "/cloud-infrastructure/complexes/complex/my-complex2?resource-version=1234",
+      "body" : {
+      }
     }
   ]
 }
\ No newline at end of file