aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumer.java18
-rw-r--r--aai-resources/src/test/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumerTest.java13
-rw-r--r--aai-resources/src/test/resources/payloads/bulk/single-transaction/put-complex-with-missing-properties.json9
3 files changed, 32 insertions, 8 deletions
diff --git a/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumer.java b/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumer.java
index 1b274b9..900da96 100644
--- a/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumer.java
+++ b/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumer.java
@@ -213,7 +213,7 @@ public class BulkSingleTransactionConsumer extends RESTAPI {
/**
* Builds the response
- *
+ *
* @param transaction the input transactions
* @param results the response of all of he operations
* @return TansactionResponse obj representing the result of the transaction
@@ -242,7 +242,7 @@ public class BulkSingleTransactionConsumer extends RESTAPI {
/**
* Generate one DBRequest per BulkOperation
- *
+ *
* @param headers request headers
* @param transId transaction id
* @param bulkOperations operations to convert
@@ -268,7 +268,7 @@ public class BulkSingleTransactionConsumer extends RESTAPI {
/**
* Sets the uriquery for each bulk operation
- *
+ *
* @param bulkOperations operations to generate queries for
* @param dbEngine engine for query builder generation
* @throws AAIException thrown for issues with generating uri query
@@ -289,7 +289,7 @@ public class BulkSingleTransactionConsumer extends RESTAPI {
/**
* Sets the introspector for each bulk operation. requires that uriquery is set per operation
- *
+ *
* @param bulkOperations operations to generate introspector for
* @param loader Loader for generating introspector
* @throws AAIException thrown for issues with generating introspector
@@ -315,6 +315,8 @@ public class BulkSingleTransactionConsumer extends RESTAPI {
}
bulkOperation.setIntrospector(obj);
}
+ } catch (AAIException e) {
+ throw new AAIException(e.getCode(), "Error with operation " + i + ": " + e.getMessage());
} catch (UnsupportedEncodingException e) {
throw new AAIException("AAI_3000", String.format(objectUnMarshallMsg, i, bulkOperation.getRawReq()));
}
@@ -327,7 +329,7 @@ public class BulkSingleTransactionConsumer extends RESTAPI {
* - Integer.MAX_VALUE if override limit is configured
* - Property in aaiconfig
* - 30 by default
- *
+ *
* @param headers request header
*/
private void setOperationCount(HttpHeaders headers) {
@@ -348,7 +350,7 @@ public class BulkSingleTransactionConsumer extends RESTAPI {
/**
* Converts the request transaction into a list of bulk operations
- *
+ *
* @param transaction transaction to extract bulk operations from
* @return list of bulk operations
*/
@@ -381,7 +383,7 @@ public class BulkSingleTransactionConsumer extends RESTAPI {
/**
* Map action to httpmethod
- *
+ *
* @param action action to be mapped
* @param uri uri of the action
* @return HttpMethod thats action/uri maps to
@@ -415,7 +417,7 @@ public class BulkSingleTransactionConsumer extends RESTAPI {
* - action is provided and correct.
* - uri exists
* - body exists
- *
+ *
* @param transaction parsed payload
* @throws AAIException with the violations in the msg
*/
diff --git a/aai-resources/src/test/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumerTest.java b/aai-resources/src/test/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumerTest.java
index 7629178..fb9f13f 100644
--- a/aai-resources/src/test/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumerTest.java
+++ b/aai-resources/src/test/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumerTest.java
@@ -354,6 +354,19 @@ public class BulkSingleTransactionConsumerTest extends BulkProcessorTestAbstract
assertEquals("Request success", Response.Status.CREATED.getStatusCode(), response.getStatus());
}
+ @Test
+ public void invalidNodeCreationPaylodTest() throws IOException {
+ String payload = getBulkPayload("single-transaction/put-complex-with-missing-properties")
+ .replaceAll("<methodName>", name.getMethodName());
+ Response response = executeRequest(payload);
+
+ assertEquals("Request fails with 400", Response.Status.BAD_REQUEST.getStatusCode(), response.getStatus());
+ assertThat("Response contains correct index of failed operation.", response.getEntity().toString(),
+ containsString("Error with operation 0"));
+ assertThat("Response contains information about missing properties.", response.getEntity().toString(),
+ containsString("Missing required property:"));
+ }
+
protected Response executeRequest(String finalPayload) {
MockHttpServletRequest mockReq = new MockHttpServletRequest(HttpMethod.POST, "http://www.test.com");
diff --git a/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-complex-with-missing-properties.json b/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-complex-with-missing-properties.json
new file mode 100644
index 0000000..b371583
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-complex-with-missing-properties.json
@@ -0,0 +1,9 @@
+{
+ "operations": [
+ {
+ "action": "put",
+ "uri": "cloud-infrastructure/complexes/complex/complex-<methodName>",
+ "body": {}
+ }
+ ]
+} \ No newline at end of file