Preparing simulator for INT-607
[integration.git] / test / mocks / pnfsimulator / src / main / java / org / onap / pnfsimulator / message / MessageProvider.java
1 package org.onap.pnfsimulator.message;
2
3 import static org.onap.pnfsimulator.message.MessageConstants.COMMON_EVENT_HEADER;
4 import static org.onap.pnfsimulator.message.MessageConstants.DOMAIN;
5 import static org.onap.pnfsimulator.message.MessageConstants.EVENT;
6 import static org.onap.pnfsimulator.message.MessageConstants.EVENT_ID;
7 import static org.onap.pnfsimulator.message.MessageConstants.EVENT_TYPE;
8 import static org.onap.pnfsimulator.message.MessageConstants.INTERNAL_HEADER_FIELDS;
9 import static org.onap.pnfsimulator.message.MessageConstants.LAST_EPOCH_MICROSEC;
10 import static org.onap.pnfsimulator.message.MessageConstants.OTHER_FIELDS;
11 import static org.onap.pnfsimulator.message.MessageConstants.OTHER_FIELDS_VERSION;
12 import static org.onap.pnfsimulator.message.MessageConstants.PNF_LAST_SERVICE_DATE;
13 import static org.onap.pnfsimulator.message.MessageConstants.PNF_MANUFACTURE_DATE;
14 import static org.onap.pnfsimulator.message.MessageConstants.PNF_PREFIX;
15 import static org.onap.pnfsimulator.message.MessageConstants.PRIORITY;
16 import static org.onap.pnfsimulator.message.MessageConstants.SEQUENCE;
17 import static org.onap.pnfsimulator.message.MessageConstants.START_EPOCH_MICROSEC;
18 import static org.onap.pnfsimulator.message.MessageConstants.VERSION;
19
20 import java.util.Map;
21 import java.util.UUID;
22 import org.json.JSONObject;
23
24 public class MessageProvider {
25
26     public JSONObject createMessage(JSONObject params) {
27
28         if (params == null) {
29             throw new IllegalArgumentException("Params object cannot be null");
30         }
31
32         Map<String, Object> paramsMap = params.toMap();
33         JSONObject root = new JSONObject();
34         JSONObject commonEventHeader = generateConstantCommonEventHeader();
35         JSONObject otherFields = generateConstantOtherFields();
36
37         paramsMap.forEach((key, value) -> {
38
39             if (key.startsWith(PNF_PREFIX)) {
40                 otherFields.put(key, value);
41             } else {
42                 commonEventHeader.put(key, value);
43             }
44         });
45
46         JSONObject event = new JSONObject();
47         event.put(COMMON_EVENT_HEADER, commonEventHeader);
48         event.put(OTHER_FIELDS, otherFields);
49         root.put(EVENT, event);
50         return root;
51     }
52
53     private JSONObject generateConstantCommonEventHeader() {
54
55         JSONObject commonEventHeader = new JSONObject();
56         long timestamp = System.currentTimeMillis();
57
58         commonEventHeader.put(DOMAIN, "other");
59         commonEventHeader.put(EVENT_ID, UUID.randomUUID() + "-reg");
60         commonEventHeader.put(EVENT_TYPE, "pnfRegistration");
61         commonEventHeader.put(LAST_EPOCH_MICROSEC, timestamp);
62         commonEventHeader.put(PRIORITY, "Normal");
63         commonEventHeader.put(SEQUENCE, 0);
64         commonEventHeader.put(START_EPOCH_MICROSEC, timestamp);
65         commonEventHeader.put(INTERNAL_HEADER_FIELDS, new JSONObject());
66         commonEventHeader.put(VERSION, 3);
67
68         return commonEventHeader;
69     }
70
71     private JSONObject generateConstantOtherFields() {
72
73         JSONObject otherFields = new JSONObject();
74
75         otherFields.put(OTHER_FIELDS_VERSION, 1);
76         otherFields.put(PNF_LAST_SERVICE_DATE, System.currentTimeMillis());
77         otherFields.put(PNF_MANUFACTURE_DATE, System.currentTimeMillis());
78
79         return otherFields;
80     }
81 }