Update Submit Test event feature to send custom data

Changes Added : Updated the submit test event feature to send test
data as per spec

https://www.dmtf.org/sites/default/files/standards/documents/
DSP2046_2019.1.pdf


Testing :

Tested sending custom test data
and same data received at the event listener
Change-Id: I2c2363a676aafd39c121c9fe4e16402c0f5961e2
Signed-off-by: Chandramohan Harkude <chandramohan.harkude@gmail.com>
diff --git a/redfish-core/src/subscription.cpp b/redfish-core/src/subscription.cpp
index 821077a..34dc76f 100644
--- a/redfish-core/src/subscription.cpp
+++ b/redfish-core/src/subscription.cpp
@@ -21,7 +21,6 @@
 #include "event_matches_filter.hpp"
 #include "event_service_store.hpp"
 #include "filter_expr_executor.hpp"
-#include "generated/enums/log_entry.hpp"
 #include "heartbeat_messages.hpp"
 #include "http_client.hpp"
 #include "http_response.hpp"
@@ -210,21 +209,57 @@
     return true;
 }
 
-bool Subscription::sendTestEventLog()
+bool Subscription::sendTestEventLog(TestEvent& testEvent)
 {
     nlohmann::json::array_t logEntryArray;
     nlohmann::json& logEntryJson = logEntryArray.emplace_back();
 
-    logEntryJson["EventId"] = "TestID";
-    logEntryJson["Severity"] = log_entry::EventSeverity::OK;
-    logEntryJson["Message"] = "Generated test event";
-    logEntryJson["MessageId"] = "OpenBMC.0.2.TestEventLog";
+    if (testEvent.eventGroupId)
+    {
+        logEntryJson["EventGroupId"] = *testEvent.eventGroupId;
+    }
+
+    if (testEvent.eventId)
+    {
+        logEntryJson["EventId"] = *testEvent.eventId;
+    }
+
+    if (testEvent.eventTimestamp)
+    {
+        logEntryJson["EventTimestamp"] = *testEvent.eventTimestamp;
+    }
+
+    if (testEvent.originOfCondition)
+    {
+        logEntryJson["OriginOfCondition"]["@odata.id"] =
+            *testEvent.originOfCondition;
+    }
+    if (testEvent.severity)
+    {
+        logEntryJson["Severity"] = *testEvent.severity;
+    }
+
+    if (testEvent.message)
+    {
+        logEntryJson["Message"] = *testEvent.message;
+    }
+
+    if (testEvent.resolution)
+    {
+        logEntryJson["Resolution"] = *testEvent.resolution;
+    }
+
+    if (testEvent.messageId)
+    {
+        logEntryJson["MessageId"] = *testEvent.messageId;
+    }
+
+    if (testEvent.messageArgs)
+    {
+        logEntryJson["MessageArgs"] = *testEvent.messageArgs;
+    }
     // MemberId is 0 : since we are sending one event record.
     logEntryJson["MemberId"] = "0";
-    logEntryJson["MessageArgs"] = nlohmann::json::array();
-    logEntryJson["EventTimestamp"] =
-        redfish::time_utils::getDateTimeOffsetNow().first;
-    logEntryJson["Context"] = userSub->customText;
 
     nlohmann::json msg;
     msg["@odata.type"] = "#Event.v1_4_0.Event";