Пример #1
0
        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);
        }
Пример #2
0
        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");
        }
Пример #3
0
        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\"");
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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");
        }