public async Task AddSensor_ResolvesMultipleAsync() { var services = (await client.Targets.GetWmiServicesAsync(Settings.Device)).Where(s => s.Name.Contains("PRTG")).ToList(); var parameters = new WmiServiceSensorParameters(services); var sensors = (await client.AddSensorAsync(Settings.Device, parameters)).OrderBy(s => s.Id).ToList(); try { var manualSensors = (await client.GetSensorsAsync( new SearchFilter(Property.ParentId, Settings.Device), new SearchFilter(Property.Name, FilterOperator.Contains, "PRTG") )).OrderBy(s => s.Id).ToList(); AssertEx.AreEqual(2, sensors.Count, "Did not create two sensors"); AssertEx.AreEqual(2, manualSensors.Count, "Manual search did not find two sensors"); AssertEx.AreEqual(sensors[0].Id, manualSensors[0].Id, "First sensor did not match"); AssertEx.AreEqual(sensors[1].Id, manualSensors[1].Id, "Second sensor did not match"); } finally { await client.RemoveObjectAsync(sensors.Select(s => s.Id).ToArray()); } }
private NewSensorParameters CreateTypedParameters() { NewSensorParameters parameters; switch (Type) { case SensorType.ExeXml: parameters = new ExeXmlSensorParameters("FAKE_VALUE") { ExeFile = GetImplicit <ExeFileTarget>(Second) }; break; case SensorType.Http: var httpParameters = new HttpSensorParameters(); MaybeSet(First, v => httpParameters.Name = v?.ToString()); MaybeSet(Second, v => httpParameters.Url = v?.ToString()); parameters = httpParameters; break; case SensorType.WmiService: ignoreName = true; parameters = new WmiServiceSensorParameters(new List <WmiServiceTarget>()) { Services = GetList <WmiServiceTarget>(First) }; break; default: throw new NotImplementedException($"Sensor type '{Type}' is currently not supported"); } return(parameters); }
private void CreateDeviceSensor(bool endOperation) { if (IsDestinationIdSensor) { return; } SensorParametersInternal parameters; switch (dynamicParams.ActiveSensorType.Type) { case SensorType.ExeXml: parameters = new ExeXmlSensorParameters("FAKE_VALUE"); break; case SensorType.WmiService: parameters = new WmiServiceSensorParameters(Enumerable.Empty <Targets.WmiServiceTarget>()); break; case SensorType.Http: parameters = new HttpSensorParameters(); break; default: throw new NotImplementedException($"Don't know how to create a sensor of type '{dynamicParams.ActiveSensorType.Type}'."); } BindParametersAndAddSensor(parameters, endOperation); }
public void AddSensor_Throws_WhenMissingRequiredValue_WithEmptyList() { var client = Initialize_Client(new BasicResponse(string.Empty)); var parameters = new WmiServiceSensorParameters(new List <SensorTarget <WmiServiceTarget> >().Cast <WmiServiceTarget>().ToList()); AssertEx.Throws <InvalidOperationException>(() => client.AddSensor(1001, parameters, false), "Property 'Services' requires a value"); }
public async Task AddSensor_AddsExcessiveItemsAsync() { var servicesClient = Initialize_Client(new WmiServiceTargetResponse()); var services = await servicesClient.Targets.GetWmiServicesAsync(1001); Assert.IsTrue(services.Count > 30); var client = GetAddExcessiveSensorClient(services); var parameters = new WmiServiceSensorParameters(services); await client.AddSensorAsync(1001, parameters, false); }
public void AddSensor_AddsExcessiveItems() { var servicesClient = Initialize_Client(new WmiServiceTargetResponse()); var services = servicesClient.Targets.GetWmiServices(1001); Assert.IsTrue(services.Count > 30); var client = GetAddExcessiveSensorClient(services); var parameters = new WmiServiceSensorParameters(services); client.AddSensor(1001, parameters, false); }
private async Task AddSensorWithExcessiveItemsAsync(RequestVersion version) { var servicesClient = Initialize_Client(new WmiServiceTargetResponse()); var services = await servicesClient.Targets.GetWmiServicesAsync(1001); Assert.IsTrue(services.Count > 30); var client = GetAddExcessiveSensorClient(services, version); var parameters = new WmiServiceSensorParameters(services); await client.Item1.AddSensorAsync(1001, parameters, false); client.Item2.AssertFinished(); }
private NewSensorParameters CreateTypedParameters() { NewSensorParameters parameters; switch (Type) { case SensorType.ExeXml: parameters = new ExeXmlSensorParameters("FAKE_VALUE") { ExeFile = GetImplicit <ExeFileTarget>(Second) }; break; case SensorType.Http: var httpParameters = new HttpSensorParameters(); MaybeSet(Second, v => httpParameters.Url = v?.ToString()); parameters = httpParameters; break; case SensorType.WmiService: parameters = new WmiServiceSensorParameters(new List <WmiServiceTarget>()) { Services = GetList <WmiServiceTarget>(First) }; break; case SensorType.Factory: parameters = new FactorySensorParameters(Enumerable.Empty <string>()) { ChannelDefinition = GetList <string>(Second)?.ToArray() }; break; default: throw new NotImplementedException($"Sensor type '{Type}' is currently not supported."); } return(parameters); }