public SensorRouter(SensorRegistry sensors, AuthorizeSensors authorizeSensors, string pathBase = "/sensors") : base(pathBase) { this.authorizeSensors = authorizeSensors ?? throw new ArgumentNullException(nameof(authorizeSensors)); this.sensors = sensors ?? throw new ArgumentNullException(nameof(sensors)); }
public void When_registered_sensor_is_a_method_then_name_is_derived_from_its_name() { var registry = new SensorRegistry(); registry.Add(SensorNameTester); registry.Count(s => s.Name == "SensorNameTester").Should().Be(1); }
public void When_registered_sensor_is_a_method_then_DeclaringType_is_the_containing_type() { var registry = new SensorRegistry(); registry.Add(StaticTestSensors.ExceptionSensor); var sensor = registry.Single(s => s.Name == "ExceptionSensor"); sensor.DeclaringType.Should().Be(typeof(StaticTestSensors)); }
public void When_a_sensor_returns_a_Task_then_its_IsAsync_Property_returns_true() { var sensorName = Any.Paragraph(5); var registry = new SensorRegistry(); registry.Add(AsyncTask, sensorName); var sensor = registry.Single(s => s.Name == sensorName); sensor.IsAsync.Should().BeTrue(); }
public void When_a_sensor_does_not_return_a_Task_then_its_IsAsync_Property_returns_false() { var sensorName = Any.Paragraph(5); var registry = new SensorRegistry(); registry.Add(() => "hi!", sensorName); var sensor = registry.Single(s => s.Name == sensorName); sensor.IsAsync.Should().BeFalse(); }
public void When_registered_sensor_is_anonymous_then_DeclaringType_is_the_containing_type() { var newGuid = Guid.NewGuid(); var registry = new SensorRegistry(); registry.Add(() => newGuid); var sensor = registry.Single(s => s.Read().Result.Value.Equals(newGuid)); sensor.DeclaringType.Should().Be(GetType()); }
public void When_registered_sensor_is_anonymous_then_default_name_is_derived_from_method_doing_registration() { var newGuid = Guid.NewGuid(); var registry = new SensorRegistry(); registry.Add(() => newGuid); var sensor = registry.Single(s => s.Read().Result.Value.Equals(newGuid)); sensor.Name.Should().Contain(nameof(When_registered_sensor_is_anonymous_then_default_name_is_derived_from_method_doing_registration)); }
public async Task Sensors_can_be_registered_at_runtime() { var sensorName = nameof(Sensors_can_be_registered_at_runtime); var registry = new SensorRegistry(); registry.Add(() => "hello", sensorName); var sensor = registry.Single(s => s.Name == sensorName); sensor.DeclaringType.Should().Be(GetType()); sensor.ReturnType.Should().Be(typeof(string)); var reading = await sensor.Read(); reading.Value.Should().Be("hello"); }