public void PageableParameters_IncreasesPage_StartAtZero() { var parameters = new SensorParameters(); //No initial value Assert.AreEqual(null, parameters.Start, "Initial start was incorrect"); Assert.AreEqual(null, parameters.Count, "Initial count was incorrect"); Assert.AreEqual(1, parameters.Page); //Increasing the page when we have no count does nothing parameters.Page++; Assert.AreEqual(null, parameters.Start, "Start was affected after increasing page with no count"); Assert.AreEqual(1, parameters.Page, "Page was affected after increasing page with no count"); //Increasing the page when we have a count works parameters.Count = 500; parameters.Page++; Assert.AreEqual(500, parameters.Start, "Start after increasing page with count was incorrect"); Assert.AreEqual(2, parameters.Page, "Page after increasing page with count was incorrect"); //Decreasing the page sets the start to 0 parameters.Page--; Assert.AreEqual(0, parameters.Start, "Start after decreasing page with count was incorrect"); Assert.AreEqual(1, parameters.Page, "Page after decreasing page with count was incorrect"); //Manually specifying the page number works parameters.Page = 3; Assert.AreEqual(1000, parameters.Start); Assert.AreEqual(3, parameters.Page); }
private void StreamSerial(SensorParameters parameters, string[] address, bool requestCount = false, int?count = null) { var url = new List <string>(); if (requestCount) { url.Add(TestHelpers.RequestSensorCount); } url.AddRange(address.Select(a => TestHelpers.RequestSensor(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 ); }
public void TableParameters_CanSetSortDirection() { var parameters = new SensorParameters(); parameters.SortBy = Property.Id; Assert.AreEqual(parameters.SortBy, Property.Id, "Retrieve initial value from property"); Assert.AreEqual(parameters[Parameter.SortBy], Property.Id, "Retrieve initial raw value from indexer"); parameters.SortDirection = SortDirection.Descending; Assert.AreEqual(parameters.SortBy, Property.Id, "Retrieve initial reversed value from property"); Assert.AreEqual(parameters[Parameter.SortBy], "-objid", "Retrieve initial reversed raw value from indexer"); parameters.SortBy = Property.Name; Assert.AreEqual(parameters.SortBy, Property.Name, "Retrieve new value from property"); Assert.AreEqual(parameters[Parameter.SortBy], "-name", "Retrieve new reversed raw value from indexer"); parameters.SortDirection = SortDirection.Ascending; Assert.AreEqual(parameters.SortBy, Property.Name, "Retrieve new forwards value from property"); Assert.AreEqual(parameters[Parameter.SortBy], Property.Name, "Retrieve new forwards raw value from indexer"); parameters.SortBy = null; Assert.AreEqual(parameters.SortBy, null, "Property value is null"); Assert.AreEqual(parameters[Parameter.SortBy], null, "Raw value is null"); parameters.SortDirection = SortDirection.Descending; parameters.SortBy = Property.Active; parameters.SortBy = null; Assert.AreEqual(parameters.SortBy, null, "Reversed property value is null"); Assert.AreEqual(parameters[Parameter.SortBy], null, "Reversed raw value is null"); parameters[Parameter.SortBy] = "name"; Assert.AreEqual(parameters.SortBy, Property.Name, "Retrieve property directly set using string"); }
public void PrtgUrl_SearchFilter_FromParameters_With_EnumFlags() { var flagsParameters = new SensorParameters { Status = new[] { Status.Paused } }; flagsParameters.GetParameters().Remove(Parameter.Content); flagsParameters.GetParameters().Remove(Parameter.Columns); flagsParameters.GetParameters().Remove(Parameter.Count); var flagsUrl = CreateUrl(flagsParameters); var manualParameters = new SensorParameters { Status = new[] { Status.PausedByUser, Status.PausedByDependency, Status.PausedBySchedule, Status.PausedByLicense, Status.PausedUntil } }; manualParameters.GetParameters().Remove(Parameter.Content); manualParameters.GetParameters().Remove(Parameter.Columns); manualParameters.GetParameters().Remove(Parameter.Count); var manualUrl = CreateUrl(manualParameters); var expected = "filter_status=7&filter_status=8&filter_status=9&filter_status=11&filter_status=12"; Assert.AreEqual(expected, flagsUrl, "Flags URL was not correct"); Assert.AreEqual(expected, manualUrl, "Manual URL was not correct"); }
public void TableParameters_AddRemoveFilters_ThrowsSpecifyingNull() { var parameters = new SensorParameters(); AssertEx.Throws <ArgumentNullException>(() => parameters.AddFilters(null), $"Value cannot be null.{Environment.NewLine}Parameter name: filters"); AssertEx.Throws <ArgumentNullException>(() => parameters.RemoveFilters(null), $"Value cannot be null.{Environment.NewLine}Parameter name: filters"); }
public DistanceSensorViewModel() { SentSignal = new ChartValues <ObservableValue>(); ReceivedSignal = new ChartValues <ObservableValue>(); CorrelationData = new ChartValues <ObservableValue>(); SentSignalData = new SensorSignal(); Object = new TrackedObject(); SensorParameters = new SensorParameters(Object); }
public void Data_Query_Skip_All_WithCount() { var parameters = new SensorParameters { Start = 3 }; ExecuteClient(c => c.StreamSensors(parameters, true), s => s.ToList()); }
public void Data_Query_Take_Until_Matched_Manual() { var parameters = new SensorParameters { PageSize = 1, SearchFilters = new List <SearchFilter> { new SearchFilter(Property.Name, FilterOperator.Contains, "Pi") } }; var response = client.StreamSensors(parameters, true).Where(s => s.Name == "Ping").Take(2).ToList(); Assert.AreEqual(2, response.Count); }
public void Data_StreamSensors_StartOffset_CorrectCount() { var count = 15; var parameters = new SensorParameters { Count = count, Start = 3, PageSize = 5 }; var sensors = client.StreamSensors(parameters).ToList(); Assert.AreEqual(count, sensors.Count); }
public void Query_Take_Until_Matched_TakeIterator() { var items = new List <BaseItem>(); items.AddRange(GetPage("Yes", 1)); items.AddRange(GetPage("YeNo", 1)); items.AddRange(GetPage("YeNo", 1)); items.AddRange(GetPage("Yes", 1)); items.AddRange(GetPage("YeNo", 1)); items.AddRange(GetPage("Yes", 1)); var urls = new object[] { TestHelpers.RequestSensor("count=2&filter_name=@sub(Ye)", UrlFlag.Columns), //Yes, YeNo TestHelpers.RequestSensor("count=0&filter_name=@sub(Ye)", null), //Count TestHelpers.RequestSensor("count=1&filter_name=@sub(Ye)&start=2", UrlFlag.Columns), //YeNo TestHelpers.RequestSensor("count=3&filter_name=@sub(Ye)&start=3", UrlFlag.Columns) //Yes }; var client = Initialize_Client(new AddressValidatorResponse(urls) { ItemOverride = new Dictionary <Content, BaseItem[]> { [Content.Sensors] = items.ToArray() } }); Func <SensorParameters, Func <int>, IEnumerable <Sensor> > streamer = (p, c) => client.ObjectEngine.StreamObjects <Sensor, SensorParameters>(p, true, c); var parameters = new SensorParameters { SearchFilters = new List <SearchFilter> { new SearchFilter(Property.Name, FilterOperator.Contains, "Ye") } }; var iterator = new TakeIterator <Sensor, SensorParameters>( 2, parameters, streamer, () => client.GetTotalObjects(parameters.Content, parameters.SearchFilters?.ToArray()), r => r.Where(s => s.Name == "Yes") ); var response = iterator.ToList(); Assert.AreEqual(2, response.Count); }
public void Query_Skip_All_WithCount() { var parameters = new SensorParameters { Start = 3 }; ExecuteClient( c => c.StreamSensors(parameters, true), new[] { UnitRequest.SensorCount, UnitRequest.Sensors("count=0&start=3", UrlFlag.Columns) }, s => s.ToList() ); }
public void TableParameters_AddFilters_ToSearchFiltersProperty() { var parameters = new SensorParameters(); Assert.IsNotNull(parameters.SearchFilters); Assert.AreEqual(0, parameters.SearchFilters.Count); var list = parameters.SearchFilters; list.Add(new SearchFilter(Property.Name, "name")); Assert.AreEqual(1, parameters.SearchFilters.Count); parameters.SearchFilters = null; Assert.IsNotNull(parameters.SearchFilters); Assert.AreEqual(0, parameters.SearchFilters.Count); }
public void TableParameters_MergesMultipleParameterFilterValues_AddsInvalidValue() { var sensor = new SensorParameters { Status = new[] { Status.Up, Status.Paused }, SearchFilters = { new SearchFilter(Property.Status, "blah") } }; AssertEx.AreEqualLists( sensor.Status.ToList(), new List <Status> { Status.Up, Status.Paused }, "Lists were not equal" ); }
public void SensorParameters_Status_CanBeGetAndSet() { var parameters = new SensorParameters(); //Test an empty value can be retrieved var status = parameters.Status; Assert.IsTrue(status == null, "Status was not null"); //Test a value can be set parameters.Status = new[] { Status.Up }; Assert.IsTrue(parameters.Status.Length == 1 && parameters.Status.First() == Status.Up, "Status was not up"); //Test a value can be overwritten parameters.Status = new[] { Status.Down }; Assert.IsTrue(parameters.Status.Length == 1 && parameters.Status.First() == Status.Down, "Status was not down"); }
public void TableParameters_MergesMultiParameterFilterValues_IgnoresDifferentProperty() { var sensor = new SensorParameters { Status = new[] { Status.Up, Status.Paused } }; sensor.SearchFilters.Add(new SearchFilter(Property.Name, "blah")); Assert.AreEqual(3, sensor.SearchFilters.Count); AssertEx.AreEqualLists( sensor.Status.ToList(), new List <Status> { Status.Up, Status.Paused }, "Lists were not equal" ); }
public void Query_Take_Until_Matched_Manual() { var client = GetUntilMatchedClient(1); var parameters = new SensorParameters { PageSize = 1, SearchFilters = new List <SearchFilter> { new SearchFilter(Property.Name, FilterOperator.Contains, "Ye") } }; var response = client.Item1.StreamSensors(parameters, true).Where(s => s.Name == "Yes").Take(2).ToList(); Assert.AreEqual(2, response.Count); client.Item2.AssertFinished(); }
public void Data_GetSensors_WithParameters_SortsByProperty() { var parameters = new SensorParameters { SortBy = Property.Id }; var ascending = client.GetSensors(parameters); var linqAscending = ascending.OrderBy(s => s.Id); AssertEx.IsTrue(ascending.SequenceEqual(linqAscending), "Ascending lists were not equal"); parameters.SortDirection = SortDirection.Descending; var descending = client.GetSensors(parameters); var linqDescending = descending.OrderByDescending(s => s.Id); AssertEx.IsTrue(descending.SequenceEqual(linqDescending), "Descending lists were not equal"); AssertEx.IsFalse(ascending.SequenceEqual(descending), "Ascending and descending lists were equal"); }
public void TableParameters_AddsAndRemovesFilters() { var parameters = new SensorParameters(); Assert.AreEqual(false, parameters.RemoveFilters(new SearchFilter(Property.Comments, "hello"))); var filter1 = new SearchFilter(Property.Id, 1234); parameters.AddFilters(filter1); Assert.AreEqual(1, parameters.SearchFilters.Count); var filters2_3 = new[] { new SearchFilter(Property.Id, 4567), new SearchFilter(Property.Type, "ping") }; parameters.AddFilters(filters2_3); Assert.AreEqual(3, parameters.SearchFilters.Count); parameters.RemoveFilters(filters2_3); Assert.AreEqual(1, parameters.SearchFilters.Count); Assert.AreEqual(filter1, parameters.SearchFilters.Single()); }
public void TableParameters_MergesMultiParameterFilterValues_SameProperty() { var sensor = new SensorParameters { Status = new[] { Status.Up, Status.Paused } }; sensor.SearchFilters.Add(new SearchFilter(Property.Status, new[] { Status.Down, Status.Warning })); var statuses = sensor.Status; AssertEx.AreEqualLists( statuses.ToList(), new List <Status> { Status.Up, Status.Paused, Status.Down, Status.Warning }, "Lists were not equal" ); }
private void Stream(SensorParameters parameters, string[] address, int?count = null) { var url = new List <string>(); 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).ToList(), url.ToArray(), countOverride ); }
public void Data_StreamSensors_WithIncorrectPageSize() { var normalParameters = new SensorParameters { Count = 15 }; var manualParameters = new SensorParameters { Start = 1, Count = 5 }; Assert.AreEqual(1, manualParameters.Start); var normalSensors = client.GetSensors(normalParameters); var streamedSensors = client.StreamSensors(normalParameters).ToList(); var firstParamSensors = client.GetSensors(manualParameters); manualParameters.Page++; var secondParamSensors = client.GetSensors(manualParameters); manualParameters.Page++; var thirdParamSensors = client.GetSensors(manualParameters); var manualSensors = new List <Sensor>(); manualSensors.AddRange(firstParamSensors); manualSensors.AddRange(secondParamSensors); manualSensors.AddRange(thirdParamSensors); AssertEx.AreEqualLists(normalSensors, streamedSensors, new PrtgObjectComparer(), "Normal and streamed sensors were not equal"); AssertEx.IsFalse(manualSensors.Contains(normalSensors.First()), "The first normal sensor was contained in manual sensors, however it shouldn't have been"); AssertEx.IsFalse(normalSensors.Contains(manualSensors.Last()), "The last manual sensor was contained in normal sensors, however it shouldn't have been"); var middleNormalSensors = normalSensors.Skip(1).ToList(); var middleManualSensors = manualSensors.Take(manualSensors.Count - 1).ToList(); AssertEx.AreEqualLists(middleNormalSensors, middleManualSensors, new PrtgObjectComparer(), "The middle of the normal and manual lists were not equal"); }
public void Data_GetSensors_WithParameters_FiltersByStatus() { var parameters = new SensorParameters(); //Test an empty value can be retrieved var status = parameters.Status; AssertEx.IsTrue(status == null, "Status was not null"); //Test a value can be set parameters.Status = new[] { Status.Up }; AssertEx.IsTrue(parameters.Status.Length == 1 && parameters.Status.First() == Status.Up, "Status was not up"); //Test a value can be overwritten parameters.Status = new[] { Status.Down }; AssertEx.IsTrue(parameters.Status.Length == 1 && parameters.Status.First() == Status.Down, "Status was not down"); //Ignore Probe Health sensor due to a bug in PRTG 17.4.35 var sensors = client.GetSensors(parameters); AssertEx.AreEqual(1, sensors.Count, $"Did not contain expected number of down sensors. Sensors found were: {string.Join(",", sensors)}"); AssertEx.AreEqual(Settings.DownSensor, sensors.First().Id, "ID of down sensor was not correct"); }
public void Data_Query_Take_Until_Matched_TakeIterator() { Func <SensorParameters, Func <int>, IEnumerable <Sensor> > streamer = (p, c) => PrtgAPIHelpers.StreamObjects(client, p, true, c); var parameters = new SensorParameters { SearchFilters = new List <SearchFilter> { new SearchFilter(Property.Name, FilterOperator.Contains, "Pi") } }; var iterator = PrtgAPIHelpers.TakeIterator( 2, parameters, streamer, () => client.GetTotalObjects(parameters.Content, parameters.SearchFilters?.ToArray()), r => r.Where(s => s.Name == "Ping") ); var response = iterator.ToList(); Assert.AreEqual(2, response.Count); }
public static IEnumerable <Sensor> StreamObjects(PrtgClient client, SensorParameters parameters, bool serial, Func <int> getCount) { return(client.ObjectEngine.StreamObjects <Sensor, SensorParameters>(parameters, serial, getCount)); }
private void Stream(SensorParameters parameters, string address, int?count = null) { Stream(parameters, new[] { address }, count); }
private void StreamSerial(SensorParameters parameters, string address, bool requestCount = false, int?count = null) { StreamSerial(parameters, new[] { address }, requestCount, count); }
private void StreamSerial(SensorParameters parameters, List <Sensor> expected) { var result = client.StreamSensors(parameters, true).ToList(); AssertEx.AreEqualLists(expected, result, new PrtgObjectComparer(), "Lists were not the same"); }