import java.util.Arrays;
import java.util.Map;
import java.util.TreeMap;
+import org.apache.commons.lang3.tuple.Pair;
+import org.junit.After;
+import org.junit.AfterClass;
import org.junit.Before;
+import org.junit.BeforeClass;
import org.junit.Test;
import org.onap.policy.appc.CommonHeader;
import org.onap.policy.appc.Request;
public class AppcOperationTest extends BasicAppcOperation {
private AppcOperation oper;
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ // use same topic name for both sides
+ initBeforeClass(MY_SINK, MY_SINK);
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() {
+ destroyAfterClass();
+ }
+
/**
* Sets up.
*/
@Before
+ @Override
public void setUp() throws Exception {
super.setUp();
- oper = new AppcOperation(params, operator) {
+ oper = new AppcOperation(params, config) {
@Override
- protected Request makeRequest(int attempt) {
+ protected Pair<String, Request> makeRequest(int attempt) {
return oper.makeRequest(attempt, MY_VNF);
}
};
}
+ @After
+ @Override
+ public void tearDown() {
+ super.tearDown();
+ }
+
@Test
- public void testAppcOperation() {
+ public void testConstructor() {
assertEquals(DEFAULT_ACTOR, oper.getActorName());
assertEquals(DEFAULT_OPERATION, oper.getName());
}
+ @Test
+ public void testStartPreprocessorAsync() {
+ assertNotNull(oper.startPreprocessorAsync());
+ }
+
@Test
public void testMakeRequest() {
- Request request = oper.makeRequest(2, MY_VNF);
+ Pair<String, Request> result = oper.makeRequest(2, MY_VNF);
+ String subreq = result.getLeft();
+ assertNotNull(subreq);
+
+ Request request = result.getRight();
assertEquals(DEFAULT_OPERATION, request.getAction());
assertNotNull(request.getPayload());
assertNotNull(header);
assertEquals(params.getRequestId(), header.getRequestId());
- String subreq = header.getSubRequestId();
- assertNotNull(subreq);
+ assertEquals(subreq, header.getSubRequestId());
// a subsequent request should have a different sub-request id
- assertNotEquals(subreq, oper.makeRequest(2, MY_VNF).getCommonHeader().getSubRequestId());
+ result = oper.makeRequest(2, MY_VNF);
+ assertNotEquals(subreq, result.getLeft());
+
+ assertNotNull(result.getLeft());
+ assertEquals(result.getLeft(), result.getRight().getCommonHeader().getSubRequestId());
// repeat using a null payload
params = params.toBuilder().payload(null).build();
- oper = new AppcOperation(params, operator) {
+ oper = new AppcOperation(params, config) {
@Override
- protected Request makeRequest(int attempt) {
+ protected Pair<String, Request> makeRequest(int attempt) {
return oper.makeRequest(attempt, MY_VNF);
}
};
- assertEquals(Map.of(AppcOperation.VNF_ID_KEY, MY_VNF), oper.makeRequest(2, MY_VNF).getPayload());
+ assertEquals(Map.of(AppcOperation.VNF_ID_KEY, MY_VNF), oper.makeRequest(2, MY_VNF).getRight().getPayload());
}
@Test
public void testConvertPayload() {
- Request request = oper.makeRequest(2, MY_VNF);
+ Request request = oper.makeRequest(2, MY_VNF).getRight();
// @formatter:off
assertEquals(
/*
* insert invalid json text into the payload.
*/
- Map<String, String> payload = new TreeMap<>(params.getPayload());
+ Map<String, Object> payload = new TreeMap<>(params.getPayload());
payload.put("invalid-key", "{invalid json");
params = params.toBuilder().payload(payload).build();
- oper = new AppcOperation(params, operator) {
+ oper = new AppcOperation(params, config) {
@Override
- protected Request makeRequest(int attempt) {
+ protected Pair<String, Request> makeRequest(int attempt) {
return oper.makeRequest(attempt, MY_VNF);
}
};
- request = oper.makeRequest(2, MY_VNF);
+ request = oper.makeRequest(2, MY_VNF).getRight();
// @formatter:off
assertEquals(
KEY2, Map.of("output", "world")),
request.getPayload());
// @formatter:on
+
+
+ /*
+ * insert null item into the payload.
+ */
+ payload = new TreeMap<>();
+ payload.put(KEY1, "abc");
+ payload.put(KEY2, null);
+ payload.put(KEY3, "def");
+ params = params.toBuilder().payload(payload).build();
+
+ oper = new AppcOperation(params, config) {
+ @Override
+ protected Pair<String, Request> makeRequest(int attempt) {
+ return oper.makeRequest(attempt, MY_VNF);
+ }
+ };
+ request = oper.makeRequest(2, MY_VNF).getRight();
+
+ payload.put(AppcOperation.VNF_ID_KEY, MY_VNF);
+ payload.put(KEY1, "abc");
+ payload.put(KEY2, null);
+ payload.put(KEY3, "def");
+
+ assertEquals(payload, request.getPayload());
}
@Test
public void testGetExpectedKeyValues() {
- Request request = oper.makeRequest(2, MY_VNF);
+ Request request = oper.makeRequest(2, MY_VNF).getRight();
assertEquals(Arrays.asList(request.getCommonHeader().getSubRequestId()),
oper.getExpectedKeyValues(50, request));
}
public void testDetmStatusStringResponse() {
final ResponseStatus status = response.getStatus();
- // null status
+ // null status (i.e., it's a Request, not a Response)
response.setStatus(null);
- assertThatIllegalArgumentException().isThrownBy(() -> oper.detmStatus("", response))
- .withMessage("APP-C response is missing the response status");
+ assertEquals(Status.STILL_WAITING, oper.detmStatus("", response));
response.setStatus(status);
// invalid code