public void ExtendDeeplyNestedObjectTest() { dynamic dict = new ExpandoObject(); dict.original = new { Data = new { NetworkDeviceName = "FRA20-0101-0103-17T0", ReceivedDateTime = "2018-06-26T11:38:22.8758479Z", Data = new { NetworkDeviceGroups = new List <object> { "Device Role:All Device Roles:NDG-PHY-FABRIC-T0", "Program:All Programs:NDG-FABRICATOR-PROD", "Location:All Locations", "Property:All Properties:NDG-CIS", "Device Type:All Device Types:NDG-ARISTA-ALL" } } } }; int indexValue = 3; var extend = new ExtendOperator( $"result = strcat(\"<br><strong>Data.NetworkDeviceGroups[{indexValue}]: </strong> \", original.Data.Data.NetworkDeviceGroups[{indexValue}])"); IDictionary <string, object> result = extend.Extend(dict, true); bool containsValue = result["result"].ToString().Contains("Property:All Properties:NDG-CIS"); Assert.IsTrue(containsValue); }
public void ExtendSimpleTest() { var extend = new ExtendOperator("name = \"text\""); IDictionary <string, object> extended = extend.Extend(new Dictionary <string, object>()); var result = extended["name"].ToString(); Assert.AreEqual(result, "text"); }
public void EscapedDoubleQuoteStringTest_Simple() { dynamic dict = new ExpandoObject(); string extendStatement = @"extend str = strcat(""this is a "", ""\""string\"""")"; var extendOperator = new ExtendOperator(extendStatement); dynamic e = extendOperator.Extend(dict); Assert.AreEqual(e.str, "this is a \"string\""); }
public void StrCatExtremeStringTest_Xml() { dynamic dict = new ExpandoObject(); string strcatHtml = "extend str = strcat(\"ObjectProperty\", \" <br><strong>ArisReportSource: </strong> \", \"original.Source\", \" <br><strong>DetectionId: </strong> \", \"original.Data.DetectionId\", \" <br><strong>Data.ACSVersion: </strong> \", \"original.Data.Data.ACSVersion\", \" <br><strong>Data.Action: </strong> \", \"original.Data.Data.Action\", \" <br><strong>Data.Category: </strong> \", \"original.Data.Data.Category\", \" <br><strong>UserName: </strong> \", \"original.Data.UserName\", \" <br><strong>sourceAddress: </strong> \", \"original.Data.sourceAddress\", \" <br><strong>destinationAddress: </strong> \", \"original.Data.destinationAddress\", \" <br><strong>Data.HostName: </strong> \", \"original.Data.Data.HostName\", \" <br><strong>Data.Device IP Address: </strong> \", \"original.Data.Data.[\'Device_IP_Address\']\", \" <br><strong>Data.Remote-Address: </strong> \", \"original.Data.Data.[\'Remote-Address\']\", \" <br><strong>Data.SelectedShellProfile: </strong> \", \"original.Data.Data.SelectedShellProfile\", \" <br><strong>Data.UserName: </strong> \", \"original.Data.Data.UserName\", \" <br><strong>Data.AD-Groups-Names: </strong> \", \"original.Data.Data.[\'AD-Groups-Names\']\", \" <br><strong>Data.AD-User-Candidate-Identities: </strong> \", \"original.Data.[\'Data.AD-User-Candidate-Identities\']\", \" <br><strong>Data.NetworkDeviceGroups[0]: </strong> \", \"original.Data.Data.NetworkDeviceGroups[0]\", \" <br><strong>Data.NetworkDeviceName: </strong> \", \"original.Data.Data.NetworkDeviceName\", \" <br><strong>Message: </strong> \", \"original.Data.Message\", \" <br><strong>IngestionTime: </strong> \", \"original.Data.IngestionTime\", \" <br><strong>ReceivedDateTime: </strong> \", \"original.Data.ReceivedDateTime\", \" <br>\")"; Console.WriteLine(strcatHtml); var extendOperator = new ExtendOperator(strcatHtml); dynamic e = extendOperator.Extend(dict); Console.WriteLine(e.str); }
public void EscapedDoubleQuoteStringTest_Xml() { dynamic dict = new ExpandoObject(); // var dkj = @"extend str = strcat(""<html xmlns: v =\""urn:schemas-microsoft-com:vml\""-xmlns"", "":o=\""urn:schemas-microsoft-com:office:office\""-xmlns:w=\""urn:schemas-microsoft-com:office:word\"""")"; var strcatHtml = @"extend str = strcat(""<html xmlns: v =\""urn:schemas-microsoft-com:vml\"" xmlns"", "":o=\""urn:schemas-microsoft-com:office:office\"" xmlns:w=\""urn:schemas-microsoft-com:office:word\"""")"; Console.WriteLine(strcatHtml); var extendOperator = new ExtendOperator(strcatHtml); dynamic e = extendOperator.Extend(dict); Console.WriteLine(e.str); }
public void ExtendWithIndexedFieldReference() { dynamic testObject = new ExpandoObject(); testObject.Rows = new List <Object>(); dynamic row = new ExpandoObject(); testObject.Rows.Add(row); row.SubscriptionId = Guid.Empty; ExtendOperator extendOperator = new ExtendOperator("SubscriptionId = Rows[0].SubscriptionId"); dynamic e = extendOperator.Extend(testObject); object subscriptionId = e.SubscriptionId; Assert.IsTrue(!string.IsNullOrEmpty(subscriptionId?.ToString()), "Failed to expand SubscriptionId"); }