diff options
author | Jim Hahn <jrh3@att.com> | 2021-02-05 11:13:31 -0500 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2021-02-05 12:52:50 -0500 |
commit | 296a26edcc3102602b494d1be9c23e0265b09f66 (patch) | |
tree | 547b0aef999a7d51ca2d59dd860ce8b49504bb21 /models-interactions/model-actors/actor.sdnr/src | |
parent | 23dec48efae039ff961ea68358ab69d80a81531b (diff) |
Give better messages than NPE for missing data
When data is not available to actor operations, an NPE is generally
thrown. Modified the code to provide more info about what is missing
than simply NPE.
Issue-ID: POLICY-2913
Change-Id: I37b6eadd966e0693508a6d552b7db4edf5410018
Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'models-interactions/model-actors/actor.sdnr/src')
2 files changed, 20 insertions, 3 deletions
diff --git a/models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperation.java b/models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperation.java index 14f77a687..ebfbaba68 100644 --- a/models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperation.java +++ b/models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperation.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * SdnrOperation * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2020-2021 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. @@ -150,7 +150,7 @@ public class SdnrOperation extends BidirectionalTopicOperation<PciMessage, PciMe requestCommonHeader.setSubRequestId(subRequestId); sdnrRequest.setCommonHeader(requestCommonHeader); - sdnrRequest.setPayload(getProperty(OperationProperties.EVENT_PAYLOAD)); + sdnrRequest.setPayload(getRequiredProperty(OperationProperties.EVENT_PAYLOAD, "event payload")); sdnrRequest.setAction(params.getOperation()); /* diff --git a/models-interactions/model-actors/actor.sdnr/src/test/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperationTest.java b/models-interactions/model-actors/actor.sdnr/src/test/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperationTest.java index 3a8f0b7e1..ba3a6005a 100644 --- a/models-interactions/model-actors/actor.sdnr/src/test/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperationTest.java +++ b/models-interactions/model-actors/actor.sdnr/src/test/java/org/onap/policy/controlloop/actor/sdnr/SdnrOperationTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * SdnrOperation * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2020-2021 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. @@ -21,6 +21,7 @@ package org.onap.policy.controlloop.actor.sdnr; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalStateException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertSame; @@ -67,6 +68,7 @@ public class SdnrOperationTest extends BasicSdnrOperation { super.setUp(); operation = new SdnrOperation(params, config); + operation.setProperty(OperationProperties.EVENT_PAYLOAD, "my payload"); } @After @@ -106,6 +108,20 @@ public class SdnrOperationTest extends BasicSdnrOperation { assertEquals(params.getRequestId(), header.getRequestId()); } + /** + * Tests makeRequest() when a property is missing. + */ + @Test + public void testMakeRequestMissingProperty() throws Exception { + operation = new SdnrOperation(params, config); + + operation.generateSubRequestId(1); + outcome.setSubRequestId(operation.getSubRequestId()); + + assertThatIllegalStateException().isThrownBy(() -> operation.makeRequest(1)) + .withMessageContaining("missing event payload"); + } + @Test public void testGetExpectedKeyValues() { operation.generateSubRequestId(1); @@ -127,6 +143,7 @@ public class SdnrOperationTest extends BasicSdnrOperation { params = params.toBuilder().retry(0).timeoutSec(5).executor(blockingExecutor).build(); operation = new SdnrOperation(params, config); + operation.setProperty(OperationProperties.EVENT_PAYLOAD, "my payload"); outcome = operation.start().get(); assertEquals(OperationResult.SUCCESS, outcome.getResult()); |