From 421a0843285f262b5cfc907ebd804ecd06d3fbe3 Mon Sep 17 00:00:00 2001 From: liamfallon Date: Fri, 19 Jan 2018 19:55:02 +0000 Subject: Fix Tech Debt/JUnit on VFC POJOs Making fields private, fixing field and methods to follow Java guidelines, and adding getter and setter methods. Unit test added for all classes in org.onap.policy.vfc Issue-ID: POLICY-455 Change-Id: I262337a816706cd5243849cd51e57689275545bf Signed-off-by: liamfallon --- controlloop/common/model-impl/vfc/pom.xml | 70 ++--- .../org/onap/policy/vfc/VFCHealActionVmInfo.java | 21 +- .../onap/policy/vfc/VFCHealAdditionalParams.java | 20 +- .../java/org/onap/policy/vfc/VFCHealRequest.java | 30 ++- .../main/java/org/onap/policy/vfc/VFCManager.java | 246 ++++++++++-------- .../main/java/org/onap/policy/vfc/VFCRequest.java | 30 ++- .../main/java/org/onap/policy/vfc/VFCResponse.java | 30 ++- .../org/onap/policy/vfc/VFCResponseDescriptor.java | 54 +++- .../org/onap/policy/vfc/util/Serialization.java | 4 +- .../test/java/org/onap/policy/vfc/TestDemo.java | 48 ++-- .../onap/policy/vfc/TestVFCHealActionVmInfo.java | 45 ++++ .../policy/vfc/TestVFCHealAdditionalParams.java | 45 ++++ .../org/onap/policy/vfc/TestVFCHealRequest.java | 49 ++++ .../java/org/onap/policy/vfc/TestVFCManager.java | 281 +++++++++++++++++++++ .../java/org/onap/policy/vfc/TestVFCRequest.java | 51 ++++ .../java/org/onap/policy/vfc/TestVFCResponse.java | 49 ++++ .../onap/policy/vfc/TestVFCResponseDescriptor.java | 64 +++++ .../onap/policy/vfc/util/TestSerialization.java | 33 +++ 18 files changed, 985 insertions(+), 185 deletions(-) create mode 100644 controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealActionVmInfo.java create mode 100644 controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealAdditionalParams.java create mode 100644 controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealRequest.java create mode 100644 controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCManager.java create mode 100644 controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCRequest.java create mode 100644 controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCResponse.java create mode 100644 controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCResponseDescriptor.java create mode 100644 controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/util/TestSerialization.java (limited to 'controlloop/common/model-impl') 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 @@ --> - 4.0.0 + 4.0.0 - vfc + vfc org.onap.policy.drools-applications @@ -27,35 +27,47 @@ 1.2.0-SNAPSHOT - - - junit - junit - 4.12 - provided - - - com.google.code.gson - gson - 2.5 - provided - - - org.onap.policy.drools-applications - rest - ${project.version} - - + + + junit + junit + 4.12 + provided + + + org.mockito + mockito-core + 2.13.0 + test + + + org.awaitility + awaitility + 3.0.0 + test + + + com.google.code.gson + gson + 2.5 + provided + + + org.onap.policy.drools-applications + rest + ${project.version} + + org.drools drools-core 6.5.0.Final provided - - - org.onap.policy.drools-pdp - policy-management - ${project.version} - provided - - + + + org.onap.policy.drools-pdp + policy-management + ${project.version} + provided + + 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 headers = new HashMap(); - Pair 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 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 headers = new HashMap<>(); + Pair 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 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 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 getResponseHistoryList() { + return responseHistoryList; + } + + public void setResponseHistoryList(List 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 httpResponsePutOK; + private Pair httpResponseGetOK; + private Pair httpResponseBadResponse; + private Pair 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 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 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); + } +} -- cgit 1.2.3-korg