Fix Tech Debt/JUnit on VFC POJOs 89/28689/2
authorliamfallon <liam.fallon@ericsson.com>
Fri, 19 Jan 2018 19:55:02 +0000 (19:55 +0000)
committerliamfallon <liam.fallon@ericsson.com>
Sat, 20 Jan 2018 10:39:19 +0000 (10:39 +0000)
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 <liam.fallon@ericsson.com>
20 files changed:
controlloop/common/actors/actor.vfc/src/main/java/org/onap/policy/controlloop/actor/vfc/VFCActorServiceProvider.java
controlloop/common/eventmanager/src/main/java/org/onap/policy/controlloop/eventmanager/ControlLoopOperationManager.java
controlloop/common/model-impl/vfc/pom.xml
controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealActionVmInfo.java
controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealAdditionalParams.java
controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCHealRequest.java
controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCManager.java
controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCRequest.java
controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCResponse.java
controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/VFCResponseDescriptor.java
controlloop/common/model-impl/vfc/src/main/java/org/onap/policy/vfc/util/Serialization.java
controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestDemo.java
controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealActionVmInfo.java [new file with mode: 0644]
controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealAdditionalParams.java [new file with mode: 0644]
controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCHealRequest.java [new file with mode: 0644]
controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCManager.java [new file with mode: 0644]
controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCRequest.java [new file with mode: 0644]
controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCResponse.java [new file with mode: 0644]
controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/TestVFCResponseDescriptor.java [new file with mode: 0644]
controlloop/common/model-impl/vfc/src/test/java/org/onap/policy/vfc/util/TestSerialization.java [new file with mode: 0644]

index dae60cb..71c7cea 100644 (file)
@@ -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;
index 8160f76..47275c6 100644 (file)
@@ -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
                                //
index 5d931aa..abccdd8 100644 (file)
@@ -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>
                <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>
index 144b971..dd1ccfd 100644 (file)
@@ -27,13 +27,28 @@ public class VFCHealActionVmInfo implements Serializable {
        private static final long serialVersionUID = 3208673205100673119L;
 \r
        @SerializedName("vmid")\r
-       public String vmid;\r
+       private String vmid;\r
 \r
        @SerializedName("vmname")\r
-       public String vmname;\r
-\r
+       private String vmname;\r
 \r
        public VFCHealActionVmInfo() {\r
+               // Default constructor for VFCHealActionVmInfo\r
+       }\r
+\r
+       public String getVmid() {\r
+               return vmid;\r
+       }\r
+\r
+       public void setVmid(String vmid) {\r
+               this.vmid = vmid;\r
+       }\r
+\r
+       public String getVmname() {\r
+               return vmname;\r
        }\r
 \r
+       public void setVmname(String vmname) {\r
+               this.vmname = vmname;\r
+       }\r
 }\r
index a4647cb..4ffdb5b 100644 (file)
@@ -27,12 +27,28 @@ public class VFCHealAdditionalParams implements Serializable {
        private static final long serialVersionUID = 2656694137285096191L;
 \r
        @SerializedName("action")\r
-       public String action;\r
+       private String action;\r
 \r
        @SerializedName("actionvminfo")\r
-       public VFCHealActionVmInfo actionInfo;\r
+       private VFCHealActionVmInfo actionInfo;\r
 \r
        public VFCHealAdditionalParams() {\r
+               // Default constructor for VFCHealAdditionalParams\r
        }\r
 \r
+       public String getAction() {\r
+               return action;\r
+       }\r
+\r
+       public void setAction(String action) {\r
+               this.action = action;\r
+       }\r
+\r
+       public VFCHealActionVmInfo getActionInfo() {\r
+               return actionInfo;\r
+       }\r
+\r
+       public void setActionInfo(VFCHealActionVmInfo actionInfo) {\r
+               this.actionInfo = actionInfo;\r
+       }\r
 }\r
index a19f72b..787e341 100644 (file)
@@ -27,15 +27,39 @@ public class VFCHealRequest implements Serializable {
        private static final long serialVersionUID = -7341931593089709247L;
 \r
        @SerializedName("vnfInstanceId")\r
-       public String vnfInstanceId;\r
+       private String vnfInstanceId;\r
 \r
        @SerializedName("cause")\r
-       public String cause;\r
+       private String cause;\r
 \r
        @SerializedName("additionalParams")\r
-       public VFCHealAdditionalParams additionalParams;\r
+       private VFCHealAdditionalParams additionalParams;\r
 \r
        public VFCHealRequest() {\r
+               // Default constructor for VFCHealRequest\r
        }\r
 \r
+       public String getVnfInstanceId() {\r
+               return vnfInstanceId;\r
+       }\r
+\r
+       public void setVnfInstanceId(String vnfInstanceId) {\r
+               this.vnfInstanceId = vnfInstanceId;\r
+       }\r
+\r
+       public String getCause() {\r
+               return cause;\r
+       }\r
+\r
+       public void setCause(String cause) {\r
+               this.cause = cause;\r
+       }\r
+\r
+       public VFCHealAdditionalParams getAdditionalParams() {\r
+               return additionalParams;\r
+       }\r
+\r
+       public void setAdditionalParams(VFCHealAdditionalParams additionalParams) {\r
+               this.additionalParams = additionalParams;\r
+       }\r
 }\r
index c951984..7146e43 100644 (file)
@@ -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;
+       }
 }
index 89c9b08..78802d6 100644 (file)
@@ -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;
+       }
 }
index 5d6efa0..38b73b3 100644 (file)
@@ -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;
+       }
 }
index 62c61a7..81eb3bc 100644 (file)
@@ -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;
+       }
 }
index 6550852..dc8662b 100644 (file)
@@ -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();
 
index fd59325..96a62bf 100644 (file)
@@ -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 (file)
index 0000000..ab57f64
--- /dev/null
@@ -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 (file)
index 0000000..7fa8fd7
--- /dev/null
@@ -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 (file)
index 0000000..5a78bfb
--- /dev/null
@@ -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 (file)
index 0000000..9260430
--- /dev/null
@@ -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 (file)
index 0000000..64307fe
--- /dev/null
@@ -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 (file)
index 0000000..36591a9
--- /dev/null
@@ -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 (file)
index 0000000..a2b59dd
--- /dev/null
@@ -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 (file)
index 0000000..3c4f615
--- /dev/null
@@ -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);
+       }
+}