import static com.github.tomakehurst.wiremock.client.WireMock.get;
import static com.github.tomakehurst.wiremock.client.WireMock.ok;
import static com.github.tomakehurst.wiremock.client.WireMock.okJson;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
import static com.github.tomakehurst.wiremock.client.WireMock.put;
import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
import static com.github.tomakehurst.wiremock.client.WireMock.urlPathMatching;
+import static org.assertj.core.api.Assertions.fail;
import static org.camunda.bpm.engine.test.assertions.bpmn.BpmnAwareAssertions.assertThat;
+import com.google.protobuf.Struct;
+import com.google.protobuf.Value;
import java.io.IOException;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
import org.camunda.bpm.engine.runtime.Execution;
import org.camunda.bpm.engine.runtime.ProcessInstance;
import org.junit.Before;
import org.junit.Test;
+import org.onap.ccsdk.cds.controllerblueprints.common.api.ActionIdentifiers;
+import org.onap.ccsdk.cds.controllerblueprints.common.api.CommonHeader;
+import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput;
import org.onap.so.BaseBPMNTest;
import org.onap.so.GrpcNettyServer;
import org.onap.so.bpmn.mock.FileUtil;
private String testBusinessKey;
private String requestObject;
private String responseObject;
+ private String msoRequestId;
@Autowired
private GrpcNettyServer grpcNettyServer;
/**
* Create mso-request-id.
*/
- String msoRequestId = UUID.randomUUID().toString();
+ msoRequestId = UUID.randomUUID().toString();
variables.put("mso-request-id", msoRequestId);
public void workflow_validInput_expectedOuput() {
mockCatalogDb();
+ mockRequestDb();
mockAai();
mockDmaapForPnf();
if (!execution.isSuspended() && !execution.isEnded()) {
try {
-
runtimeService.signal(execution.getId());
} catch (Exception e) {
logger.info(e.getMessage(), e);
assertThat(pi).isEnded();
- List<String> messagesDelivered = grpcNettyServer.getMessagesDelivered();
- assertThat(messagesDelivered).containsSequence("config-assign", "config-deploy");
+ List<ExecutionServiceInput> detailedMessages = grpcNettyServer.getDetailedMessages();
+ assertThat(detailedMessages).hasSize(2);
+ try {
+ checkConfigAssign(detailedMessages.get(0));
+ checkConfigDeploy(detailedMessages.get(1));
+ } catch(Exception e){
+ e.printStackTrace();
+ fail("ConfigAssign/deploy request exception", e);
+ }
+ }
+
+ private void checkConfigAssign(ExecutionServiceInput executionServiceInput) {
+ ActionIdentifiers actionIdentifiers = executionServiceInput.getActionIdentifiers();
+
+ /**
+ * the fields of actionIdentifiers should match the one in the response/createVcpeResCustServiceSimplifiedTest_catalogdb.json.
+ */
+ assertThat(actionIdentifiers.getBlueprintName()).matches("test_configuration_restconf");
+ assertThat(actionIdentifiers.getBlueprintVersion()).matches("1.0.0");
+ assertThat(actionIdentifiers.getActionName()).matches("config-assign");
+ assertThat(actionIdentifiers.getMode()).matches("sync");
+
+ CommonHeader commonHeader = executionServiceInput.getCommonHeader();
+ assertThat(commonHeader.getOriginatorId()).matches("SO");
+ assertThat(commonHeader.getRequestId()).matches(msoRequestId);
+
+ Struct payload = executionServiceInput.getPayload();
+ Struct requeststruct = payload.getFieldsOrThrow("config-assign-request").getStructValue();
+
+ assertThat(requeststruct.getFieldsOrThrow("resolution-key").getStringValue()).matches("PNFDemo");
+ Struct propertiesStruct = requeststruct.getFieldsOrThrow("config-assign-properties").getStructValue();
+
+ assertThat(propertiesStruct.getFieldsOrThrow("pnf-name").getStringValue()).matches("PNFDemo");
+ assertThat(propertiesStruct.getFieldsOrThrow("service-model-uuid").getStringValue()).matches("f2daaac6-5017-4e1e-96c8-6a27dfbe1421");
+ assertThat(propertiesStruct.getFieldsOrThrow("pnf-customization-uuid").getStringValue()).matches("68dc9a92-214c-11e7-93ae-92361f002680");
+ }
+
+ private void checkConfigDeploy(ExecutionServiceInput executionServiceInput) {
+ ActionIdentifiers actionIdentifiers = executionServiceInput.getActionIdentifiers();
+
+ /**
+ * the fields of actionIdentifiers should match the one in the response/createVcpeResCustServiceSimplifiedTest_catalogdb.json.
+ */
+ assertThat(actionIdentifiers.getBlueprintName()).matches("test_configuration_restconf");
+ assertThat(actionIdentifiers.getBlueprintVersion()).matches("1.0.0");
+ assertThat(actionIdentifiers.getActionName()).matches("config-deploy");
+ assertThat(actionIdentifiers.getMode()).matches("async");
+
+ CommonHeader commonHeader = executionServiceInput.getCommonHeader();
+ assertThat(commonHeader.getOriginatorId()).matches("SO");
+ assertThat(commonHeader.getRequestId()).matches(msoRequestId);
+
+ Struct payload = executionServiceInput.getPayload();
+ Struct requeststruct = payload.getFieldsOrThrow("config-deploy-request").getStructValue();
+
+ assertThat(requeststruct.getFieldsOrThrow("resolution-key").getStringValue()).matches("PNFDemo");
+ Struct propertiesStruct = requeststruct.getFieldsOrThrow("config-deploy-properties").getStructValue();
+
+ assertThat(propertiesStruct.getFieldsOrThrow("pnf-name").getStringValue()).matches("PNFDemo");
+ assertThat(propertiesStruct.getFieldsOrThrow("service-model-uuid").getStringValue()).matches("f2daaac6-5017-4e1e-96c8-6a27dfbe1421");
+ assertThat(propertiesStruct.getFieldsOrThrow("pnf-customization-uuid").getStringValue()).matches("68dc9a92-214c-11e7-93ae-92361f002680");
+
+ /**
+ * IP addresses match the OAM ip addresses from AAI.
+ */
+ assertThat(propertiesStruct.getFieldsOrThrow("pnf-ipv4-address").getStringValue()).matches("1.1.1.1");
+ assertThat(propertiesStruct.getFieldsOrThrow("pnf-ipv6-address").getStringValue()).matches("::/128");
}
/**
+ " \"pnf-id\":\"testtest\",\n"
+ " \"in-maint\":true,\n"
+ " \"resource-version\":\"1541720264047\",\n"
- + " \"pnf-ipv4-address\":\"1.1.1.1\",\n"
- + " \"pnf-ipv6-address\":\"ipv6\"\n"
+ + " \"ipaddress-v4-oam\":\"1.1.1.1\",\n"
+ + " \"ipaddress-v6-oam\":\"::/128\"\n"
+ "}";
/**
"/pnfResourceCustomization/search/findPnfResourceCustomizationByModelUuid?SERVICE_MODEL_UUID=f2daaac6-5017-4e1e-96c8-6a27dfbe1421"))
.willReturn(okJson(catalogdbClientResponse)));
}
+
+ private void mockRequestDb() {
+ wireMockServer.stubFor(post(urlEqualTo("/dbadapters/RequestsDbAdapter")).willReturn(ok()));
+ }
+
}