[DataRow(2017, 6, 15, 0, 0, 0, "", "42901")] // An OLE Automation date (You see these when converting Excel dates to regular dates)
        public void GetReadData_CanConvertDatesWithFormat_ValuesConverted(
            int expectedYear, int expectedMonth, int expectedDay,
            int expectedHour, int expectedMinute, int expectedSeconds,
            string dateParseExactFormat, string inputData)
        {
            // Arrange
            var attribute = new CsvConverterDateTimeAttribute();

            attribute.StringFormat = dateParseExactFormat;

            var cut = new CsvConverterDefaultDateTime();

            cut.Initialize(attribute, new DefaultTypeConverterFactory());

            // Act
            DateTime actual = (DateTime)cut.GetReadData(typeof(DateTime), inputData, "Column1", 1, 1);

            // Assert
            Assert.AreEqual(expectedYear, actual.Year);
            Assert.AreEqual(expectedMonth, actual.Month);
            Assert.AreEqual(expectedDay, actual.Day);
            Assert.AreEqual(expectedHour, actual.Hour);
            Assert.AreEqual(expectedMinute, actual.Minute);
            Assert.AreEqual(expectedSeconds, actual.Second);
        }
        public void GetReadData_CannotHandleNonDateStrings_ThrowsException(string inputData)
        {
            // Arrange
            var cut = new CsvConverterDefaultDateTime();

            cut.Initialize(null, new DefaultTypeConverterFactory());

            // Act
            DateTime actual = (DateTime)cut.GetReadData(typeof(DateTime), inputData, "Column1", 1, 1);

            // Assert
            Assert.Fail("Exception should be thrown when invalid values are passed into the parser!");
        }
        // [DataRow(2018, 5, 2, 9, 51, 2, "m", "May 2")]  // Differs from Windows 7 (May 02) to Windows 10 (May 2)
        public void ConvertGetWriteData_CanConvertNullableDateTime_DateTimeConverted(
            int year, int month, int day,
            int hour, int minute, int second,
            string dateFormat, string expectedData)
        {
            // Arrange
            DateTime?inputValue = year > 0 ? new DateTime(year, month, day, hour, minute, second) : (DateTime?)null;

            var cut = new CsvConverterDefaultDateTime();

            cut.DateFormat = dateFormat;

            // Act
            string actualData = cut.GetWriteData(typeof(DateTime?), inputValue, "Column1", 1, 1);

            // Assert
            Assert.AreEqual(expectedData, actualData);
        }