Пример #1
0
        public async Task SetTriggerProperty_ChannelAsync()
        {
            var triggerItem = NotificationTriggerItem.ThresholdTrigger(channel: "Backup State", parentId: "4000");
            var channelItem = new ChannelItem(name: "Backup State");
            var response    = new NotificationTriggerResponse(new[] { triggerItem }, new[] { channelItem });
            var client      = Initialize_Client(response);

            var trigger = client.GetNotificationTriggers(4000).First(t => t.Type == TriggerType.Threshold);

            await ExecuteAsync(
                async c =>
            {
                var channel = await c.GetChannelAsync(4000, 1);

                await c.SetTriggerPropertyAsync(trigger, TriggerProperty.Channel, channel);
            },
                new[]
            {
                UnitRequest.Channels(4000),
                UnitRequest.ChannelProperties(4000, 1),
                UnitRequest.Sensors("filter_objid=4000"),
                UnitRequest.Channels(4000),
                UnitRequest.ChannelProperties(4000, 1),
                UnitRequest.EditSettings("id=4000&subid=7&channel_7=1")
            }
                );
        }
Пример #2
0
        private void StreamSerial(SensorParameters parameters, string[] address, bool requestCount = false, int?count = null)
        {
            var url = new List <string>();

            if (requestCount)
            {
                url.Add(UnitRequest.SensorCount);
            }

            url.AddRange(address.Select(a => UnitRequest.Sensors(a, UrlFlag.Columns)));

            Dictionary <Content, int> countOverride = null;

            if (count != null)
            {
                countOverride = new Dictionary <Content, int>();
                countOverride[Content.Sensors] = count.Value;
            }

            Execute(
                c => c.StreamSensors(parameters, true).ToList(),
                url.ToArray(),
                countOverride
                );
        }
Пример #3
0
        protected override IWebResponse GetResponse(string address, Content content)
        {
            switch (requestNum)
            {
            case 1:     //Get a group
                Assert.AreEqual(UnitRequest.Groups("count=1", UrlFlag.Columns), address);
                return(new GroupResponse(new GroupItem(objid: "2000")));

            case 2:     //Are there any other groups called "Windows Infrastructure"?
                Assert.AreEqual(UnitRequest.Groups("count=*&filter_name=Windows+Infrastructure", UrlFlag.Columns), address);
                return(new GroupResponse(new GroupItem(objid: "2000"), new GroupItem(objid: "2050")));

            case 3:     //Get all devices under the group "Windows Infrastructure" that we're piping from
                Assert.AreEqual(UnitRequest.Devices("count=*&filter_parentid=2000", UrlFlag.Columns), address);
                return(new DeviceResponse(new DeviceItem(name: "Device1", objid: "3000"), new DeviceItem(name: "Device2", objid: "3001")));

            case 4:     //Get all sensors from the child devices
                Assert.AreEqual(UnitRequest.Sensors("count=*&filter_name=@sub(ping)&filter_parentid=3000&filter_parentid=3001", UrlFlag.Columns), address);
                return(new SensorResponse(new SensorItem(name: "Ping", objid: "4000"), new SensorItem(name: "Pong2", objid: "4001")));

            case 5:     //Get all child groups under "Windows Infrastructure
                Assert.AreEqual(UnitRequest.Groups("count=*&filter_parentid=2000", UrlFlag.Columns), address);
                return(new GroupResponse(new GroupItem(name: "Child Group", objid: "2001", totalsens: "0")));

            default:
                throw UnknownRequest(address);
            }
        }
 private void Channel_SetValueLookup(object value, string url)
 {
     Execute(
         c => c.SetChannelProperty(1001, 1, ChannelProperty.ValueLookup, value),
         UnitRequest.EditSettings($"id=1001&valuelookup_1={url}")
         );
 }
Пример #5
0
        protected override IWebResponse GetResponse(string address, Content content)
        {
            switch (requestNum)
            {
            case 1:     //Request 2 ping sensors. We instead return 2 "pong" logs
                Assert.AreEqual(UnitRequest.Logs("count=2&start=1&filter_name=ping", UrlFlag.Columns), address);
                return(new MessageResponse(new MessageItem("Ping"), new MessageItem("Pong2")));

            case 2:     //We're going to have to stream. Request how many objects exist
                Assert.AreEqual(UnitRequest.Logs("count=1&columns=objid,name&filter_name=ping", null), address);
                return(new MessageResponse(Enumerable.Range(0, 2).Select(i => new MessageItem()).ToArray()));

            case 3:     //Request the 1 remaining log
                Assert.AreEqual(UnitRequest.Logs("count=1&start=3&filter_name=ping", UrlFlag.Columns), address);
                return(new MessageResponse(
                           new MessageItem("Ping"),       //Skipped by BaseResponse
                           new MessageItem("Pong2 Again") //Skipped by BaseResponse
                           )
                {
                    Stream = true
                });

            default:
                throw UnknownRequest(address);
            }
        }
Пример #6
0
        protected override IWebResponse GetResponse(string address)
        {
            switch (requestNum)
            {
            case 1:
                Assert.AreEqual(address, UnitRequest.Objects("filter_objid=1001"));
                return(new ProbeResponse(new ProbeItem(objid: "1001", name: "Local Probe")));

            case 2:
                Assert.AreEqual(address, UnitRequest.Probes("filter_objid=1001&filter_parentid=0"));
                return(new ProbeResponse(new ProbeItem(objid: "1001", name: "Local Probe")));

            //Probe -> Devices
            case 3:
                Assert.AreEqual(address, UnitRequest.Devices("filter_parentid=1001"));
                return(new DeviceResponse(
                           new DeviceItem(objid: "3001", name: "dc-1", position: "10", positionRaw: "10"),
                           new DeviceItem(objid: "3002", name: "dc-2", position: "20", positionRaw: "20")
                           ));

            //Probe -> Groups
            case 4:
                Assert.AreEqual(address, UnitRequest.Groups("filter_parentid=1001"));
                return(new GroupResponse(new GroupItem(objid: "2001", name: "Servers", position: "30", positionRaw: "30")));

            //Probe -> Triggers
            case 5:
                Assert.AreEqual(address, UnitRequest.Triggers(1001));
                return(new NotificationTriggerResponse(
                           NotificationTriggerItem.StateTrigger(onNotificationAction: "300|Trigger1", parentId: "1001"),
                           NotificationTriggerItem.StateTrigger(onNotificationAction: "301|Trigger2", parentId: "1001"),
                           NotificationTriggerItem.StateTrigger(onNotificationAction: "302|Trigger3", parentId: "1001")
                           ));

            //Probe -> Devices -> Sensors
            case 6:
                Assert.AreEqual(address, UnitRequest.Sensors("filter_parentid=3001"));
                return(new SensorResponse(
                           new SensorItem(name: "Sensor2", objid: "4002", position: "20", positionRaw: "20"),
                           new SensorItem(name: "Sensor1", objid: "4001", position: "10", positionRaw: "10")
                           ));

            case 7:
                Assert.AreEqual(address, UnitRequest.Sensors("filter_parentid=3002"));
                return(new SensorResponse());

            //Probe -> Groups -> Devices
            case 8:
                Assert.AreEqual(address, UnitRequest.Devices("filter_parentid=2001"));
                return(new DeviceResponse());

            //Probe -> Groups -> Groups
            case 9:
                Assert.AreEqual(address, UnitRequest.Groups("filter_parentid=2001"));
                return(new GroupResponse());

            default:
                throw UnknownRequest(address);
            }
        }
Пример #7
0
        private Tuple <PrtgClient, AddressValidatorResponse> GetAddExcessiveSensorClient(List <WmiServiceTarget> services, RequestVersion version)
        {
            var formats = services.Select(s => "service__check=" + WebUtility.UrlEncode(((ISerializable)s).GetSerializedFormat())).ToList();

            var urls = new List <string>();

            //We don't request status since we already injected our version
            urls.Add(UnitRequest.BeginAddSensorQuery(1001, "wmiservice"));

            for (int i = 0; i < formats.Count; i += 30)
            {
                var thisRequest = formats.Skip(i).Take(30);

                var str = string.Join("&", thisRequest);

                var auth = version == RequestVersion.v18_1 ? "tmpid=2" : "username=username&passhash=12345678";

                var url = $"https://prtg.example.com/addsensor5.htm?name_=Service&priority_=3&inherittriggers_=1&intervalgroup=1&interval_=60%7C60+seconds&errorintervalsdown_=1&tags_=wmiservicesensor+servicesensor&restart_=0&monitorchange_=1&monitorextended_=0&service_=1&sensortype=wmiservice&{str}&id=1001&{auth}";

                urls.Add(url);

                if (i == 0 && version == RequestVersion.v18_1)
                {
                    urls.Add(UnitRequest.AddSensorProgress(1001, 2, true));
                }
            }

#pragma warning disable 618
            var response = new AddressValidatorResponse(urls.ToArray(), true);

            var client = Initialize_Client(response, version);
#pragma warning restore 618

            return(Tuple.Create(client, response));
        }
Пример #8
0
        public void Tree_Lazy_Child_ResolvesOnlyOnce()
        {
            var client = BaseTest.Initialize_Client(new TreeRequestResponse(TreeRequestScenario.MultiLevelContainer));

            var validator = new EventValidator(client, new[]
            {
                //Get Object
                UnitRequest.Objects("filter_objid=1001"),

                //Get Probe
                UnitRequest.Probes("filter_objid=1001&filter_parentid=0"),

                //Probe -> Devices/Groups
                UnitRequest.Devices("filter_parentid=1001"),
                UnitRequest.Groups("filter_parentid=1001"),

                //Probe -> Device -> Sensors
                UnitRequest.Sensors("filter_parentid=3001")
            });

            validator.MoveNext(2);
            var tree = client.GetTreeLazy(1001);

            validator.MoveNext(2);
            var child      = tree.Children[0];
            var childAgain = tree.Children[0];

            validator.MoveNext();
            var grandChild      = child.Children[0];
            var grandChildAgain = child.Children[0];
        }
Пример #9
0
 public void Query_Select_AnonymousLiteral_ToWhere()
 {
     Execute(q => q.Select(s => new
     {
         First = 3
     }).Where(f => f.First == 3), $"content=sensors&columns={UnitRequest.DefaultSensorProperties()}&count=500", s => Assert.IsTrue(s.All(e => e.First == 3)));
 }
Пример #10
0
 public void Log_Watch_SpecifiesAStartDate()
 {
     Execute(
         c => c.WatchLogs(startDate: new DateTime(2000, 10, 2, 12, 10, 5, DateTimeKind.Utc)).Take(1).ToList(),
         UnitRequest.Logs("start=1&filter_dstart=2000-10-02-12-10-05")
         );
 }
        protected override IWebResponse GetResponse(string address, Content content)
        {
            switch (requestNum)
            {
            case 1:     //Get a group
                Assert.AreEqual(UnitRequest.Groups("count=1", UrlFlag.Columns), address);
                return(new GroupResponse(new GroupItem()));

            case 2:     //Are there any other groups called "Windows Infrastructure"?
                Assert.AreEqual(UnitRequest.Groups("count=*&filter_name=Windows+Infrastructure", UrlFlag.Columns), address);
                return(new GroupResponse(new GroupItem()));

            case 3:     //Get all sensors under the group "Windows Infrastructure"
                Assert.AreEqual(UnitRequest.Sensors("count=*&filter_name=@sub(ping)&filter_group=Windows+Infrastructure", UrlFlag.Columns), address);
                return(new SensorResponse(new SensorItem(name: "First"), new SensorItem(name: "Ping")));

            case 4:     //Get the child groups of "Windows Infrastructure"
                Assert.AreEqual(UnitRequest.Groups("count=*&filter_parentid=2211", UrlFlag.Columns), address);
                return(new GroupResponse(new GroupItem(name: "Child Group")));

            case 5:     //Are there any other groups called "Child Group"?
                Assert.AreEqual(UnitRequest.Groups("count=*&filter_name=Child+Group", UrlFlag.Columns), address);
                return(new GroupResponse(new GroupItem(name: "Child Group")));

            case 6:     //Get all sensors under the group "Child Group"
                Assert.AreEqual(UnitRequest.Sensors("count=*&filter_name=@sub(ping)&filter_group=Child+Group", UrlFlag.Columns), address);
                return(new SensorResponse(new SensorItem(name: "Second"), new SensorItem(name: "Ping"), new SensorItem(name: "Ping")));

            default:
                throw UnknownRequest(address);
            }
        }
Пример #12
0
        protected override IWebResponse GetResponse(string address)
        {
            switch (requestNum)
            {
            case 1:
                Assert.AreEqual(UnitRequest.Groups("count=1", UrlFlag.Columns), address);
                return(new BasicResponse(standardResponse.GetResponseText(ref address)));

            case 2:
                Assert.AreEqual(UnitRequest.Groups("filter_objid=9999"), address);
                return(new GroupResponse(new GroupItem(objid: "2000", groupnum: "0", groupnumRaw: "0", devicenum: "1", devicenumRaw: "1")));

            //Tree

            case 3:
                Assert.AreEqual(UnitRequest.Devices("filter_parentid=2000"), address);
                return(new DeviceResponse(new DeviceItem(objid: "3001"), new DeviceItem(objid: "3002")));

            case 4:
                Assert.AreEqual(UnitRequest.Sensors("filter_parentid=3001"), address);
                return(new SensorResponse(new SensorItem(objid: "4001")));

            case 5:
                Assert.AreEqual(UnitRequest.Sensors("filter_parentid=3002"), address);
                return(new SensorResponse(new SensorItem(objid: "4002")));

            default:
                throw UnknownRequest(address);
            }
        }
Пример #13
0
        protected void ExecuteUnsupportedNow <TResult>(
            Func <IQueryable <Sensor>, TResult> illegalAction,
            string message,
            Func <IQueryable <Sensor>, TResult> legalAction,
            string legalUrl,
            Action <TResult> legalValidator
            )
        {
            AssertEx.Throws <NotSupportedException>(
                () => ExecuteClient(c => illegalAction(c.QuerySensors(true)), new string[] { }, null),
                message
                );

            var flags = UnitRequest.DefaultObjectFlags & ~UrlFlag.Count;

            if (!legalUrl.Contains("count"))
            {
                legalUrl = "count=500" + (string.IsNullOrEmpty(legalUrl) ? legalUrl : $"&{legalUrl}");
            }

            var urls = new[]
            {
                UnitRequest.Sensors(legalUrl, flags)
            };

            ExecuteClient(c => legalAction(c.QuerySensors(true)), urls, legalValidator);
        }
Пример #14
0
        protected void ExecuteUnsupportedInternal <TSource, TResult>(
            Func <PrtgClient, IQueryable <TSource> > query,
            Func <IQueryable <TSource>, IQueryable <TResult> > illegalAction,
            string message,
            Func <IQueryable <TSource>, IEnumerable <TResult> > legalAction,
            string legalUrl,
            Action <List <TResult> > legalValidator
            )
        {
            AssertEx.Throws <NotSupportedException>(
                () => ExecuteClient(c => illegalAction(query(c)), new string[] { }, s => s.ToList()),
                message
                );

            var flags = UnitRequest.DefaultObjectFlags & ~UrlFlag.Count;

            if (!legalUrl.Contains("count"))
            {
                legalUrl = "count=500" + (string.IsNullOrEmpty(legalUrl) ? legalUrl : $"&{legalUrl}");
            }

            var urls = new[]
            {
                typeof(TSource) == typeof(Log) ? UnitRequest.Logs(legalUrl, flags) : UnitRequest.Sensors(legalUrl, flags)
            };

            ExecuteClient(c => legalAction(query(c)), urls, s => legalValidator(s.ToList()));
        }
Пример #15
0
        private async Task AddSensorAsync(RequestVersion version)
        {
            var builder = new StringBuilder();

            builder.Append("https://prtg.example.com/addsensor5.htm?name_=XML+Custom+EXE%2FScript+Sensor&priority_=3&inherittriggers_=1&intervalgroup=1&interval_=60%7C60+seconds");
            builder.Append("&errorintervalsdown_=1&tags_=xmlexesensor&exefile_=test.ps1%7Ctest.ps1%7C%7C&exeparams_=&environment_=0");
            builder.Append("&usewindowsauthentication_=0&mutexname_=&timeout_=60&writeresult_=0&sensortype=exexml&id=1001&");

            var auth = version == RequestVersion.v18_1 ? "tmpid=2" : "username=username&passhash=12345678";

            builder.Append(auth);

            var urls = new List <string>
            {
                ////We don't request status since we already injected our version
                UnitRequest.BeginAddSensorQuery(1001, "exexml"),
                builder.ToString()
            };

            if (version == RequestVersion.v18_1)
            {
                urls.Add(UnitRequest.AddSensorProgress(1001, 2, true));
            }

            var parameters = new ExeXmlSensorParameters("test.ps1");

            await ExecuteAsync(
                async c => await c.AddSensorAsync(1001, parameters, false),
                urls.ToArray(),
                version : version
                );
        }
        public void NotificationTrigger_LoadsAction_Lazy()
        {
            var client = Initialize_Client(new NotificationTriggerResponse(NotificationTriggerItem.StateTrigger(offNotificationAction: "302|Email to all members of group PRTG Administrator")));

            var validator = new EventValidator <string>(new[]
            {
                //First - get all triggers
                UnitRequest.Triggers(1001),

                //Second - touch a trigger's action's unsupported property
                UnitRequest.Notifications("filter_objid=301&filter_objid=302"),
                UnitRequest.NotificationProperties(301),

                //Third - touch an unsupported property of another action
                UnitRequest.NotificationProperties(302)
            });

            client.LogVerbose += (s, e) =>
            {
                var message = Regex.Replace(e.Message, "(.+ request )(.+)", "$2");

                Assert.AreEqual(validator.Get(message), message);
            };

            validator.MoveNext();
            var triggers = client.GetNotificationTriggers(1001);

            validator.MoveNext(2);
            var val = triggers.First().OnNotificationAction.Postpone;

            validator.MoveNext();
            var val2 = triggers.First().OffNotificationAction.Postpone;

            Assert.IsTrue(validator.Finished, "Did not process all requests");
        }
Пример #17
0
        private Tuple <PrtgClient, AddressValidatorResponse> GetUntilMatchedClient(int pageSize = 500)
        {
            var items = new List <BaseItem>();

            items.AddRange(GetPage("Yes", pageSize));
            items.AddRange(GetPage("YeNo", pageSize));
            items.AddRange(GetPage("YeNo", pageSize));
            items.AddRange(GetPage("Yes", pageSize));
            items.AddRange(GetPage("YeNo", pageSize));
            items.AddRange(GetPage("Yes", pageSize));

            var urls = new object[]
            {
                UnitRequest.Sensors($"count={pageSize}&filter_name=@sub(Ye)", UrlFlag.Columns),                      //Yes
                UnitRequest.Sensors($"count={pageSize}&filter_name=@sub(Ye)&start={pageSize * 1}", UrlFlag.Columns), //YeNo
                UnitRequest.Sensors($"count={pageSize}&filter_name=@sub(Ye)&start={pageSize * 2}", UrlFlag.Columns), //YeNo
                UnitRequest.Sensors($"count={pageSize}&filter_name=@sub(Ye)&start={pageSize * 3}", UrlFlag.Columns)  //Yes
            };

#pragma warning disable 618
            var response = new AddressValidatorResponse(urls)
            {
                ItemOverride = new Dictionary <Content, BaseItem[]>
                {
                    [Content.Sensors] = items.ToArray()
                }
            };
#pragma warning restore 618

            var client = Initialize_Client(response);

            return(Tuple.Create(client, response));
        }
Пример #18
0
        //One stream
        private void QueryLog(
            System.Linq.Expressions.Expression <Func <Log, bool> > predicate,
            Func <PrtgClient, IEnumerable <Log> > stream,
            string[] url,
            Enum[] streamOrder = null)
        {
            var urls = url.SelectMany(s =>
            {
                if (!s.Contains("count"))
                {
                    s = $"count=500&{s}";
                }

                return(new[]
                {
                    UnitRequest.Logs(s, UrlFlag.Columns)
                });
            }).ToArray();

            ExecuteClient(c => c.QueryLogs(predicate), urls, s => s.ToList());

            if (streamOrder != null)
            {
                urls = GetStreamLogUrls(urls, streamOrder);
            }

            ExecuteClient(stream, urls, s => s.ToList());
        }
Пример #19
0
        public IActionResult CreateUpdate(UnitRequest request)
        {
            bool response = false;

            if (request.Id > 0)
            {
                response = _proxy.UpdateUnit(request.Id, request);
                if (response)
                {
                    return(Redirect("/unit/list"));
                }
            }
            else
            {
                response = _proxy.CreateUnit(request);
                if (response)
                {
                    return(Redirect("/unit/list"));
                }
            }

            ViewBag.Message = (!response) ? "Bad Request" : string.Empty;

            return(View(request));
        }
Пример #20
0
 private void QueryGroup(System.Linq.Expressions.Expression <Func <Group, bool> > predicate, string url)
 {
     ExecuteClient(c => c.QueryGroups(predicate), new[]
     {
         UnitRequest.Groups($"count=500" + (string.IsNullOrEmpty(url) ? url : $"&{url}"), UrlFlag.Columns)
     }, s => s.ToList());
 }
Пример #21
0
 private void QueryProbe(System.Linq.Expressions.Expression <Func <Probe, bool> > predicate, string url)
 {
     ExecuteClient(c => c.QueryProbes(predicate), new[]
     {
         UnitRequest.Probes($"count=500" + (string.IsNullOrEmpty(url) ? url : $"&{url}") + "&filter_parentid=0", UrlFlag.Columns)
     }, s => s.ToList());
 }
Пример #22
0
        public void Query_Where_Sensors_MatchAnyDevices()
        {
            var urls = new List <string>
            {
                UnitRequest.Sensors("count=500", UrlFlag.Columns)
            };

            var filters = new[]
            {
                "filter_objid=3000",
                "filter_objid=3001",
                "filter_objid=3002"
            };

            urls.AddRange(filters.SelectMany(f => new[]
            {
                UnitRequest.Devices($"count=500&{f}", UrlFlag.Columns)
            }
                                             ));

            var client = GetClient(urls.ToArray());

            var sensors = client.Item1.QuerySensors().Where(s => client.Item1.QueryDevices().Any(d => d.Id == s.Id - 1000)).ToList();

            Assert.AreEqual(3, sensors.Count);

            client.Item2.AssertFinished();
        }
Пример #23
0
        public void QueryFilter_LogProperties_DateTime_BackwardsAndForwards()
        {
            var url = new[] { UnitRequest.Logs($"count=500&start=1&filter_dend={Time.TodayStr}", UrlFlag.Columns) };

            ExecuteClient(c => c.QueryLogs().Where(l => l.DateTime < Time.Today), url, l => l.ToList());
            ExecuteClient(c => c.QueryLogs().Where(l => Time.Today > l.DateTime), url, l => l.ToList());
        }
Пример #24
0
 public void Query_Where_Intermediate_NewSensor_Select_FromSource()
 {
     ExecuteClient(c => c.QuerySensors().Where(s => new Sensor
     {
         Message = s.Name
     }.Message == "test").Select(s => s.Name), new[] { UnitRequest.Sensors("columns=name&count=500&filter_name=test", null) }, s => s.ToList());
 }
Пример #25
0
 public void Query_Where_Intermediate_NewSensor_ToWhere()
 {
     ExecuteClient(c => c.QuerySensors().Where(s => new Sensor
     {
         Message = s.Name
     }.Message == "test").Where(s => s.Id == 4000), new[] { UnitRequest.Sensors("count=500&filter_name=test&filter_objid=4000", UrlFlag.Columns) }, s => s.ToList());
 }
Пример #26
0
 public void Query_Where_Operators_Fake_EndsWith_Take()
 {
     ExecuteClient(
         c => c.QuerySensors(s => s.Name.EndsWith("0")).Take(2),
         new[] { UnitRequest.Sensors("count=500&filter_name=@sub(0)", UrlFlag.Columns) },
         s => Assert.AreEqual(1, s.Count())
         );
 }
Пример #27
0
 public void Query_Where_SplitRequests_OmitsId_WithSingleRequest()
 {
     ExecuteClient(
         c => c.QuerySensors(s => s.Name == "Ping").Select(s => s.Name),
         new[] { UnitRequest.Sensors("columns=name&count=500&filter_name=Ping", null) },
         s => s.ToList()
         );
 }
Пример #28
0
 public void Query_Where_SplitRequests_Logs_Select_MultipleSets_AllParameters()
 {
     ExecuteClient(
         c => c.QueryLogs().Where(l => l.Id == 1001 || l.Id == 1002).Select(l => l.Name),
         new[] { UnitRequest.Logs("count=500&start=1&id=1001", UrlFlag.Columns), UnitRequest.Logs("count=500&start=1&id=1002", UrlFlag.Columns) },
         l => l.ToList()
         );
 }
Пример #29
0
 public void Query_Where_SplitRequests_Logs_Select_SingleSet_ReduceParameters()
 {
     ExecuteClient(
         c => c.QueryLogs().Where(l => l.Id == 1001).Select(l => l.Name),
         new[] { UnitRequest.Logs("columns=objid,name&count=500&start=1&id=1001", null) },
         l => l.ToList()
         );
 }
Пример #30
0
 public void Query_Where_AsEnumerable_EnumerableMethod_AsQueryable()
 {
     ExecuteClient(
         c => c.QuerySensors().Where(s => s.Id == 4000).AsEnumerable().Where(s => s.Name == "Volume IO _Total0").AsQueryable(),
         new[] { UnitRequest.Sensors("count=500&filter_objid=4000", UrlFlag.Columns) },
         s => Assert.AreEqual(1, s.Count())
         );
 }