public void AssertNullableIntParseFailTest(string valueToParse, Type expectionType)
 {
     var intValueParser = new NullableIntValueParser();
     var dateTimeValueParser = new NullableDateTimeValueParser();            
     var doubleValueParser = new NullableDoubleValueParser();
     var decimalValueParser = new NullableDecimalValueParser();
     Assert.Throws(expectionType, () => intValueParser.Parse(valueToParse));
     Assert.Throws(expectionType, () => dateTimeValueParser.Parse(valueToParse));            
     Assert.Throws(expectionType, () => doubleValueParser.Parse(valueToParse));
     Assert.Throws(expectionType, () => decimalValueParser.Parse(valueToParse));
 }
        public void AssertNullableValueTypesParseTest(object valueToParse, object expectedParsedValue)
        {
            var decimalValueParser = new NullableDecimalValueParser();
            var parsedValue = decimalValueParser.Parse(valueToParse);
            var doubleValueParser = new NullableDoubleValueParser();
            var doubleParsedValue = doubleValueParser.Parse(valueToParse);                        
            var dateTimeValueParser = new NullableDateTimeValueParser();
            var dateTimeParsedValue = dateTimeValueParser.Parse(valueToParse);
            var intParser = new NullableIntValueParser();
            var intParsedValue = intParser.Parse(valueToParse);

            Assert.AreEqual(expectedParsedValue, intParsedValue);
            Assert.AreEqual(expectedParsedValue, dateTimeParsedValue);
            Assert.AreEqual(expectedParsedValue, doubleParsedValue);
            Assert.AreEqual(expectedParsedValue, parsedValue);            
        }