Beispiel #1
0
        public static TMeasurement Parse <TMeasurement>(double value, string type)
            where TMeasurement : IMeasurement
        {
            var runtimeType = typeof(TMeasurement);

            if (runtimeType == typeof(IEnergy))
            {
                return((TMeasurement)EnergyParser.Parse(value, type));
            }

            if (runtimeType == typeof(IPower))
            {
                return((TMeasurement)PowerParser.Parse(value, type));
            }

            if (runtimeType == typeof(IRatio))
            {
                return((TMeasurement)RatioParser.Parse(value, type));
            }

            if (runtimeType == typeof(ITemperature))
            {
                return((TMeasurement)TemperatureParser.Parse(value, type));
            }

            if (runtimeType == typeof(IHumidity))
            {
                return((TMeasurement)HumidityParser.Parse(value, type));
            }

            if (runtimeType == typeof(IIlluminance))
            {
                return((TMeasurement)IlluminanceParser.Parse(value, type));
            }

            if (runtimeType == typeof(IMeasurement))
            {
                return((TMeasurement)(IMeasurement) new ReadOnlyMeasurement(value, type));
            }

            throw new Exception("Could not determine type " + runtimeType.Name);
        }
Beispiel #2
0
        public void ItParsesTheTypeProperly(string input, Type type)
        {
            var result = EnergyParser.Parse(input);

            Assert.That(result.GetType(), Is.EqualTo(type));
        }
Beispiel #3
0
        public void ItParsesTheValueProperly(string input, double expected)
        {
            var result = EnergyParser.Parse(input);

            Assert.That(result.Value, Is.EqualTo(expected));
        }
Beispiel #4
0
 public void ItThrowsAnExceptionWhenParsingInvalidValues(string input)
 {
     EnergyParser.Parse(input);
 }
Beispiel #5
0
 public void ItDoesNotThrowAnExceptionWhenParsingValidValues(string input)
 {
     EnergyParser.Parse(input);
 }
Beispiel #6
0
        public void ItRejectsPoorlyFormedValues(string input)
        {
            var result = EnergyParser.IsEnergy(input);

            Assert.That(result, Is.False);
        }
Beispiel #7
0
        public void ItAcceptsWellFormedValues(string input)
        {
            var result = EnergyParser.IsEnergy(input);

            Assert.That(result, Is.True);
        }