public void Should_be_able_to_get_current_value_via_creator_extension(int value)
        {
            var data = new ExternalCoolantLoopData {
                LineAPressure = value
            };
            var alert = data.CreateAlert(a => a.LineAPressure);

            alert.IsSafe.Should().BeTrue();

            alert.CurrentValue.Should().Be(value);
        }
        public void Should_be_able_to_infer_metadata_attributes_using_extension_method()
        {
            var data  = new ExternalCoolantLoopData();
            var alert = data.CreateAlert(a => a.LineAPressure);

            alert.AlertLevel.Should().Be(AlertLevel.Safe, because: "invoking CreateAlert with no parameters should create a 'Safe' alert");

            alert.Metadata.Should().NotBeNull();

            alert.Metadata.IdealRange.Should().NotBeNull(because: "this property has an {0} applied", nameof(IdealRangeAttribute));
            alert.Metadata.TotalRange.Should().NotBeNull(because: "this property has a {0} applied", nameof(RangeAttribute));
            alert.Metadata.IdealValue.Should().NotBeNull(because: "this property has an {0} applied", nameof(IdealValueAttribute));
            alert.Metadata.UnitType.Should().NotBeNullOrEmpty(because: "this property has a {0} applied", nameof(UnitTypeAttribute));
        }