Exemple #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);
        }
Exemple #2
0
        public void ItParsesTheTypeProperly(string input, Type type)
        {
            var result = EnergyParser.Parse(input);

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

            Assert.That(result.Value, Is.EqualTo(expected));
        }
Exemple #5
0
 public void ItDoesNotThrowAnExceptionWhenParsingValidValues(string input)
 {
     EnergyParser.Parse(input);
 }