Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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
                );
        }
Exemplo n.º 3
0
        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");
        }
Exemplo n.º 4
0
        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");
        }
Exemplo n.º 5
0
        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");
        }
Exemplo n.º 6
0
 public DistanceSensorViewModel()
 {
     SentSignal       = new ChartValues <ObservableValue>();
     ReceivedSignal   = new ChartValues <ObservableValue>();
     CorrelationData  = new ChartValues <ObservableValue>();
     SentSignalData   = new SensorSignal();
     Object           = new TrackedObject();
     SensorParameters = new SensorParameters(Object);
 }
Exemplo n.º 7
0
        public void Data_Query_Skip_All_WithCount()
        {
            var parameters = new SensorParameters
            {
                Start = 3
            };

            ExecuteClient(c => c.StreamSensors(parameters, true), s => s.ToList());
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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()
                );
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
        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"
                );
        }
Exemplo n.º 14
0
        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");
        }
Exemplo n.º 15
0
        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"
                );
        }
Exemplo n.º 16
0
        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();
        }
Exemplo n.º 17
0
        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");
        }
Exemplo n.º 18
0
        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());
        }
Exemplo n.º 19
0
        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"
                );
        }
Exemplo n.º 20
0
        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
                );
        }
Exemplo n.º 21
0
        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");
        }
Exemplo n.º 22
0
        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");
        }
Exemplo n.º 23
0
        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);
        }
Exemplo n.º 24
0
 public static IEnumerable <Sensor> StreamObjects(PrtgClient client, SensorParameters parameters, bool serial, Func <int> getCount)
 {
     return(client.ObjectEngine.StreamObjects <Sensor, SensorParameters>(parameters, serial, getCount));
 }
Exemplo n.º 25
0
 private void Stream(SensorParameters parameters, string address, int?count = null)
 {
     Stream(parameters, new[] { address }, count);
 }
Exemplo n.º 26
0
 private void StreamSerial(SensorParameters parameters, string address, bool requestCount = false, int?count = null)
 {
     StreamSerial(parameters, new[] { address }, requestCount, count);
 }
Exemplo n.º 27
0
        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");
        }