diff --git a/test/mocks/pnfsimulator/config/config.json b/test/mocks/pnfsimulator/config/config.json
index 2a67be5..6311d5e 100644
--- a/test/mocks/pnfsimulator/config/config.json
+++ b/test/mocks/pnfsimulator/config/config.json
@@ -1,24 +1,45 @@
-
 {
   "simulatorParams": {
     "vesServerUrl": "http://VES-HOST:VES-PORT/eventListener/v7",
     "testDuration": "10",
     "messageInterval": "1"
   },
-  "messageParams": {
-    "pnf_serialNumber": "6061ZW3",
-    "pnf_vendorName": "Nokia",
-    "pnf_oamV4IpAddress": "val3",
-    "pnf_oamV6IpAddress": "val4",
-    "pnf_unitFamily": "BBU",
-    "pnf_modelNumber": "val6",
-    "pnf_softwareVersion": "val7",
-    "pnf_unitType": "val8",
+  "commonEventHeaderParams": {
     "eventName": "pnfRegistration_Nokia_5gDu",
     "nfNamingCode": "gNB",
     "nfcNamingCode": "oam",
     "sourceName": "NOK6061ZW3",
     "sourceId": "val13",
     "reportingEntityName": "NOK6061ZW3"
+  },
+  "pnfRegistrationParams": {
+    "serialNumber": "6061ZW3",
+    "vendorName": "Nokia",
+    "oamV4IpAddress": "val3",
+    "oamV6IpAddress": "val4",
+    "unitFamily": "BBU",
+    "modelNumber": "val6",
+    "softwareVersion": "val7",
+    "unitType": "val8"
+  },
+  "notificationParams": {
+    "changeIdentifier": "PM_MEAS_FILES",
+    "changeType": "FileReady",
+    "arrayOfNamedHashMap": [
+      {"name": "A20161221.1031-1041.bin.gz", "hashMap": {
+        "location": "ftpes://192.169.0.1:22/ftp/rop/A20161224.1030-1045.bin.gz",
+        "compression": "gzip",
+        "fileformatType": "org.3GPP.32.435#measCollec",
+        "fileFormatVersion": "V10"
+      }
+      },
+      {"name": "A20161222.1042-1102.bin.gz", "hashMap": {
+        "location": "ftpes://192.168.0.102:22/ftp/rop/A20161224.1045-1100.bin.gz",
+        "compression": "gzip",
+        "fileFormatType": "org.3GPP.32.435#measCollec",
+        "fileFormatVersion": "V10"
+      }
+      }
+    ]
   }
 }
diff --git a/test/mocks/pnfsimulator/json_schema/input_validator.json b/test/mocks/pnfsimulator/json_schema/input_validator.json
index 195f4bf..d278bfc 100644
--- a/test/mocks/pnfsimulator/json_schema/input_validator.json
+++ b/test/mocks/pnfsimulator/json_schema/input_validator.json
@@ -1,193 +1,205 @@
 {
-  "$id": "http://example.com/example.json",
+  "$schema": "http://json-schema.org/draft-04/schema#",
   "type": "object",
-  "definitions": {},
-  "$schema": "http://json-schema.org/draft-07/schema#",
   "properties": {
     "simulatorParams": {
-      "$id": "/properties/simulatorParams",
       "type": "object",
       "properties": {
         "vesServerUrl": {
-          "$id": "/properties/simulatorParams/properties/vesServerUrl",
-          "type": "string",
-          "title": "The Vesserverurl Schema ",
-          "default": "",
-          "examples": [
-            "http://10.42.111.53:VES-PORT/eventListener/v7"
-          ]
+          "type": "string"
         },
         "testDuration": {
-          "$id": "/properties/simulatorParams/properties/testDuration",
-          "type": "string",
-          "title": "The Testduration Schema ",
-          "default": "",
-          "examples": [
-            "10"
-          ]
+          "type": "string"
         },
         "messageInterval": {
-          "$id": "/properties/simulatorParams/properties/messageInterval",
-          "type": "string",
-          "title": "The Messageinterval Schema ",
-          "default": "",
-          "examples": [
-            "1"
-          ]
+          "type": "string"
         }
-      }
+      },
+      "required": [
+        "vesServerUrl",
+        "testDuration",
+        "messageInterval"
+      ]
     },
-    "messageParams": {
-      "$id": "/properties/messageParams",
+    "commonEventHeaderParams": {
       "type": "object",
       "properties": {
-        "pnf_serialNumber": {
-          "$id": "/properties/messageParams/properties/pnf_serialNumber",
-          "type": "string",
-          "title": "The Pnf_serialnumber Schema ",
-          "default": "",
-          "examples": [
-            "6061ZW3"
-          ]
-        },
-        "pnf_vendorName": {
-          "$id": "/properties/messageParams/properties/pnf_vendorName",
-          "type": "string",
-          "title": "The Pnf_vendorname Schema ",
-          "default": "",
-          "examples": [
-            "Nokia"
-          ]
-        },
-        "pnf_oamV4IpAddress": {
-          "$id": "/properties/messageParams/properties/pnf_oamV4IpAddress",
-          "type": "string",
-          "title": "The Pnf_oamv4ipaddress Schema ",
-          "default": "",
-          "examples": [
-            "val3"
-          ]
-        },
-        "pnf_oamV6IpAddress": {
-          "$id": "/properties/messageParams/properties/pnf_oamV6IpAddress",
-          "type": "string",
-          "title": "The Pnf_oamv6ipaddress Schema ",
-          "default": "",
-          "examples": [
-            "val4"
-          ]
-        },
-        "pnf_unitFamily": {
-          "$id": "/properties/messageParams/properties/pnf_unitFamily",
-          "type": "string",
-          "title": "The Pnf_unitfamily Schema ",
-          "default": "",
-          "examples": [
-            "BBU"
-          ]
-        },
-        "pnf_modelNumber": {
-          "$id": "/properties/messageParams/properties/pnf_modelNumber",
-          "type": "string",
-          "title": "The Pnf_modelnumber Schema ",
-          "default": "",
-          "examples": [
-            "val6"
-          ]
-        },
-        "pnf_softwareVersion": {
-          "$id": "/properties/messageParams/properties/pnf_softwareVersion",
-          "type": "string",
-          "title": "The Pnf_softwareversion Schema ",
-          "default": "",
-          "examples": [
-            "val7"
-          ]
-        },
-        "pnf_unitType": {
-          "$id": "/properties/messageParams/properties/pnf_unitType",
-          "type": "string",
-          "title": "The Pnf_unittype Schema ",
-          "default": "",
-          "examples": [
-            "val8"
-          ]
-        },
         "eventName": {
-          "$id": "/properties/messageParams/properties/eventName",
-          "type": "string",
-          "title": "The Eventname Schema ",
-          "default": "",
-          "examples": [
-            "pnfRegistration_Nokia_5gDu"
-          ]
+          "type": "string"
         },
         "nfNamingCode": {
-          "$id": "/properties/messageParams/properties/nfNamingCode",
-          "type": "string",
-          "title": "The Nfnamingcode Schema ",
-          "default": "",
-          "examples": [
-            "gNB"
-          ]
+          "type": "string"
         },
         "nfcNamingCode": {
-          "$id": "/properties/messageParams/properties/nfcNamingCode",
-          "type": "string",
-          "title": "The Nfcnamingcode Schema ",
-          "default": "",
-          "examples": [
-            "oam"
-          ]
+          "type": "string"
         },
         "sourceName": {
-          "$id": "/properties/messageParams/properties/sourceName",
-          "type": "string",
-          "title": "The Sourcename Schema ",
-          "default": "",
-          "examples": [
-            "NOK6061ZW3"
-          ]
+          "type": "string"
         },
         "sourceId": {
-          "$id": "/properties/messageParams/properties/sourceId",
-          "type": "string",
-          "title": "The Sourceid Schema ",
-          "default": "",
-          "examples": [
-            "val13"
-          ]
+          "type": "string"
         },
         "reportingEntityName": {
-          "$id": "/properties/messageParams/properties/reportingEntityName",
-          "type": "string",
-          "title": "The Reportingentityname Schema ",
-          "default": "",
-          "examples": [
-            "NOK6061ZW3"
+          "type": "string"
+        }
+      },
+      "required": [
+        "eventName",
+        "nfNamingCode",
+        "nfcNamingCode",
+        "sourceName",
+        "sourceId",
+        "reportingEntityName"
+      ]
+    },
+
+
+    "pnfRegistrationParams": {
+      "type": "object",
+      "properties": {
+        "serialNumber": {
+          "type": "string"
+        },
+        "vendorName": {
+          "type": "string"
+        },
+        "oamV4IpAddress": {
+          "type": "string"
+        },
+        "oamV6IpAddress": {
+          "type": "string"
+        },
+        "unitFamily": {
+          "type": "string"
+        },
+        "modelNumber": {
+          "type": "string"
+        },
+        "softwareVersion": {
+          "type": "string"
+        },
+        "unitType": {
+          "type": "string"
+        }
+      },
+      "required": [
+        "serialNumber",
+        "vendorName",
+        "oamV4IpAddress",
+        "oamV6IpAddress",
+        "unitFamily",
+        "modelNumber",
+        "softwareVersion",
+        "unitType"
+      ]
+    },
+    "notificationParams": {
+      "type": "object",
+      "properties": {
+        "changeIdentifier": {
+          "type": "string"
+        },
+        "changeType": {
+          "type": "string"
+        },
+        "arrayOfNamedHashMap": {
+          "type": "array",
+          "items": [
+            {
+              "type": "object",
+              "properties": {
+                "name": {
+                  "type": "string"
+                },
+                "hashMap": {
+                  "type": "object",
+                  "properties": {
+                    "location": {
+                      "type": "string"
+                    },
+                    "compression": {
+                      "type": "string"
+                    },
+                    "fileformatType": {
+                      "type": "string"
+                    },
+                    "fileFormatVersion": {
+                      "type": "string"
+                    }
+                  },
+                  "required": [
+                    "location",
+                    "compression",
+                    "fileformatType",
+                    "fileFormatVersion"
+                  ]
+                }
+              },
+              "required": [
+                "name",
+                "hashMap"
+              ]
+            },
+            {
+              "type": "object",
+              "properties": {
+                "name": {
+                  "type": "string"
+                },
+                "hashMap": {
+                  "type": "object",
+                  "properties": {
+                    "location": {
+                      "type": "string"
+                    },
+                    "compression": {
+                      "type": "string"
+                    },
+                    "fileFormatType": {
+                      "type": "string"
+                    },
+                    "fileFormatVersion": {
+                      "type": "string"
+                    }
+                  },
+                  "required": [
+                    "location",
+                    "compression",
+                    "fileFormatType",
+                    "fileFormatVersion"
+                  ]
+                }
+              },
+              "required": [
+                "name",
+                "hashMap"
+              ]
+            }
           ]
         }
       },
       "required": [
-        "pnf_serialNumber",
-        "pnf_vendorName"
-      ],
-      "anyOf": [
-        {
-          "required": [
-            "pnf_oamV4IpAddress"
-          ]
-        },
-        {
-          "required": [
-            "pnf_oamV6IpAddress"
-          ]
-        }
+        "changeIdentifier",
+        "changeType",
+        "arrayOfNamedHashMap"
       ]
     }
   },
-  "required": [
-    "simulatorParams",
-    "messageParams"
+
+  "oneOf": [
+    {
+      "required": [
+        "simulatorParams",
+        "pnfRegistrationParams"
+      ]
+    },
+    {
+      "required": [
+        "simulatorParams",
+        "notificationParams"
+      ]
+    }
   ]
+
+
 }
\ No newline at end of file
diff --git a/test/mocks/pnfsimulator/pom.xml b/test/mocks/pnfsimulator/pom.xml
index 563ee27..03b3883 100644
--- a/test/mocks/pnfsimulator/pom.xml
+++ b/test/mocks/pnfsimulator/pom.xml
@@ -4,6 +4,7 @@
   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>
 
+  
   <parent>
     <groupId>org.onap.oparent</groupId>
     <artifactId>oparent</artifactId>
diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/JSONObjectFactory.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/JSONObjectFactory.java
index fd2b95a..3ebf567 100644
--- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/JSONObjectFactory.java
+++ b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/JSONObjectFactory.java
@@ -20,7 +20,24 @@
 
 package org.onap.pnfsimulator.message;
 
-import static org.onap.pnfsimulator.message.MessageConstants.*;
+import static org.onap.pnfsimulator.message.MessageConstants.EVENT_ID;
+import static org.onap.pnfsimulator.message.MessageConstants.INTERNAL_HEADER_FIELDS;
+import static org.onap.pnfsimulator.message.MessageConstants.LAST_EPOCH_MICROSEC;
+import static org.onap.pnfsimulator.message.MessageConstants.NOTIFICATION_FIELDS_VERSION;
+import static org.onap.pnfsimulator.message.MessageConstants.NOTIFICATION_FIELDS_VERSION_VALUE;
+import static org.onap.pnfsimulator.message.MessageConstants.PNF_LAST_SERVICE_DATE;
+import static org.onap.pnfsimulator.message.MessageConstants.PNF_MANUFACTURE_DATE;
+import static org.onap.pnfsimulator.message.MessageConstants.PNF_REGISTRATION_FIELDS_VERSION;
+import static org.onap.pnfsimulator.message.MessageConstants.PNF_REGISTRATION_FIELDS_VERSION_VALUE;
+import static org.onap.pnfsimulator.message.MessageConstants.PRIORITY;
+import static org.onap.pnfsimulator.message.MessageConstants.PRIORITY_NORMAL;
+import static org.onap.pnfsimulator.message.MessageConstants.SEQUENCE;
+import static org.onap.pnfsimulator.message.MessageConstants.SEQUENCE_NUMBER;
+import static org.onap.pnfsimulator.message.MessageConstants.START_EPOCH_MICROSEC;
+import static org.onap.pnfsimulator.message.MessageConstants.VERSION;
+import static org.onap.pnfsimulator.message.MessageConstants.VERSION_NUMBER;
+import static org.onap.pnfsimulator.message.MessageConstants.VES_EVENT_LISTENER_VERSION;
+import static org.onap.pnfsimulator.message.MessageConstants.VES_EVENT_LISTENER_VERSION_NUMBER;
 
 import org.json.JSONObject;
 
@@ -29,9 +46,7 @@
     static JSONObject generateConstantCommonEventHeader() {
         JSONObject commonEventHeader = new JSONObject();
         long timestamp = System.currentTimeMillis();
-        commonEventHeader.put(DOMAIN, PNF_REGISTRATION);
         commonEventHeader.put(EVENT_ID, generateEventId());
-        commonEventHeader.put(EVENT_TYPE, PNF_REGISTRATION);
         commonEventHeader.put(LAST_EPOCH_MICROSEC, timestamp);
         commonEventHeader.put(PRIORITY, PRIORITY_NORMAL);
         commonEventHeader.put(SEQUENCE, SEQUENCE_NUMBER);
@@ -50,13 +65,20 @@
         return pnfRegistrationFields;
     }
 
+    static JSONObject generateNotificationFields() {
+        JSONObject notificationFields = new JSONObject();
+        notificationFields.put(NOTIFICATION_FIELDS_VERSION, NOTIFICATION_FIELDS_VERSION_VALUE);
+        return notificationFields;
+    }
+
+
     static String generateEventId() {
         String timeAsString = String.valueOf(System.currentTimeMillis());
         return String.format("registration_%s",
             timeAsString.substring(timeAsString.length() - 11, timeAsString.length() - 3));
     }
 
-    private JSONObjectFactory(){
+    private JSONObjectFactory() {
 
     }
 
diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageConstants.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageConstants.java
index 7861d5f..95e8f69 100644
--- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageConstants.java
+++ b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageConstants.java
@@ -22,9 +22,25 @@
 
 public final class MessageConstants {
 
-    public static final String SIMULATOR_PARAMS_CONTAINER = "simulatorParams";
-    public static final String MESSAGE_PARAMS_CONTAINER = "messageParams";
+    public static final String SIMULATOR_PARAMS = "simulatorParams";
+    public static final String COMMON_EVENT_HEADER_PARAMS = "commonEventHeaderParams";
+    public static final String PNF_REGISTRATION_PARAMS = "pnfRegistrationParams";
+    public static final String NOTIFICATION_PARAMS = "notificationParams";
+
+    static final String COMMON_EVENT_HEADER = "commonEventHeader";
+    static final String PNF_REGISTRATION_FIELDS = "pnfRegistrationFields";
+    static final String NOTIFICATION_FIELDS = "notificationFields";
     static final String EVENT = "event";
+
+    //=============================================================================================
+    //Simulation parameters
+    public static final String VES_SERVER_URL = "vesServerUrl";
+    public static final String TEST_DURATION = "testDuration";
+    public static final String MESSAGE_INTERVAL = "messageInterval";
+
+    //=============================================================================================
+    //commonEventHeader
+    //parameters
     static final String DOMAIN = "domain";
     static final String EVENT_ID = "eventId";
     static final String EVENT_TYPE = "eventType";
@@ -34,32 +50,30 @@
     static final String START_EPOCH_MICROSEC = "startEpochMicrosec";
     static final String INTERNAL_HEADER_FIELDS = "internalHeaderFields";
     static final String VERSION = "version";
+    static final String VES_EVENT_LISTENER_VERSION = "vesEventListenerVersion";
+    //constant values
+    static final int SEQUENCE_NUMBER = 0;
+    static final String VERSION_NUMBER = "4.0.1";
+    static final String VES_EVENT_LISTENER_VERSION_NUMBER = "7.0.1";
+    static final String PRIORITY_NORMAL = "Normal";
+
+    //=============================================================================================
+    //PNF registration
+    //parameters
     static final String PNF_REGISTRATION_FIELDS_VERSION = "pnfRegistrationFieldsVersion";
     static final String PNF_LAST_SERVICE_DATE = "lastServiceDate";
     static final String PNF_MANUFACTURE_DATE = "manufactureDate";
-    static final String VES_EVENT_LISTENER_VERSION = "vesEventListenerVersion";
-
-    // mandatory used in json file, but not in java logic
-    //public static final String PNF_OAM_IPV4_ADDRESS = "pnfOamIpv4Address";
-    //public static final String PNF_OAM_IPV6_ADDRESS = "pnfOamIpv6Address";
-    //public static final String PNF_SERIAL_NUMBER = "pnfSerialNumber";
-    //public static final String PNF_VENDOR_NAME = "pnfVendorName";
-    public static final String VES_SERVER_URL = "vesServerUrl";
-    public static final String TEST_DURATION = "testDuration";
-    public static final String MESSAGE_INTERVAL = "messageInterval";
-    static final String PNF_PREFIX = "pnf_";
-    static final String COMMON_EVENT_HEADER = "commonEventHeader";
-    static final String PNF_REGISTRATION_FIELDS = "pnfRegistrationFields";
-
-
-    //===============================================================
     //constant values
-    static final String PNF_REGISTRATION ="pnfRegistration";
-    static final String PRIORITY_NORMAL = "Normal";
-    static final String VERSION_NUMBER = "4.0.1";
-    static final String VES_EVENT_LISTENER_VERSION_NUMBER = "7.0.1";
     static final String PNF_REGISTRATION_FIELDS_VERSION_VALUE = "2.0";
-    static final int SEQUENCE_NUMBER = 0;
+    static final String DOMAIN_PNF_REGISTRATION ="pnfRegistration";
+
+    //=============================================================================================
+    // Notifications
+    //parameters
+    static final String NOTIFICATION_FIELDS_VERSION = "notificationFieldsVersion";
+    //constant values
+    static final String NOTIFICATION_FIELDS_VERSION_VALUE = "2.0";
+    static final String DOMAIN_NOTIFICATION ="notification";
 
     private MessageConstants() {
     }
diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageProvider.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageProvider.java
index 7c3bf9e..4931c3b 100644
--- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageProvider.java
+++ b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/message/MessageProvider.java
@@ -21,40 +21,61 @@
 package org.onap.pnfsimulator.message;
 
 import static org.onap.pnfsimulator.message.MessageConstants.COMMON_EVENT_HEADER;
+import static org.onap.pnfsimulator.message.MessageConstants.DOMAIN;
 import static org.onap.pnfsimulator.message.MessageConstants.EVENT;
-import static org.onap.pnfsimulator.message.MessageConstants.PNF_PREFIX;
+import static org.onap.pnfsimulator.message.MessageConstants.EVENT_TYPE;
+import static org.onap.pnfsimulator.message.MessageConstants.NOTIFICATION_FIELDS;
+import static org.onap.pnfsimulator.message.MessageConstants.DOMAIN_PNF_REGISTRATION;
+import static org.onap.pnfsimulator.message.MessageConstants.DOMAIN_NOTIFICATION;
 import static org.onap.pnfsimulator.message.MessageConstants.PNF_REGISTRATION_FIELDS;
 
 import java.util.Map;
+import java.util.Optional;
+import javax.annotation.Nonnull;
 import org.json.JSONObject;
 
 public class MessageProvider {
 
-    public JSONObject createMessage(JSONObject params) {
+    public JSONObject createMessage(@Nonnull  JSONObject commonEventHeaderParams,@Nonnull Optional<JSONObject> pnfRegistrationParams,
+        @Nonnull Optional<JSONObject> notificationParams) {
 
-        if (params == null) {
-            throw new IllegalArgumentException("Params object cannot be null");
+        if (!pnfRegistrationParams.isPresent() && !notificationParams.isPresent()) {
+            throw new IllegalArgumentException(
+                "Both PNF registration and notification parameters objects are not present");
         }
+        JSONObject event = new JSONObject();
 
-        Map<String, Object> paramsMap = params.toMap();
-        JSONObject root = new JSONObject();
         JSONObject commonEventHeader = JSONObjectFactory.generateConstantCommonEventHeader();
-        JSONObject pnfRegistrationFields = JSONObjectFactory.generatePnfRegistrationFields();
-
-        paramsMap.forEach((key, value) -> {
-
-            if (key.startsWith(PNF_PREFIX)) {
-                pnfRegistrationFields.put(key.substring(PNF_PREFIX.length()), value);
-            } else {
-                commonEventHeader.put(key, value);
-            }
+        Map<String, Object> commonEventHeaderFields = commonEventHeaderParams.toMap();
+        commonEventHeaderFields.forEach((key, value) -> {
+            commonEventHeader.put(key, value);
         });
 
-        JSONObject event = new JSONObject();
+        JSONObject pnfRegistrationFields = JSONObjectFactory.generatePnfRegistrationFields();
+        pnfRegistrationParams.ifPresent(jsonObject -> {
+            copyParametersToFields(jsonObject.toMap(), pnfRegistrationFields);
+            commonEventHeader.put(DOMAIN, DOMAIN_PNF_REGISTRATION);
+            commonEventHeader.put(EVENT_TYPE, DOMAIN_PNF_REGISTRATION);
+            event.put(PNF_REGISTRATION_FIELDS, pnfRegistrationFields);
+        });
+
+        JSONObject notificationFields = JSONObjectFactory.generateNotificationFields();
+        notificationParams.ifPresent(jsonObject -> {
+            copyParametersToFields(jsonObject.toMap(), notificationFields);
+            commonEventHeader.put(DOMAIN, DOMAIN_NOTIFICATION);
+            event.put(NOTIFICATION_FIELDS, notificationFields);
+        });
+
         event.put(COMMON_EVENT_HEADER, commonEventHeader);
-        event.put(PNF_REGISTRATION_FIELDS, pnfRegistrationFields);
+        JSONObject root = new JSONObject();
         root.put(EVENT, event);
         return root;
     }
 
+    private void copyParametersToFields(Map<String, Object> paramersMap, JSONObject fieldsJsonObject) {
+        paramersMap.forEach((key, value) -> {
+            fieldsJsonObject.put(key, value);
+        });
+    }
+
 }
diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/rest/SimulatorController.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/rest/SimulatorController.java
index 3b275a6..506d21b 100644
--- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/rest/SimulatorController.java
+++ b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/rest/SimulatorController.java
@@ -27,7 +27,8 @@
 import static org.onap.pnfsimulator.logging.MDCVariables.SERVICE_NAME;
 import static org.onap.pnfsimulator.logging.MDCVariables.X_INVOCATION_ID;
 import static org.onap.pnfsimulator.logging.MDCVariables.X_ONAP_REQUEST_ID;
-import static org.onap.pnfsimulator.message.MessageConstants.SIMULATOR_PARAMS_CONTAINER;
+import static org.onap.pnfsimulator.message.MessageConstants.SIMULATOR_PARAMS;
+import static org.onap.pnfsimulator.message.MessageConstants.COMMON_EVENT_HEADER_PARAMS;
 import static org.onap.pnfsimulator.rest.util.ResponseBuilder.MESSAGE;
 import static org.onap.pnfsimulator.rest.util.ResponseBuilder.REMAINING_TIME;
 import static org.onap.pnfsimulator.rest.util.ResponseBuilder.SIMULATOR_STATUS;
@@ -40,6 +41,7 @@
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import com.github.fge.jsonschema.core.exceptions.ProcessingException;
+import java.util.Optional;
 import java.util.UUID;
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -65,7 +67,6 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-
 @RestController
 @RequestMapping("/simulator")
 public class SimulatorController {
@@ -74,7 +75,6 @@
     private static final DateFormat RESPONSE_DATE_FORMAT = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss,SSS");
     private final Marker ENTRY = MarkerFactory.getMarker("ENTRY");
     private Simulator simulator;
-
     private JSONValidator validator;
     private SimulatorFactory factory;
 
@@ -90,7 +90,7 @@
         MDC.put(INVOCATION_ID, headers.getFirst(X_INVOCATION_ID));
         MDC.put(INSTANCE_UUID, UUID.randomUUID().toString());
         MDC.put(SERVICE_NAME, "/simulator/start");
-        LOGGER.info(ENTRY,"Simulator starting");
+        LOGGER.info(ENTRY, "Simulator starting");
 
         if (isSimulatorRunning()) {
             MDC.put(RESPONSE_CODE, BAD_REQUEST.toString());
@@ -103,12 +103,15 @@
 
         try {
             validator.validate(message, "json_schema/input_validator.json");
-
             JSONObject root = new JSONObject(message);
-            JSONObject simulatorParams = root.getJSONObject(SIMULATOR_PARAMS_CONTAINER);
-            JSONObject messageParams = root.getJSONObject(MessageConstants.MESSAGE_PARAMS_CONTAINER);
-
-            simulator = factory.create(simulatorParams, messageParams);
+            JSONObject simulatorParams = root.getJSONObject(SIMULATOR_PARAMS);
+            JSONObject commonEventHeaderParams = root.getJSONObject(COMMON_EVENT_HEADER_PARAMS);
+            Optional<JSONObject> pnfRegistrationFields = root.has(MessageConstants.PNF_REGISTRATION_PARAMS) ? Optional
+                .of(root.getJSONObject(MessageConstants.PNF_REGISTRATION_PARAMS)) : Optional.empty();
+            Optional<JSONObject> notificationFields = root.has(MessageConstants.NOTIFICATION_PARAMS) ? Optional
+                .of(root.getJSONObject(MessageConstants.NOTIFICATION_PARAMS)) : Optional.empty();
+            simulator = factory
+                .create(simulatorParams, commonEventHeaderParams, pnfRegistrationFields, notificationFields);
             simulator.start();
 
             MDC.put(RESPONSE_CODE, OK.toString());
@@ -145,8 +148,7 @@
                 .put(TIMESTAMP, DateUtil.getTimestamp(RESPONSE_DATE_FORMAT))
                 .put(MESSAGE, "Unexpected exception: " + e.getMessage())
                 .build();
-        }
-        finally {
+        } finally {
             MDC.clear();
         }
     }
diff --git a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/SimulatorFactory.java b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/SimulatorFactory.java
index 3948644..046c97c 100644
--- a/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/SimulatorFactory.java
+++ b/test/mocks/pnfsimulator/src/main/java/org/onap/pnfsimulator/simulator/SimulatorFactory.java
@@ -28,6 +28,7 @@
 import com.github.fge.jsonschema.core.exceptions.ProcessingException;
 import java.io.IOException;
 import java.time.Duration;
+import java.util.Optional;
 import org.json.JSONObject;
 import org.onap.pnfsimulator.message.MessageProvider;
 import org.onap.pnfsimulator.simulator.validation.JSONValidator;
@@ -49,13 +50,15 @@
         this.validator = validator;
     }
 
-    public Simulator create(JSONObject simulatorParams, JSONObject messageParams)
+    public Simulator create(JSONObject simulatorParams, JSONObject commonEventHeaderParams,
+        Optional<JSONObject> pnfRegistrationParams, Optional<JSONObject> notificationParams)
         throws ProcessingException, IOException, ValidationException {
         Duration duration = Duration.ofSeconds(parseInt(simulatorParams.getString(TEST_DURATION)));
         Duration interval = Duration.ofSeconds(parseInt(simulatorParams.getString(MESSAGE_INTERVAL)));
         String vesUrl = simulatorParams.getString(VES_SERVER_URL);
 
-        JSONObject messageBody = messageProvider.createMessage(messageParams);
+        JSONObject messageBody = messageProvider
+            .createMessage(commonEventHeaderParams, pnfRegistrationParams, notificationParams);
         validator.validate(messageBody.toString(), DEFAULT_OUTPUT_SCHEMA_PATH);
 
         return Simulator.builder()
diff --git a/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/message/JSONObjectFactoryTest.java b/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/message/JSONObjectFactoryTest.java
index bc3d17f..4331195 100644
--- a/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/message/JSONObjectFactoryTest.java
+++ b/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/message/JSONObjectFactoryTest.java
@@ -32,18 +32,14 @@
     @Test
     public void generateConstantCommonEventHeader_shouldCreateProperly(){
         JSONObject commonEventHeader = JSONObjectFactory.generateConstantCommonEventHeader();
-        assertEquals(10,commonEventHeader.toMap().size());
-        assertTrue(commonEventHeader.has(DOMAIN));
+        assertEquals(8,commonEventHeader.toMap().size());
         assertTrue(commonEventHeader.has(EVENT_ID));
-        assertTrue(commonEventHeader.has(EVENT_TYPE));
         assertTrue(commonEventHeader.has(LAST_EPOCH_MICROSEC));
         assertTrue(commonEventHeader.has(PRIORITY));
         assertTrue(commonEventHeader.has(SEQUENCE));
         assertTrue(commonEventHeader.has(START_EPOCH_MICROSEC));
         assertTrue(commonEventHeader.has(INTERNAL_HEADER_FIELDS));
         assertTrue(commonEventHeader.has(VERSION));
-        assertEquals(commonEventHeader.get(DOMAIN),PNF_REGISTRATION);
-        assertEquals(commonEventHeader.get(EVENT_TYPE),PNF_REGISTRATION);
         assertEquals(commonEventHeader.get(PRIORITY),PRIORITY_NORMAL);
         assertEquals(commonEventHeader.get(SEQUENCE),SEQUENCE_NUMBER);
         assertEquals(commonEventHeader.get(VERSION),VERSION_NUMBER);
@@ -66,4 +62,12 @@
         assertTrue(eventId.startsWith("registration_"));
     }
 
+    @Test
+    public void generateNotificationFields_shouldCreateProperly(){
+        JSONObject notificationFields = JSONObjectFactory.generateNotificationFields();
+        assertEquals(1,notificationFields.keySet().size());
+        assertEquals(NOTIFICATION_FIELDS_VERSION_VALUE,notificationFields.get(NOTIFICATION_FIELDS_VERSION));
+
+    }
+
 }
diff --git a/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/message/MessageProviderTest.java b/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/message/MessageProviderTest.java
index 3d1f253..d40e29c 100644
--- a/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/message/MessageProviderTest.java
+++ b/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/message/MessageProviderTest.java
@@ -25,8 +25,10 @@
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.onap.pnfsimulator.message.MessageConstants.COMMON_EVENT_HEADER;
 import static org.onap.pnfsimulator.message.MessageConstants.EVENT;
+import static org.onap.pnfsimulator.message.MessageConstants.NOTIFICATION_FIELDS;
 import static org.onap.pnfsimulator.message.MessageConstants.PNF_REGISTRATION_FIELDS;
 
+import java.util.Optional;
 import org.json.JSONObject;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
@@ -44,22 +46,24 @@
     }
 
     @Test
-    public void createMessage_should_throw_when_given_null_argument() {
+    public void createMessage_should_throw_when_given_empty_arguments() {
         assertThrows(IllegalArgumentException.class,
-            () -> messageProvider.createMessage(null),
+            () -> messageProvider.createMessage(new JSONObject(),Optional.empty(),Optional.empty()),
             "Params object cannot be null");
     }
 
     @Test
     public void createMessage_should_create_constant_message_when_no_params_specified() {
-        JSONObject message = messageProvider.createMessage(new JSONObject());
+        JSONObject message = messageProvider.createMessage(new JSONObject(),Optional.ofNullable(new JSONObject()),Optional.ofNullable(new JSONObject()));
         JSONObject event = message.getJSONObject(EVENT);
 
         JSONObject commonEventHeader = event.getJSONObject(COMMON_EVENT_HEADER);
         JSONObject pnfRegistrationFields = event.getJSONObject(PNF_REGISTRATION_FIELDS);
+        JSONObject notificationFields = event.getJSONObject(NOTIFICATION_FIELDS);
 
         JSONObject expectedCommonEventHeader = JSONObjectFactory.generateConstantCommonEventHeader();
         JSONObject expectedPnfRegistrationFields = JSONObjectFactory.generatePnfRegistrationFields();
+        JSONObject expectedNotificationFields = JSONObjectFactory.generateNotificationFields();
 
         expectedCommonEventHeader
             .toMap()
@@ -70,22 +74,30 @@
             .toMap()
             .forEach((key, val) -> assertTrue(pnfRegistrationFields.has(key),
                 () -> String.format("Key %s is not present", key)));
+
+        expectedNotificationFields
+            .toMap()
+            .forEach((key, val) -> assertTrue(notificationFields.has(key),
+                () -> String.format("Key %s is not present", key)));
     }
 
+    @Test
+    public void createMessage_should_throw_exception_when_params_specified_as_empty() {
+        assertThrows(IllegalArgumentException.class, () ->messageProvider.createMessage(new JSONObject(), Optional.empty(),
+            Optional.empty()));
+    }
 
     @Test
     public void createMessage_should_add_specified_params_to_valid_subobjects() {
         JSONObject params = new JSONObject(testParamsJson);
-        JSONObject message = messageProvider.createMessage(params);
+        JSONObject message = messageProvider.createMessage(new JSONObject(),Optional.of(params),Optional.empty());
         JSONObject event = message.getJSONObject(EVENT);
 
         JSONObject commonEventHeader = event.getJSONObject(COMMON_EVENT_HEADER);
         JSONObject pnfRegistrationFields = event.getJSONObject(PNF_REGISTRATION_FIELDS);
 
-        assertEquals("pnfVal3", pnfRegistrationFields.getString("key3"));
-        assertEquals("val1", commonEventHeader.getString("key1"));
-        assertEquals("val2", commonEventHeader.getString("key2"));
-        assertEquals("val4", commonEventHeader.getString("key4"));
+        assertEquals("val1", pnfRegistrationFields.getString("key1"));
+        assertEquals("val2", pnfRegistrationFields.getString("key2"));
     }
 
 }
diff --git a/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/rest/SimulatorControllerTest.java b/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/rest/SimulatorControllerTest.java
index 8cb1906..3603480 100644
--- a/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/rest/SimulatorControllerTest.java
+++ b/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/rest/SimulatorControllerTest.java
@@ -55,25 +55,27 @@
     private static final String JSON_STATUS_EXPRESSION = "$.simulatorStatus";
     private static final String PROPER_JSON = "{\n" +
         "  \"simulatorParams\": {\n" +
-        "    \"vesServerUrl\": \"http://10.154.187.70:8080/eventListener/v5\",\n" +
+        "    \"vesServerUrl\": \"http://10.154.187.70:8080/eventListener/v7\",\n" +
         "    \"testDuration\": \"10\",\n" +
         "    \"messageInterval\": \"1\"\n" +
         "  },\n" +
-        "  \"messageParams\": {\n" +
-        "    \"pnfSerialNumber\": \"val1\",\n" +
-        "    \"pnfVendorName\": \"val2\",\n" +
-        "    \"pnfOamIpv4Address\": \"val3\",\n" +
-        "    \"pnfOamIpv6Address\": \"val4\",\n" +
-        "    \"pnfFamily\": \"val5\",\n" +
-        "    \"pnfModelNumber\": \"val6\",\n" +
-        "    \"pnfSoftwareVersion\": \"val7\",\n" +
-        "    \"pnfType\": \"val8\",\n" +
-        "    \"eventName\": \"val9\",\n" +
-        "    \"nfNamingCode\": \"val10\",\n" +
-        "    \"nfcNamingCode\": \"val11\",\n" +
-        "    \"sourceName\": \"val12\",\n" +
-        "    \"sourceId\": \"val13\",\n" +
-        "    \"reportingEntityName\": \"val14\"\n" +
+        "  \"commonEventHeaderParams\": {\n" +
+        "    \"eventName\": \"val11\",\n" +
+        "    \"nfNamingCode\": \"val12\",\n" +
+        "    \"nfcNamingCode\": \"val13\",\n" +
+        "    \"sourceName\": \"val14\",\n" +
+        "    \"sourceId\": \"val15\",\n" +
+        "    \"reportingEntityName\": \"val16\",\n" +
+        "  },\n" +
+
+        "  \"pnfRegistrationParams\": {\n" +
+        "    \"SerialNumber\": \"val1\",\n" +
+        "    \"VendorName\": \"val2\",\n" +
+        "    \"OamIpv4Address\": \"val3\",\n" +
+        "    \"OamIpv6Address\": \"val4\",\n" +
+        "    \"Family\": \"val5\",\n" +
+        "    \"ModelNumber\": \"val6\",\n" +
+        "    \"SoftwareVersion\": \"val7\",\n" +
         "  }\n" +
         "}";
     private static final String WRONG_JSON = "{\n" +
@@ -119,7 +121,7 @@
 
     @Test
     void wrongJSONFormatOnStart() throws Exception {
-        when(factory.create(any(), any())).thenReturn(simulator);
+        when(factory.create(any(),any(), any(),any())).thenReturn(simulator);
         doThrow(new ValidationException("")).when(validator).validate(anyString(), anyString());
 
         mockMvc.perform(post("/simulator/start").content(WRONG_JSON))
@@ -134,7 +136,7 @@
         startSimulator();
 
         verify(validator).validate(anyString(), anyString());
-        verify(factory).create(any(), any());
+        verify(factory).create(any(),any(), any(),any());
         verify(simulator).start();
     }
 
@@ -185,7 +187,7 @@
     }
 
     private void startSimulator() throws Exception {
-        when(factory.create(any(), any())).thenReturn(simulator);
+        when(factory.create(any(), any(), any(),any())).thenReturn(simulator);
 
         mockMvc
             .perform(post(START_URL).content(PROPER_JSON))
diff --git a/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/simulator/SimulatorFactoryTest.java b/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/simulator/SimulatorFactoryTest.java
index 970f8cf..26f66b7 100644
--- a/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/simulator/SimulatorFactoryTest.java
+++ b/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/simulator/SimulatorFactoryTest.java
@@ -26,14 +26,15 @@
 import static org.onap.pnfsimulator.simulator.TestMessages.INVALID_MESSAGE_PARAMS_2;
 import static org.onap.pnfsimulator.simulator.TestMessages.INVALID_MESSAGE_PARAMS_3;
 import static org.onap.pnfsimulator.simulator.TestMessages.INVALID_SIMULATOR_PARAMS;
-import static org.onap.pnfsimulator.simulator.TestMessages.VALID_MESSAGE_PARAMS;
+import static org.onap.pnfsimulator.simulator.TestMessages.VALID_PNF_REGISTRATION_PARAMS;
 import static org.onap.pnfsimulator.simulator.TestMessages.VALID_SIMULATOR_PARAMS;
+import static org.onap.pnfsimulator.simulator.TestMessages.VALID_COMMON_EVENT_HEADER_PARAMS;
 
 import com.github.fge.jsonschema.core.exceptions.ProcessingException;
 import java.io.IOException;
+import java.util.Optional;
 import org.json.JSONException;
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.onap.pnfsimulator.message.MessageProvider;
 import org.onap.pnfsimulator.simulator.validation.JSONValidator;
@@ -52,14 +53,16 @@
     @Test
     void should_successfully_create_simulator_given_valid_params_and_valid_output_message()
         throws ValidationException, IOException, ProcessingException {
-        assertNotNull(simulatorFactory.create(VALID_SIMULATOR_PARAMS, VALID_MESSAGE_PARAMS));
+        assertNotNull(simulatorFactory.create(VALID_SIMULATOR_PARAMS,VALID_COMMON_EVENT_HEADER_PARAMS,
+            VALID_PNF_REGISTRATION_PARAMS,Optional.empty()));
     }
 
     @Test
     void should_throw_given_invalid_params() {
         assertThrows(
             JSONException.class,
-            () -> simulatorFactory.create(INVALID_SIMULATOR_PARAMS, VALID_MESSAGE_PARAMS));
+            () -> simulatorFactory.create(INVALID_SIMULATOR_PARAMS,VALID_COMMON_EVENT_HEADER_PARAMS,
+                VALID_PNF_REGISTRATION_PARAMS,Optional.empty()));
     }
 
     @Test
@@ -67,14 +70,14 @@
 
         assertThrows(
             ValidationException.class,
-            () -> simulatorFactory.create(VALID_SIMULATOR_PARAMS, INVALID_MESSAGE_PARAMS_1));
+            () -> simulatorFactory.create(VALID_SIMULATOR_PARAMS, VALID_COMMON_EVENT_HEADER_PARAMS ,INVALID_MESSAGE_PARAMS_1,Optional.empty()));
 
         assertThrows(
             ValidationException.class,
-            () -> simulatorFactory.create(VALID_SIMULATOR_PARAMS, INVALID_MESSAGE_PARAMS_2));
+            () -> simulatorFactory.create(VALID_SIMULATOR_PARAMS, VALID_COMMON_EVENT_HEADER_PARAMS, INVALID_MESSAGE_PARAMS_2,Optional.empty()));
 
         assertThrows(
             ValidationException.class,
-            () -> simulatorFactory.create(VALID_SIMULATOR_PARAMS, INVALID_MESSAGE_PARAMS_3));
+            () -> simulatorFactory.create(VALID_SIMULATOR_PARAMS, VALID_COMMON_EVENT_HEADER_PARAMS, INVALID_MESSAGE_PARAMS_3,Optional.empty()));
     }
 }
\ No newline at end of file
diff --git a/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/simulator/TestMessages.java b/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/simulator/TestMessages.java
index 2f166b2..7f33e17 100644
--- a/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/simulator/TestMessages.java
+++ b/test/mocks/pnfsimulator/src/test/java/org/onap/pnfsimulator/simulator/TestMessages.java
@@ -20,35 +20,34 @@
 
 package org.onap.pnfsimulator.simulator;
 
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Optional;
 import org.json.JSONObject;
 
 final class TestMessages {
 
-    static final JSONObject VALID_SIMULATOR_PARAMS = new JSONObject(
-        "{\n" +
-            "    \"vesServerUrl\": \"http://10.42.111.42:8080/eventListener/v5\",\n" +
-            "    \"testDuration\": \"10\",\n" +
-            "    \"messageInterval\": \"1\"\n" +
-            "}");
+    static final JSONObject VALID_SIMULATOR_PARAMS = new JSONObject(getContent("validSimulatorParams.json"));
+    static final JSONObject VALID_COMMON_EVENT_HEADER_PARAMS = new JSONObject(getContent("validCommonEventHeaderParams.json"));
+    static final Optional<JSONObject> VALID_PNF_REGISTRATION_PARAMS = Optional.ofNullable(new JSONObject(getContent("validPnfRegistrationParams.json")));
 
+    private static String getContent(String fileName){
 
-    static final JSONObject VALID_MESSAGE_PARAMS = new JSONObject(
-        "{\n"
-            + "    \"pnf_serialNumber\": \"6061ZW3\",\n"
-            + "    \"pnf_vendorName\": \"Nokia\",\n"
-            + "    \"pnf_oamV4IpAddress\": \"val3\",\n"
-            + "    \"pnf_oamV6IpAddress\": \"val4\",\n"
-            + "    \"pnf_unitFamily\": \"BBU\",\n"
-            + "    \"pnf_modelNumber\": \"val6\",\n"
-            + "    \"pnf_softwareVersion\": \"val7\",\n"
-            + "    \"pnf_unitType\": \"val8\",\n"
-            + "    \"eventName\": \"pnfRegistration_Nokia_5gDu\",\n"
-            + "    \"nfNamingCode\": \"gNB\",\n"
-            + "    \"nfcNamingCode\": \"oam\",\n"
-            + "    \"sourceName\": \"NOK6061ZW3\",\n"
-            + "    \"sourceId\": \"val13\",\n"
-            + "    \"reportingEntityName\": \"NOK6061ZW3\"\n"
-            + "  }");
+        try {
+            String pathAsString = TestMessages.class.getResource(fileName).getPath();
+            Path path  = Paths.get(pathAsString);
+            StringBuilder stringBuilder = new StringBuilder();
+            Files.readAllLines(path).forEach(line -> {
+                stringBuilder.append(line);
+            });
+            return stringBuilder.toString();
+        } catch (IOException e) {
+            throw new RuntimeException(String.format("Cannot read JSON file %s",fileName));
+        }
+
+    }
 
     static final JSONObject INVALID_SIMULATOR_PARAMS = new JSONObject(
         "{\n" +
@@ -57,7 +56,7 @@
             "}");
 
 
-    static final JSONObject INVALID_MESSAGE_PARAMS_1 = new JSONObject(
+    static final Optional<JSONObject> INVALID_MESSAGE_PARAMS_1 = Optional.ofNullable(new JSONObject(
         "{\n" +
             "    \"pnfSerialNumber\": \"val1\",\n" +
             "    \"pnfVendorName\": \"val2\",\n" +
@@ -71,9 +70,9 @@
             "    \"sourceName\": \"val12\",\n" +
             "    \"sourceId\": \"val13\",\n" +
             "    \"reportingEntityName\": \"val14\"\n" +
-            "}");
+            "}"));
 
-    static final JSONObject INVALID_MESSAGE_PARAMS_2 = new JSONObject(
+    static final Optional<JSONObject> INVALID_MESSAGE_PARAMS_2 = Optional.ofNullable(new JSONObject(
         "{\n" +
             "    \"pnfVendorName\": \"val2\",\n" +
             "    \"pnfOamIpv4Address\": \"val3\",\n" +
@@ -88,9 +87,9 @@
             "    \"sourceName\": \"val12\",\n" +
             "    \"sourceId\": \"val13\",\n" +
             "    \"reportingEntityName\": \"val14\"\n" +
-            "}");
+            "}"));
 
-    static final JSONObject INVALID_MESSAGE_PARAMS_3 = new JSONObject(
+    static final Optional<JSONObject> INVALID_MESSAGE_PARAMS_3 = Optional.ofNullable(new JSONObject(
         "{\n" +
             "    \"pnfSerialNumber\": \"val1\",\n" +
             "    \"pnfOamIpv4Address\": \"val3\",\n" +
@@ -104,7 +103,8 @@
             "    \"sourceName\": \"val12\",\n" +
             "    \"sourceId\": \"val13\",\n" +
             "    \"reportingEntityName\": \"val14\"\n" +
-            "}");
+            "}"));
+
 
     private TestMessages() {
     }
diff --git a/test/mocks/pnfsimulator/src/test/resources/org/onap/pnfsimulator/simulator/validCommonEventHeaderParams.json b/test/mocks/pnfsimulator/src/test/resources/org/onap/pnfsimulator/simulator/validCommonEventHeaderParams.json
new file mode 100644
index 0000000..e0f4550
--- /dev/null
+++ b/test/mocks/pnfsimulator/src/test/resources/org/onap/pnfsimulator/simulator/validCommonEventHeaderParams.json
@@ -0,0 +1,8 @@
+{
+  "eventName": "pnfRegistration_Nokia_5gDu",
+  "nfNamingCode": "gNB",
+  "nfcNamingCode": "oam",
+  "sourceName": "NOK6061ZW3",
+  "sourceId": "val13",
+  "reportingEntityName": "NOK6061ZW3"
+}
\ No newline at end of file
diff --git a/test/mocks/pnfsimulator/src/test/resources/org/onap/pnfsimulator/simulator/validNotificationParams.json b/test/mocks/pnfsimulator/src/test/resources/org/onap/pnfsimulator/simulator/validNotificationParams.json
new file mode 100644
index 0000000..f7f463d
--- /dev/null
+++ b/test/mocks/pnfsimulator/src/test/resources/org/onap/pnfsimulator/simulator/validNotificationParams.json
@@ -0,0 +1,20 @@
+{
+  "changeIdentifier": "PM_MEAS_FILES",
+  "changeType": "FileReady",
+  "arrayOfNamedHashMap": [
+    {"name": "A20161221.1031-1041.bin.gz", "hashMap": {
+      "location": "ftpes://192.169.0.1:22/ftp/rop/A20161224.1030-1045.bin.gz",
+      "compression": "gzip",
+      "fileformatType": "org.3GPP.32.435#measCollec",
+      "fileFormatVersion": "V10"
+    }
+    },
+    {"name": "A20161222.1042-1102.bin.gz", "hashMap": {
+      "location": "ftpes://192.168.0.102:22/ftp/rop/A20161224.1045-1100.bin.gz",
+      "compression": "gzip",
+      "fileFormatType": "org.3GPP.32.435#measCollec",
+      "fileFormatVersion": "V10"
+    }
+    }
+  ]
+}
diff --git a/test/mocks/pnfsimulator/src/test/resources/org/onap/pnfsimulator/simulator/validPnfRegistrationParams.json b/test/mocks/pnfsimulator/src/test/resources/org/onap/pnfsimulator/simulator/validPnfRegistrationParams.json
new file mode 100644
index 0000000..b95f8e6
--- /dev/null
+++ b/test/mocks/pnfsimulator/src/test/resources/org/onap/pnfsimulator/simulator/validPnfRegistrationParams.json
@@ -0,0 +1,10 @@
+{
+  "serialNumber": "6061ZW3",
+  "vendorName": "Nokia",
+  "oamV4IpAddress": "val3",
+  "oamV6IpAddress": "val4",
+  "unitFamily": "BBU",
+  "modelNumber": "val6",
+  "softwareVersion": "val7",
+  "unitType": "val8"
+}
\ No newline at end of file
diff --git a/test/mocks/pnfsimulator/src/test/resources/org/onap/pnfsimulator/simulator/validSimulatorParams.json b/test/mocks/pnfsimulator/src/test/resources/org/onap/pnfsimulator/simulator/validSimulatorParams.json
new file mode 100644
index 0000000..6485ee4
--- /dev/null
+++ b/test/mocks/pnfsimulator/src/test/resources/org/onap/pnfsimulator/simulator/validSimulatorParams.json
@@ -0,0 +1,5 @@
+{
+  "vesServerUrl": "http://VES-HOST:VES-PORT/eventListener/v7",
+  "testDuration": "10",
+  "messageInterval": "1"
+}
\ No newline at end of file
