diff options
author | Jorge Hernandez <jh1730@att.com> | 2018-01-22 14:31:03 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2018-01-22 14:31:03 +0000 |
commit | 3c7c997c6f081d749bc0973d1249a18356280e71 (patch) | |
tree | 9ec1ed93580aca36e95f4798a6c3be9201b5efef | |
parent | 5f08b93d6642381eb0578ca2048951ac766bc33d (diff) | |
parent | 421a0843285f262b5cfc907ebd804ecd06d3fbe3 (diff) |
Merge "Fix Tech Debt/JUnit on VFC POJOs"
20 files changed, 996 insertions, 196 deletions
diff --git a/controlloop/common/actors/actor.vfc/src/main/java/org/onap/policy/controlloop/actor/vfc/VFCActorServiceProvider.java b/controlloop/common/actors/actor.vfc/src/main/java/org/onap/policy/controlloop/actor/vfc/VFCActorServiceProvider.java index dae60cb82..71c7cea25 100644 --- a/controlloop/common/actors/actor.vfc/src/main/java/org/onap/policy/controlloop/actor/vfc/VFCActorServiceProvider.java +++ b/controlloop/common/actors/actor.vfc/src/main/java/org/onap/policy/controlloop/actor/vfc/VFCActorServiceProvider.java @@ -82,19 +82,19 @@ public class VFCActorServiceProvider implements Actor { } serviceInstance = tempVnfResp.getServiceId(); } - request.nsInstanceId = serviceInstance; - request.requestId = onset.getRequestID(); - request.healRequest = new VFCHealRequest(); - request.healRequest.vnfInstanceId = onset.getAAI().get("generic-vnf.vnf-id"); - request.healRequest.cause = operation.getMessage(); - request.healRequest.additionalParams = new VFCHealAdditionalParams(); + request.setNSInstanceId(serviceInstance); + request.setRequestId(onset.getRequestID()); + request.setHealRequest(new VFCHealRequest()); + request.getHealRequest().setVnfInstanceId(onset.getAAI().get("generic-vnf.vnf-id")); + request.getHealRequest().setCause(operation.getMessage()); + request.getHealRequest().setAdditionalParams(new VFCHealAdditionalParams()); switch (policy.getRecipe().toLowerCase()) { case "restart": - request.healRequest.additionalParams.action = "restartvm"; - request.healRequest.additionalParams.actionInfo = new VFCHealActionVmInfo(); - request.healRequest.additionalParams.actionInfo.vmid = onset.getAAI().get("vserver.vserver-id"); - request.healRequest.additionalParams.actionInfo.vmname = onset.getAAI().get("vserver.vserver-name"); + request.getHealRequest().getAdditionalParams().setAction("restartvm"); + request.getHealRequest().getAdditionalParams().setActionInfo(new VFCHealActionVmInfo()); + request.getHealRequest().getAdditionalParams().getActionInfo().setVmid(onset.getAAI().get("vserver.vserver-id")); + request.getHealRequest().getAdditionalParams().getActionInfo().setVmname(onset.getAAI().get("vserver.vserver-name")); break; default: return null; diff --git a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java index 8160f76fa..47275c6da 100644 --- a/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java +++ b/controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java @@ -448,7 +448,7 @@ public class ControlLoopOperationManager implements Serializable { } else if (response instanceof VFCResponse) { VFCResponse vfcResponse = (VFCResponse) response; - if (vfcResponse.responseDescriptor.getStatus().equalsIgnoreCase("finished")) { + if (vfcResponse.getResponseDescriptor().getStatus().equalsIgnoreCase("finished")) { // // Consider it as success // diff --git a/controlloop/common/model-impl/vfc/pom.xml b/controlloop/common/model-impl/vfc/pom.xml index 5d931aa74..abccdd8ff 100644 --- a/controlloop/common/model-impl/vfc/pom.xml +++ b/controlloop/common/model-impl/vfc/pom.xml @@ -17,9 +17,9 @@ --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> + <modelVersion>4.0.0</modelVersion> - <artifactId>vfc</artifactId> + <artifactId>vfc</artifactId> <parent> <groupId>org.onap.policy.drools-applications</groupId> @@ -27,35 +27,47 @@ <version>1.2.0-SNAPSHOT</version> </parent> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.12</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>com.google.code.gson</groupId> - <artifactId>gson</artifactId> - <version>2.5</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.onap.policy.drools-applications</groupId> - <artifactId>rest</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.12</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>2.13.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.awaitility</groupId> + <artifactId>awaitility</artifactId> + <version>3.0.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>com.google.code.gson</groupId> + <artifactId>gson</artifactId> + <version>2.5</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.onap.policy.drools-applications</groupId> + <artifactId>rest</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> <groupId>org.drools</groupId> <artifactId>drools-core</artifactId> <version>6.5.0.Final</version> <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.onap.policy.drools-pdp</groupId> - <artifactId>policy-management</artifactId> - <version>${project.version}</version> - <scope>provided</scope> - </dependency> - </dependencies> + </dependency> + <dependency> + <groupId>org.onap.policy.drools-pdp</groupId> + <artifactId>policy-management</artifactId> + <version>${project.version}</version> + <scope>provided</scope> + </dependency> + </dependencies> </project> diff --git a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealActionVmInfo.java b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealActionVmInfo.java index 144b97133..dd1ccfdd5 100644 --- a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealActionVmInfo.java +++ b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealActionVmInfo.java @@ -27,13 +27,28 @@ public class VFCHealActionVmInfo implements Serializable { private static final long serialVersionUID = 3208673205100673119L; @SerializedName("vmid")
- public String vmid;
+ private String vmid;
@SerializedName("vmname")
- public String vmname;
-
+ private String vmname;
public VFCHealActionVmInfo() {
+ // Default constructor for VFCHealActionVmInfo
+ }
+
+ public String getVmid() {
+ return vmid;
+ }
+
+ public void setVmid(String vmid) {
+ this.vmid = vmid;
+ }
+
+ public String getVmname() {
+ return vmname;
}
+ public void setVmname(String vmname) {
+ this.vmname = vmname;
+ }
}
diff --git a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealAdditionalParams.java b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealAdditionalParams.java index a4647cb9f..4ffdb5b31 100644 --- a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealAdditionalParams.java +++ b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealAdditionalParams.java @@ -27,12 +27,28 @@ public class VFCHealAdditionalParams implements Serializable { private static final long serialVersionUID = 2656694137285096191L; @SerializedName("action")
- public String action;
+ private String action;
@SerializedName("actionvminfo")
- public VFCHealActionVmInfo actionInfo;
+ private VFCHealActionVmInfo actionInfo;
public VFCHealAdditionalParams() {
+ // Default constructor for VFCHealAdditionalParams
}
+ public String getAction() {
+ return action;
+ }
+
+ public void setAction(String action) {
+ this.action = action;
+ }
+
+ public VFCHealActionVmInfo getActionInfo() {
+ return actionInfo;
+ }
+
+ public void setActionInfo(VFCHealActionVmInfo actionInfo) {
+ this.actionInfo = actionInfo;
+ }
}
diff --git a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealRequest.java b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealRequest.java index a19f72bce..787e341de 100644 --- a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealRequest.java +++ b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealRequest.java @@ -27,15 +27,39 @@ public class VFCHealRequest implements Serializable { private static final long serialVersionUID = -7341931593089709247L; @SerializedName("vnfInstanceId")
- public String vnfInstanceId;
+ private String vnfInstanceId;
@SerializedName("cause")
- public String cause;
+ private String cause;
@SerializedName("additionalParams")
- public VFCHealAdditionalParams additionalParams;
+ private VFCHealAdditionalParams additionalParams;
public VFCHealRequest() {
+ // Default constructor for VFCHealRequest
}
+ public String getVnfInstanceId() {
+ return vnfInstanceId;
+ }
+
+ public void setVnfInstanceId(String vnfInstanceId) {
+ this.vnfInstanceId = vnfInstanceId;
+ }
+
+ public String getCause() {
+ return cause;
+ }
+
+ public void setCause(String cause) {
+ this.cause = cause;
+ }
+
+ public VFCHealAdditionalParams getAdditionalParams() {
+ return additionalParams;
+ }
+
+ public void setAdditionalParams(VFCHealAdditionalParams additionalParams) {
+ this.additionalParams = additionalParams;
+ }
}
diff --git a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCManager.java b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCManager.java index c951984bd..7146e43ca 100644 --- a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCManager.java +++ b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCManager.java @@ -32,116 +32,138 @@ import org.slf4j.LoggerFactory; import com.google.gson.JsonSyntaxException; public final class VFCManager implements Runnable { - - private String vfcUrlBase; - private String username; - private String password; - private VFCRequest vfcRequest; - WorkingMemory workingMem; - private static final Logger logger = LoggerFactory.getLogger(VFCManager.class); - private static final Logger netLogger = LoggerFactory.getLogger(org.onap.policy.drools.event.comm.Topic.NETWORK_LOGGER); - - public VFCManager(WorkingMemory wm, VFCRequest request) { - workingMem = wm; - vfcRequest = request; - - /* - * TODO: What if these are null? - */ - String url = PolicyEngine.manager.getEnvironmentProperty("vfc.url"); - String username = PolicyEngine.manager.getEnvironmentProperty("vfc.username"); - String password = PolicyEngine.manager.getEnvironmentProperty("vfc.password"); - - setVFCParams(url, username, password); - - } - - public void setVFCParams(String baseUrl, String name, String pwd) { - vfcUrlBase = baseUrl + "/api/nslcm/v1"; - username = name; - password = pwd; - } - - @Override - public void run() { - - Map<String, String> headers = new HashMap<String, String>(); - Pair<Integer, String> httpDetails; - - VFCResponse responseError = new VFCResponse(); - responseError.responseDescriptor = new VFCResponseDescriptor(); - responseError.responseDescriptor.status = "error"; - - headers.put("Accept", "application/json"); - String vfcUrl = vfcUrlBase + "/ns/" + vfcRequest.nsInstanceId + "/heal"; - try { - String vfcRequestJson = Serialization.gsonPretty.toJson(vfcRequest); - netLogger.info("[OUT|{}|{}|]{}{}", "VFC", vfcUrl, System.lineSeparator(), vfcRequestJson); - - httpDetails = new RESTManager().post(vfcUrl, username, password, headers, - "application/json", vfcRequestJson); - } catch (Exception e) { - logger.error(e.getMessage(), e); - workingMem.insert(responseError); - return; - } - - if (httpDetails == null) { - workingMem.insert(responseError); - return; - } - - if (httpDetails.a == 202) { - try { - VFCResponse response = Serialization.gsonPretty.fromJson(httpDetails.b, VFCResponse.class); - netLogger.info("[IN|{}|{}|]{}{}", "VFC", vfcUrl, System.lineSeparator(), httpDetails.b); - String body = Serialization.gsonPretty.toJson(response); - logger.debug("Response to VFC Heal post:"); - logger.debug(body); - - String jobId = response.jobId; - int attemptsLeft = 20; - - String urlGet = vfcUrlBase + "/jobs/" + jobId; - VFCResponse responseGet = null; - - while (attemptsLeft-- > 0) { - - netLogger.info("[OUT|{}|{}|]", "VFC", urlGet); - Pair<Integer, String> httpDetailsGet = new RESTManager().get(urlGet, username, password, headers); - responseGet = Serialization.gsonPretty.fromJson(httpDetailsGet.b, VFCResponse.class); - netLogger.info("[IN|{}|{}|]{}{}", "VFC", urlGet, System.lineSeparator(), httpDetailsGet.b); - responseGet.requestId = vfcRequest.requestId.toString(); - body = Serialization.gsonPretty.toJson(responseGet); - logger.debug("Response to VFC Heal get:"); - logger.debug(body); - - if (httpDetailsGet.a == 200) { - if (responseGet.responseDescriptor.status.equalsIgnoreCase("finished") || - responseGet.responseDescriptor.status.equalsIgnoreCase("error")) { - logger.debug("VFC Heal Status {}", responseGet.responseDescriptor.status); - workingMem.insert(responseGet); - break; - } - } - Thread.sleep(20000); - } - if ((attemptsLeft <= 0) - && (responseGet != null) - && (responseGet.responseDescriptor != null) - && (responseGet.responseDescriptor.status != null) - && (!responseGet.responseDescriptor.status.isEmpty())) { - logger.debug("VFC timeout. Status: ({})", responseGet.responseDescriptor.status); - workingMem.insert(responseGet); - } - } catch (JsonSyntaxException e) { - logger.error("Failed to deserialize into VFCResponse {}", e.getLocalizedMessage(), e); - } catch (InterruptedException e) { - logger.error("Interrupted exception: {}", e.getLocalizedMessage(), e); - Thread.currentThread().interrupt(); - } - } else { - logger.warn("VFC Heal Restcall failed"); - } - } + private static final String SYSTEM_LS = System.lineSeparator(); + + private String vfcUrlBase; + private String username; + private String password; + private VFCRequest vfcRequest; + private WorkingMemory workingMem; + private static final Logger logger = LoggerFactory.getLogger(VFCManager.class); + private static final Logger netLogger = LoggerFactory.getLogger(org.onap.policy.drools.event.comm.Topic.NETWORK_LOGGER); + + // The REST manager used for processing REST calls for this VFC manager + private RESTManager restManager; + + public VFCManager(WorkingMemory wm, VFCRequest request) { + if (wm == null || request == null) { + throw new IllegalArgumentException("the parameters \"wm\" and \"request\" on the VFCManager constructor may not be null"); + } + workingMem = wm; + vfcRequest = request; + + restManager = new RESTManager(); + + setVFCParams(getPEManagerEnvProperty("vfc.url"), getPEManagerEnvProperty("vfc.username"), getPEManagerEnvProperty("vfc.password")); + } + + public void setVFCParams(String baseUrl, String name, String pwd) { + vfcUrlBase = baseUrl + "/api/nslcm/v1"; + username = name; + password = pwd; + } + + @Override + public void run() { + Map<String, String> headers = new HashMap<>(); + Pair<Integer, String> httpDetails; + + VFCResponse responseError = new VFCResponse(); + responseError.setResponseDescriptor(new VFCResponseDescriptor()); + responseError.getResponseDescriptor().setStatus("error"); + + headers.put("Accept", "application/json"); + String vfcUrl = vfcUrlBase + "/ns/" + vfcRequest.getNSInstanceId() + "/heal"; + try { + String vfcRequestJson = Serialization.gsonPretty.toJson(vfcRequest); + netLogger.info("[OUT|{}|{}|]{}{}", "VFC", vfcUrl, SYSTEM_LS, vfcRequestJson); + + httpDetails = restManager.post(vfcUrl, username, password, headers, "application/json", vfcRequestJson); + } catch (Exception e) { + logger.error(e.getMessage(), e); + workingMem.insert(responseError); + return; + } + + if (httpDetails == null) { + workingMem.insert(responseError); + return; + } + + if (httpDetails.a != 202) { + logger.warn("VFC Heal Restcall failed"); + return; + } + + try { + VFCResponse response = Serialization.gsonPretty.fromJson(httpDetails.b, VFCResponse.class); + netLogger.info("[IN|{}|{}|]{}{}", "VFC", vfcUrl, SYSTEM_LS, httpDetails.b); + String body = Serialization.gsonPretty.toJson(response); + logger.debug("Response to VFC Heal post:"); + logger.debug(body); + + String jobId = response.getJobId(); + int attemptsLeft = 20; + + String urlGet = vfcUrlBase + "/jobs/" + jobId; + VFCResponse responseGet = null; + + while (attemptsLeft-- > 0) { + netLogger.info("[OUT|{}|{}|]", "VFC", urlGet); + Pair<Integer, String> httpDetailsGet = restManager.get(urlGet, username, password, headers); + responseGet = Serialization.gsonPretty.fromJson(httpDetailsGet.b, VFCResponse.class); + netLogger.info("[IN|{}|{}|]{}{}", "VFC", urlGet, SYSTEM_LS, httpDetailsGet.b); + responseGet.setRequestId(vfcRequest.getRequestId().toString()); + body = Serialization.gsonPretty.toJson(responseGet); + logger.debug("Response to VFC Heal get:"); + logger.debug(body); + + String responseStatus = responseGet.getResponseDescriptor().getStatus(); + if (httpDetailsGet.a == 200 && (responseStatus.equalsIgnoreCase("finished") || responseStatus.equalsIgnoreCase("error"))) { + logger.debug("VFC Heal Status {}", responseGet.getResponseDescriptor().getStatus()); + workingMem.insert(responseGet); + break; + } + Thread.sleep(20000); + } + if ((attemptsLeft <= 0) + && (responseGet != null) + && (responseGet.getResponseDescriptor() != null) + && (responseGet.getResponseDescriptor().getStatus() != null) + && (!responseGet.getResponseDescriptor().getStatus().isEmpty())) { + logger.debug("VFC timeout. Status: ({})", responseGet.getResponseDescriptor().getStatus()); + workingMem.insert(responseGet); + } + } catch (JsonSyntaxException e) { + logger.error("Failed to deserialize into VFCResponse {}", e.getLocalizedMessage(), e); + } catch (InterruptedException e) { + logger.error("Interrupted exception: {}", e.getLocalizedMessage(), e); + Thread.currentThread().interrupt(); + } catch (Exception e) { + logger.error("Unknown error deserializing into VFCResponse {}", e.getLocalizedMessage(), e); + } + } + + /** + * Protected setter for rest manager to allow mocked rest manager to be used for testing + * @param restManager the test REST manager + */ + protected void setRestManager(final RESTManager restManager) { + this.restManager = restManager; + } + + /** + * This method reads and validates environmental properties coming from the policy engine. Null properties cause + * an {@link IllegalArgumentException} runtime exception to be thrown + * @param string the name of the parameter to retrieve + * @return the property value + */ + + private String getPEManagerEnvProperty(String enginePropertyName) { + String enginePropertyValue = PolicyEngine.manager.getEnvironmentProperty(enginePropertyName); + if (enginePropertyValue == null) { + throw new IllegalArgumentException("The value of policy engine manager environment property \"" + enginePropertyName + "\" may not be null"); + } + return enginePropertyValue; + } } diff --git a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCRequest.java b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCRequest.java index 89c9b08ff..78802d641 100644 --- a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCRequest.java +++ b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCRequest.java @@ -27,13 +27,37 @@ public class VFCRequest implements Serializable { private static final long serialVersionUID = 3736300970326332512L; // These fields are not serialized and not part of JSON - public transient String nsInstanceId; - public transient UUID requestId; + private transient String nsInstanceId; + private transient UUID requestId; @SerializedName("healVnfData") - public VFCHealRequest healRequest; + private VFCHealRequest healRequest; public VFCRequest() { + // Default constructor for VFCRequest } + public String getNSInstanceId() { + return nsInstanceId; + } + + public void setNSInstanceId(String nsInstanceId) { + this.nsInstanceId = nsInstanceId; + } + + public UUID getRequestId() { + return requestId; + } + + public void setRequestId(UUID requestId) { + this.requestId = requestId; + } + + public VFCHealRequest getHealRequest() { + return healRequest; + } + + public void setHealRequest(VFCHealRequest healRequest) { + this.healRequest = healRequest; + } } diff --git a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCResponse.java b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCResponse.java index 5d6efa0ce..38b73b306 100644 --- a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCResponse.java +++ b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCResponse.java @@ -27,14 +27,38 @@ public class VFCResponse implements Serializable { private static final long serialVersionUID = 9151443891238218455L; @SerializedName("jobId") - public String jobId; + private String jobId; @SerializedName("responseDescriptor") - public VFCResponseDescriptor responseDescriptor; + private VFCResponseDescriptor responseDescriptor; - public transient String requestId; + private transient String requestId; public VFCResponse() { + // Default constructor for VFCResponse } + public String getJobId() { + return jobId; + } + + public void setJobId(String jobId) { + this.jobId = jobId; + } + + public VFCResponseDescriptor getResponseDescriptor() { + return responseDescriptor; + } + + public void setResponseDescriptor(VFCResponseDescriptor responseDescriptor) { + this.responseDescriptor = responseDescriptor; + } + + public String getRequestId() { + return requestId; + } + + public void setRequestId(String requestId) { + this.requestId = requestId; + } } diff --git a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCResponseDescriptor.java b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCResponseDescriptor.java index 62c61a7f6..81eb3bc4d 100644 --- a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCResponseDescriptor.java +++ b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCResponseDescriptor.java @@ -27,28 +27,72 @@ public class VFCResponseDescriptor implements Serializable { private static final long serialVersionUID = 6827782899144150158L; @SerializedName("progress") - String progress; + private String progress; @SerializedName("status") - String status; + private String status; @SerializedName("statusDescription") - String statusDescription; + private String statusDescription; @SerializedName("errorCode") - String errorCode; + private String errorCode; @SerializedName("responseId") - String responseId; + private String responseId; @SerializedName("responseHistoryList") public List<VFCResponseDescriptor> responseHistoryList; public VFCResponseDescriptor() { + // Default constructor for VFCResponseDescriptor } public String getStatus() { return status; } + public String getProgress() { + return progress; + } + + public void setProgress(String progress) { + this.progress = progress; + } + + public String getStatusDescription() { + return statusDescription; + } + + public void setStatusDescription(String statusDescription) { + this.statusDescription = statusDescription; + } + + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + public String getResponseId() { + return responseId; + } + + public void setResponseId(String responseId) { + this.responseId = responseId; + } + + public List<VFCResponseDescriptor> getResponseHistoryList() { + return responseHistoryList; + } + + public void setResponseHistoryList(List<VFCResponseDescriptor> responseHistoryList) { + this.responseHistoryList = responseHistoryList; + } + + public void setStatus(String status) { + this.status = status; + } } diff --git a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/util/Serialization.java b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/util/Serialization.java index 655085288..dc8662b84 100644 --- a/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/util/Serialization.java +++ b/controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/util/Serialization.java @@ -22,8 +22,10 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; public final class Serialization { + private Serialization() { + } - final static public Gson gsonPretty = new GsonBuilder().disableHtmlEscaping() + public static final Gson gsonPretty = new GsonBuilder().disableHtmlEscaping() .setPrettyPrinting() .create(); diff --git a/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestDemo.java b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestDemo.java index fd59325d0..96a62bf9f 100644 --- a/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestDemo.java +++ b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestDemo.java @@ -29,45 +29,45 @@ public class TestDemo { public void test() { VFCRequest request = new VFCRequest(); - request.nsInstanceId = "100"; - request.healRequest = new VFCHealRequest(); - request.healRequest.vnfInstanceId = "1"; - request.healRequest.cause = "vm is down"; + request.setNSInstanceId("100"); + request.setHealRequest(new VFCHealRequest()); + request.getHealRequest().setVnfInstanceId("1"); + request.getHealRequest().setCause("vm is down"); - request.healRequest.additionalParams = new VFCHealAdditionalParams(); - request.healRequest.additionalParams.action = "restartvm"; + request.getHealRequest().setAdditionalParams(new VFCHealAdditionalParams()); + request.getHealRequest().getAdditionalParams().setAction("restartvm"); - request.healRequest.additionalParams.actionInfo = new VFCHealActionVmInfo(); - request.healRequest.additionalParams.actionInfo.vmid = "33"; - request.healRequest.additionalParams.actionInfo.vmname = "xgw-smp11"; + request.getHealRequest().getAdditionalParams().setActionInfo(new VFCHealActionVmInfo()); + request.getHealRequest().getAdditionalParams().getActionInfo().setVmid("33"); + request.getHealRequest().getAdditionalParams().getActionInfo().setVmname("xgw-smp11"); String body = Serialization.gsonPretty.toJson(request); System.out.println(body); VFCResponse response = new VFCResponse(); - response.jobId = "1"; + response.setJobId("1"); body = Serialization.gsonPretty.toJson(response); System.out.println(body); - response.responseDescriptor = new VFCResponseDescriptor(); - response.responseDescriptor.progress = "40"; - response.responseDescriptor.status = "processing"; - response.responseDescriptor.statusDescription = "OMC VMs are decommissioned in VIM"; - response.responseDescriptor.errorCode = null; - response.responseDescriptor.responseId = "42"; + response.setResponseDescriptor(new VFCResponseDescriptor()); + response.getResponseDescriptor().setProgress("40"); + response.getResponseDescriptor().setStatus("processing"); + response.getResponseDescriptor().setStatusDescription("OMC VMs are decommissioned in VIM"); + response.getResponseDescriptor().setErrorCode(null); + response.getResponseDescriptor().setResponseId("42"); body = Serialization.gsonPretty.toJson(response); System.out.println(body); VFCResponseDescriptor responseDescriptor = new VFCResponseDescriptor(); - responseDescriptor.progress = "20"; - responseDescriptor.status = "processing"; - responseDescriptor.statusDescription = "OMC VMs are decommissioned in VIM"; - responseDescriptor.errorCode = null; - responseDescriptor.responseId = "11"; - - response.responseDescriptor.responseHistoryList = new LinkedList<>(); - response.responseDescriptor.responseHistoryList.add(responseDescriptor); + responseDescriptor.setProgress("20"); + responseDescriptor.setStatus("processing"); + responseDescriptor.setStatusDescription("OMC VMs are decommissioned in VIM"); + responseDescriptor.setErrorCode(null); + responseDescriptor.setResponseId("11"); + + response.getResponseDescriptor().responseHistoryList = new LinkedList<>(); + response.getResponseDescriptor().responseHistoryList.add(responseDescriptor); body = Serialization.gsonPretty.toJson(response); System.out.println(body); diff --git a/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealActionVmInfo.java b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealActionVmInfo.java new file mode 100644 index 000000000..ab57f6415 --- /dev/null +++ b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealActionVmInfo.java @@ -0,0 +1,45 @@ +/*- + * ============LICENSE_START======================================================= + * vfc + * ================================================================================ + * Copyright (C) 2018 Ericsson. 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.vfc; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class TestVFCHealActionVmInfo { + + @Test + public void testVFCHealActionVmInfo() { + VFCHealActionVmInfo actionInfo = new VFCHealActionVmInfo(); + assertNotNull(actionInfo); + assertNotEquals(0, actionInfo.hashCode()); + + String vmid = "ECity"; + actionInfo.setVmid(vmid); + assertEquals(vmid, actionInfo.getVmid()); + + String vmName = "Emerald City"; + actionInfo.setVmname(vmName); + assertEquals(vmName, actionInfo.getVmname()); + + assertNotEquals(0, actionInfo.hashCode()); + } +} diff --git a/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealAdditionalParams.java b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealAdditionalParams.java new file mode 100644 index 000000000..7fa8fd741 --- /dev/null +++ b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealAdditionalParams.java @@ -0,0 +1,45 @@ +/*- + * ============LICENSE_START======================================================= + * vfc + * ================================================================================ + * Copyright (C) 2018 Ericsson. 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.vfc; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class TestVFCHealAdditionalParams { + + @Test + public void testVFCHealAdditionalParameters() { + VFCHealAdditionalParams additionalParams = new VFCHealAdditionalParams(); + assertNotNull(additionalParams); + assertNotEquals(0, additionalParams.hashCode()); + + String action = "Go Home"; + additionalParams.setAction(action); + assertEquals(action, additionalParams.getAction()); + + VFCHealActionVmInfo actionInfo = new VFCHealActionVmInfo(); + additionalParams.setActionInfo(actionInfo ); + assertEquals(actionInfo, additionalParams.getActionInfo()); + + assertNotEquals(0, additionalParams.hashCode()); + } +} diff --git a/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealRequest.java b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealRequest.java new file mode 100644 index 000000000..5a78bfb0c --- /dev/null +++ b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealRequest.java @@ -0,0 +1,49 @@ +/*- + * ============LICENSE_START======================================================= + * vfc + * ================================================================================ + * Copyright (C) 2018 Ericsson. 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.vfc; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class TestVFCHealRequest { + + @Test + public void testVFCHealRequest() { + VFCHealRequest request = new VFCHealRequest(); + assertNotNull(request); + assertNotEquals(0, request.hashCode()); + + String vnfInstanceId = "Go To Oz"; + request.setVnfInstanceId(vnfInstanceId); + assertEquals(vnfInstanceId, request.getVnfInstanceId()); + + String cause = "West Witch"; + request.setCause(cause); + assertEquals(cause, request.getCause()); + + VFCHealAdditionalParams additionalParams= new VFCHealAdditionalParams(); + request.setAdditionalParams(additionalParams); + assertEquals(additionalParams, request.getAdditionalParams()); + + assertNotEquals(0, request.hashCode()); + } +} diff --git a/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCManager.java b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCManager.java new file mode 100644 index 000000000..9260430d4 --- /dev/null +++ b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCManager.java @@ -0,0 +1,281 @@ +/*- + * ============LICENSE_START======================================================= + * vfc + * ================================================================================ + * Copyright (C) 2018 Ericsson. 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.policy.vfc; + +import static org.junit.Assert.*; +import static org.mockito.ArgumentMatchers.anyMap; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.startsWith; +import static org.mockito.Mockito.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import org.drools.core.WorkingMemory; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.onap.policy.drools.system.PolicyEngine; +import org.onap.policy.rest.RESTManager; +import org.onap.policy.rest.RESTManager.Pair; +import org.onap.policy.vfc.util.Serialization; + +public class TestVFCManager { + private static WorkingMemory mockedWorkingMemory; + + private RESTManager mockedRESTManager; + + private Pair<Integer, String> httpResponsePutOK; + private Pair<Integer, String> httpResponseGetOK; + private Pair<Integer, String> httpResponseBadResponse; + private Pair<Integer, String> httpResponseErr; + + private VFCRequest request; + private VFCResponse response; + + @BeforeClass + public static void beforeTestVFCManager() { + mockedWorkingMemory = mock(WorkingMemory.class); + } + + @Before + public void setupMockedRest() { + mockedRESTManager = mock(RESTManager.class); + + httpResponsePutOK = mockedRESTManager.new Pair<>(202, Serialization.gsonPretty.toJson(response)); + httpResponseGetOK = mockedRESTManager.new Pair<>(200, Serialization.gsonPretty.toJson(response)); + httpResponseBadResponse = mockedRESTManager.new Pair<>(202, Serialization.gsonPretty.toJson(null)); + httpResponseErr = mockedRESTManager.new Pair<>(200, null); + } + + @Before + public void createRequestAndResponse() { + VFCHealActionVmInfo actionInfo = new VFCHealActionVmInfo(); + actionInfo.setVmid("TheWizard"); + actionInfo.setVmname("The Wizard of Oz"); + + VFCHealAdditionalParams additionalParams = new VFCHealAdditionalParams(); + additionalParams.setAction("Go Home"); + additionalParams.setActionInfo(actionInfo); + + VFCHealRequest healRequest = new VFCHealRequest(); + healRequest.setAdditionalParams(additionalParams); + healRequest.setCause("WestWitch"); + healRequest.setVnfInstanceId("EmeraldCity"); + + UUID requestId = UUID.randomUUID(); + request = new VFCRequest(); + request.setHealRequest(healRequest); + request.setNSInstanceId("Dorothy"); + request.setRequestId(requestId); + + List<VFCResponseDescriptor> responseHistoryList = new ArrayList<>();; + + VFCResponseDescriptor responseDescriptor = new VFCResponseDescriptor(); + responseDescriptor.setErrorCode("1234"); + responseDescriptor.setProgress("Follow The Yellow Brick Road"); + responseDescriptor.setResponseHistoryList(responseHistoryList); + responseDescriptor.setResponseId(UUID.randomUUID().toString()); + responseDescriptor.setStatus("finished"); + responseDescriptor.setStatusDescription("There's no place like home"); + + response = new VFCResponse(); + response.setJobId("1234"); + response.setRequestId(request.getRequestId().toString()); + response.setResponseDescriptor(responseDescriptor); + } + + @Test + public void testVFCInitiation() { + try { + new VFCManager(null, null); + fail("test should throw an exception here"); + } + catch (IllegalArgumentException e) { + assertEquals("the parameters \"wm\" and \"request\" on the VFCManager constructor may not be null", e.getMessage()); + } + + try { + new VFCManager(mockedWorkingMemory, null); + fail("test should throw an exception here"); + } + catch (IllegalArgumentException e) { + assertEquals("the parameters \"wm\" and \"request\" on the VFCManager constructor may not be null", e.getMessage()); + } + + try { + new VFCManager(mockedWorkingMemory, request); + fail("test should throw an exception here"); + } + catch (IllegalArgumentException e) { + assertEquals("The value of policy engine manager environment property \"vfc.url\" may not be null", e.getMessage()); + } + + PolicyEngine.manager.getEnvironment().put("vfc.url", "http://somewhere.over.the.rainbow"); + try { + new VFCManager(mockedWorkingMemory, request); + fail("test should throw an exception here"); + } + catch (IllegalArgumentException e) { + assertEquals("The value of policy engine manager environment property \"vfc.username\" may not be null", e.getMessage()); + } + + PolicyEngine.manager.getEnvironment().put("vfc.username", "Dorothy"); + try { + new VFCManager(mockedWorkingMemory, request); + fail("test should throw an exception here"); + } + catch (IllegalArgumentException e) { + assertEquals("The value of policy engine manager environment property \"vfc.password\" may not be null", e.getMessage()); + } + + PolicyEngine.manager.getEnvironment().put("vfc.password", "Toto"); + assertNotNull(new VFCManager(mockedWorkingMemory, request)); + + PolicyEngine.manager.getEnvironment().remove("vfc.password"); + PolicyEngine.manager.getEnvironment().remove("vfc.username"); + PolicyEngine.manager.getEnvironment().remove("vfc.url"); + } + + @Test + public void testVFCExecutionException() throws InterruptedException { + PolicyEngine.manager.getEnvironment().put("vfc.url", "http://somewhere.over.the.rainbow"); + PolicyEngine.manager.getEnvironment().put("vfc.username", "Dorothy"); + PolicyEngine.manager.getEnvironment().put("vfc.password", "Exception"); + + VFCManager manager = new VFCManager(mockedWorkingMemory, request); + manager.setRestManager(mockedRESTManager); + + Thread managerThread = new Thread(manager); + managerThread.start(); + + when(mockedRESTManager.post(startsWith("http://somewhere.over.the.rainbow"), eq("Dorothy"), eq("Exception"), anyMap(), anyString(), anyString())) + .thenThrow(new RuntimeException("OzException")); + + while (managerThread.isAlive()) { + Thread.sleep(100); + } + + PolicyEngine.manager.getEnvironment().remove("vfc.password"); + PolicyEngine.manager.getEnvironment().remove("vfc.username"); + PolicyEngine.manager.getEnvironment().remove("vfc.url"); + } + + @Test + public void testVFCExecutionNull() throws InterruptedException { + PolicyEngine.manager.getEnvironment().put("vfc.url", "http://somewhere.over.the.rainbow"); + PolicyEngine.manager.getEnvironment().put("vfc.username", "Dorothy"); + PolicyEngine.manager.getEnvironment().put("vfc.password", "Null"); + + VFCManager manager = new VFCManager(mockedWorkingMemory, request); + manager.setRestManager(mockedRESTManager); + + Thread managerThread = new Thread(manager); + managerThread.start(); + + when(mockedRESTManager.post(startsWith("http://somewhere.over.the.rainbow"), eq("Dorothy"), eq("Null"), anyMap(), anyString(), anyString())) + .thenReturn(null); + + while (managerThread.isAlive()) { + Thread.sleep(100); + } + + PolicyEngine.manager.getEnvironment().remove("vfc.password"); + PolicyEngine.manager.getEnvironment().remove("vfc.username"); + PolicyEngine.manager.getEnvironment().remove("vfc.url"); + } + + @Test + public void testVFCExecutionError0() throws InterruptedException { + PolicyEngine.manager.getEnvironment().put("vfc.url", "http://somewhere.over.the.rainbow"); + PolicyEngine.manager.getEnvironment().put("vfc.username", "Dorothy"); + PolicyEngine.manager.getEnvironment().put("vfc.password", "Error0"); + + VFCManager manager = new VFCManager(mockedWorkingMemory, request); + manager.setRestManager(mockedRESTManager); + + Thread managerThread = new Thread(manager); + managerThread.start(); + + when(mockedRESTManager.post(startsWith("http://somewhere.over.the.rainbow"), eq("Dorothy"), eq("Error0"), anyMap(), anyString(), anyString())) + .thenReturn(httpResponseErr); + + while (managerThread.isAlive()) { + Thread.sleep(100); + } + + PolicyEngine.manager.getEnvironment().remove("vfc.password"); + PolicyEngine.manager.getEnvironment().remove("vfc.username"); + PolicyEngine.manager.getEnvironment().remove("vfc.url"); + } + + @Test + public void testVFCExecutionBadResponse() throws InterruptedException { + PolicyEngine.manager.getEnvironment().put("vfc.url", "http://somewhere.over.the.rainbow"); + PolicyEngine.manager.getEnvironment().put("vfc.username", "Dorothy"); + PolicyEngine.manager.getEnvironment().put("vfc.password", "BadResponse"); + + VFCManager manager = new VFCManager(mockedWorkingMemory, request); + manager.setRestManager(mockedRESTManager); + + Thread managerThread = new Thread(manager); + managerThread.start(); + + when(mockedRESTManager.post(startsWith("http://somewhere.over.the.rainbow"), eq("Dorothy"), eq("OK"), anyMap(), anyString(), anyString())) + .thenReturn(httpResponseBadResponse); + + while (managerThread.isAlive()) { + Thread.sleep(100); + } + + PolicyEngine.manager.getEnvironment().remove("vfc.password"); + PolicyEngine.manager.getEnvironment().remove("vfc.username"); + PolicyEngine.manager.getEnvironment().remove("vfc.url"); + } + + @Test + public void testVFCExecutionOK() throws InterruptedException { + PolicyEngine.manager.getEnvironment().put("vfc.url", "http://somewhere.over.the.rainbow"); + PolicyEngine.manager.getEnvironment().put("vfc.username", "Dorothy"); + PolicyEngine.manager.getEnvironment().put("vfc.password", "OK"); + + VFCManager manager = new VFCManager(mockedWorkingMemory, request); + manager.setRestManager(mockedRESTManager); + + Thread managerThread = new Thread(manager); + managerThread.start(); + + when(mockedRESTManager.post(startsWith("http://somewhere.over.the.rainbow"), eq("Dorothy"), eq("OK"), anyMap(), anyString(), anyString())) + .thenReturn(httpResponsePutOK); + + when(mockedRESTManager.get(endsWith("1234"), eq("Dorothy"), eq("OK"), anyMap())) + .thenReturn(httpResponseGetOK); + + while (managerThread.isAlive()) { + Thread.sleep(100); + } + + PolicyEngine.manager.getEnvironment().remove("vfc.password"); + PolicyEngine.manager.getEnvironment().remove("vfc.username"); + PolicyEngine.manager.getEnvironment().remove("vfc.url"); + } +} diff --git a/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCRequest.java b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCRequest.java new file mode 100644 index 000000000..64307fec8 --- /dev/null +++ b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCRequest.java @@ -0,0 +1,51 @@ +/*- + * ============LICENSE_START======================================================= + * vfc + * ================================================================================ + * Copyright (C) 2018 Ericsson. 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.vfc; + +import static org.junit.Assert.*; + +import java.util.UUID; + +import org.junit.Test; + +public class TestVFCRequest { + + @Test + public void testVFCRequest() { + VFCRequest request = new VFCRequest(); + assertNotNull(request); + assertNotEquals(0, request.hashCode()); + + String nsInstanceId = "Dorothy"; + request.setNSInstanceId(nsInstanceId); + assertEquals(nsInstanceId, request.getNSInstanceId()); + + UUID requestId = UUID.randomUUID(); + request.setRequestId(requestId); + assertEquals(requestId, request.getRequestId()); + + VFCHealRequest healRequest = new VFCHealRequest(); + request.setHealRequest(healRequest); + assertEquals(healRequest, request.getHealRequest()); + + assertNotEquals(0, request.hashCode()); + } +} diff --git a/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCResponse.java b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCResponse.java new file mode 100644 index 000000000..36591a910 --- /dev/null +++ b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCResponse.java @@ -0,0 +1,49 @@ +/*- + * ============LICENSE_START======================================================= + * vfc + * ================================================================================ + * Copyright (C) 2018 Ericsson. 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.vfc; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class TestVFCResponse { + + @Test + public void testVFCResponse() { + VFCResponse response = new VFCResponse(); + assertNotNull(response); + assertNotEquals(0, response.hashCode()); + + String jobId = "GetToOz"; + response.setJobId(jobId); + assertEquals(jobId, response.getJobId()); + + String requestId = "Get Home"; + response.setRequestId(requestId); + assertEquals(requestId, response.getRequestId()); + + VFCResponseDescriptor responseDescriptor = new VFCResponseDescriptor(); + response.setResponseDescriptor(responseDescriptor); + assertEquals(responseDescriptor, response.getResponseDescriptor()); + + assertNotEquals(0, response.hashCode()); + } +} diff --git a/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCResponseDescriptor.java b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCResponseDescriptor.java new file mode 100644 index 000000000..a2b59dd20 --- /dev/null +++ b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCResponseDescriptor.java @@ -0,0 +1,64 @@ +/*- + * ============LICENSE_START======================================================= + * vfc + * ================================================================================ + * Copyright (C) 2018 Ericsson. 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.vfc; + +import static org.junit.Assert.*; + +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; + +public class TestVFCResponseDescriptor { + + @Test + public void testVFCResponseDescriptor() { + VFCResponseDescriptor descriptor = new VFCResponseDescriptor(); + assertNotNull(descriptor); + assertNotEquals(0, descriptor.hashCode()); + + String errorCode = "WitchIsDead"; + descriptor.setErrorCode(errorCode); + assertEquals(errorCode, descriptor.getErrorCode()); + + String progress = "Visited Wizard"; + descriptor.setProgress(progress); + assertEquals(progress, descriptor.getProgress()); + + List<VFCResponseDescriptor> responseHistoryList = new ArrayList<>(); + descriptor.setResponseHistoryList(responseHistoryList); + assertEquals(responseHistoryList, descriptor.getResponseHistoryList()); + + String responseId = "WishHard"; + descriptor.setResponseId(responseId); + assertEquals(responseId, descriptor.getResponseId()); + + String status = "Back in Kansas"; + descriptor.setStatus(status); + assertEquals(status, descriptor.getStatus()); + + String statusDescription = "Back on the prairie"; + descriptor.setStatusDescription(statusDescription); + assertEquals(statusDescription, descriptor.getStatusDescription()); + + assertNotEquals(0, descriptor.hashCode()); + } +} diff --git a/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/util/TestSerialization.java b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/util/TestSerialization.java new file mode 100644 index 000000000..3c4f6154e --- /dev/null +++ b/controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/util/TestSerialization.java @@ -0,0 +1,33 @@ +/*- + * ============LICENSE_START======================================================= + * vfc + * ================================================================================ + * Copyright (C) 2018 Ericsson. 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.vfc.util; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class TestSerialization { + + @Test + public void test() { + assertNotNull(Serialization.gsonPretty); + } +} |