package org.onap.policy.controlloop.actor.vfc;
-import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
-import java.util.concurrent.CompletableFuture;
+import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
-import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
-import org.onap.policy.controlloop.policy.PolicyResult;
+import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
import org.onap.policy.vfc.VfcResponse;
import org.onap.policy.vfc.VfcResponseDescriptor;
}
@Test
- public void testConstructor_testGetWaitMsGet() {
+ public void testConstructor() {
assertEquals(DEFAULT_ACTOR, oper.getActorName());
assertEquals(DEFAULT_OPERATION, oper.getName());
assertSame(config, oper.getConfig());
- assertEquals(1000 * WAIT_SEC_GETS, oper.getWaitMsGet());
+ assertTrue(oper.isUsePolling());
}
@Test
}
@Test
- public void testResetGetCount() {
- oper.resetGetCount();
- assertEquals(0, oper.getGetCount());
- }
-
- @Test
- public void testPostProcess() throws Exception {
-
- assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> {
- oper.postProcessResponse(outcome, PATH, rawResponse, response);
- });
-
- response.setResponseDescriptor(new VfcResponseDescriptor());
- response.setJobId("sampleJobId");
-
- // null status
- CompletableFuture<OperationOutcome> future2 = oper.postProcessResponse(outcome, PATH, rawResponse, response);
- assertFalse(future2.isDone());
-
- response.getResponseDescriptor().setStatus("FinisHeD");
- future2 = oper.postProcessResponse(outcome, PATH, rawResponse, response);
- assertTrue(future2.isDone());
- assertSame(outcome, future2.get());
- assertEquals(PolicyResult.SUCCESS, outcome.getResult());
- assertSame(response, outcome.getResponse());
-
- // failed
- response.getResponseDescriptor().setStatus("eRRor");
- future2 = oper.postProcessResponse(outcome, PATH, rawResponse, response);
- assertTrue(future2.isDone());
- assertSame(outcome, future2.get());
- assertEquals(PolicyResult.FAILURE, outcome.getResult());
- assertSame(response, outcome.getResponse());
-
- // unfinished
- response.getResponseDescriptor().setStatus("anything but finished");
- future2 = oper.postProcessResponse(outcome, PATH, rawResponse, response);
- assertFalse(future2.isDone());
+ public void testResetPollCount() {
+ oper.resetPollCount();
+ assertEquals(0, oper.getPollCount());
}
@Test
assertTrue(oper.isSuccess(rawResponse, response));
}
+ @Test
+ public void testGetOptProperty() {
+ // in neither property nor enrichment
+ assertNull(oper.getOptProperty("propA", "propA2"));
+
+ // both - should choose the property
+ remakeOper(Map.of("propB2", "valueB2"));
+ oper.setProperty("propB", "valueB");
+ assertEquals("valueB", oper.getOptProperty("propB", "propB2"));
+
+ // both - should choose the property, even if it's null
+ remakeOper(Map.of("propC2", "valueC2"));
+ oper.setProperty("propC", null);
+ assertNull(oper.getOptProperty("propC", "propC2"));
+
+ // only in enrichment data
+ remakeOper(Map.of("propD2", "valueD2"));
+ assertEquals("valueD2", oper.getOptProperty("propD", "propD2"));
+ }
+
+ /**
+ * Remakes the operation, with the specified A&AI enrichment data.
+ *
+ * @param aai A&AI enrichment data
+ */
+ private void remakeOper(Map<String, String> aai) {
+ event.setAai(aai);
+ context = new ControlLoopEventContext(event);
+ params = params.toBuilder().context(context).build();
+
+ oper = new VfcOperation(params, config) {};
+ }
}