public void TestSingleDigitHour()
 {
     LeMondRevolutionCsvDataProvider.ParseTime("9:43:20", out hour, out minute, out second);
     Assert.AreEqual(9, hour);
     Assert.AreEqual(43, minute);
     Assert.AreEqual(20, second);
 }
 public void TestAbbreviatedMonthFormat()
 {
     LeMondRevolutionCsvDataProvider.ParseDate("31-Dec", out year, out month, out day);
     Assert.AreEqual(31, day);
     Assert.AreEqual(12, month);
     Assert.AreEqual(CalculateYear(month), year);
 }
 public void TestShortNoYearFormat()
 {
     LeMondRevolutionCsvDataProvider.ParseDate("12/31", out year, out month, out day);
     Assert.AreEqual(31, day);
     Assert.AreEqual(12, month);
     Assert.AreEqual(CalculateYear(month), year);
 }
        public void TestDateAndTimeAndLines()
        {
            var h        = new LeMondConcreateProviderCtorHelper(goodOneDataPoint);
            var provider = new LeMondRevolutionCsvDataProvider(h.SourceName, h.Parser, h.FirstRow);
            int year     = CalculateYear(3);

            Assert.AreEqual(new DateTime(year, 3, 30, 18, 33, 17, DateTimeKind.Local), provider.StartTime);

            // lines
            // Single() will make sure we have one and only one line
            var line = provider.DataLines.Single();

            Assert.AreEqual(line.Time, "0:00:01");
            Assert.AreEqual(line.Speed, "2.0");
            Assert.AreEqual(line.Distance, "3.0");
            Assert.AreEqual(line.Power, "4");
            Assert.AreEqual(line.HeartRate, "5");
            Assert.AreEqual(line.Rpm, "6");
            Assert.AreEqual(line.Calories, "7");
        }
        public void ErrorOnDateToShort()
        {
            Exception e = ExceptionAssert.Throws <Exception>(() => LeMondRevolutionCsvDataProvider.ParseDate("12", out year, out month, out day));

            StringAssert.Contains(e.Message, "DD-MMM");
        }
        public void ErrorOnSecondNotNumerical()
        {
            Exception e = ExceptionAssert.Throws <Exception>(() => LeMondRevolutionCsvDataProvider.ParseTime("10:30:ef", out hour, out minute, out second));

            StringAssert.Contains(e.Message, "[H]H:MM:SS");
        }
        public void ErrorOnTimeNull()
        {
            Exception e = ExceptionAssert.Throws <Exception>(() => LeMondRevolutionCsvDataProvider.ParseTime(null, out hour, out minute, out second));

            StringAssert.Contains(e.Message, "Unable to find a time value");
        }
        public void ErrorOnTimeToLong()
        {
            Exception e = ExceptionAssert.Throws <Exception>(() => LeMondRevolutionCsvDataProvider.ParseTime("12::34::33", out hour, out minute, out second));

            StringAssert.Contains(e.Message, "[H]H:MM:SS");
        }
        public void ErrorOnMonthNotCorrectAbbreviation()
        {
            Exception e = ExceptionAssert.Throws <Exception>(() => LeMondRevolutionCsvDataProvider.ParseDate("12-Tov", out year, out month, out day));

            StringAssert.Contains(e.Message, "DD-MMM");
        }