diff --git a/BritishHorseRacingApi.Tests/DataConverterHelperTests.cs b/BritishHorseRacingApi.Tests/DataConverterHelperTests.cs index 1cb6103..88821f2 100644 --- a/BritishHorseRacingApi.Tests/DataConverterHelperTests.cs +++ b/BritishHorseRacingApi.Tests/DataConverterHelperTests.cs @@ -36,7 +36,20 @@ namespace BritishHorseRacingApi.Tests } [Theory()] - [InlineData("1m 1f 104y", 2084)] + [InlineData("1m 15.39s(+0.34s)", 340)] + [InlineData(null, null)] + [InlineData(" ", null)] + public void TestStopwatchStringDifferenceToMilliseconds(string time, double? expectedValue) + { + //Arrange + //Act + var totalMilliseconds = DataConverterHelper.StopwatchStringDifferenceToMilliseconds(time); + //Assert + Assert.Equal(totalMilliseconds, expectedValue); + } + + [Theory()] + [InlineData("1m 1f 104y ", 2084)] [InlineData("1f 104y", 324)] [InlineData("104y", 104)] [InlineData("", null)] diff --git a/BritishHorseRacingApi/Helpers/DataConverterHelper.cs b/BritishHorseRacingApi/Helpers/DataConverterHelper.cs index 992089f..c050e4d 100644 --- a/BritishHorseRacingApi/Helpers/DataConverterHelper.cs +++ b/BritishHorseRacingApi/Helpers/DataConverterHelper.cs @@ -58,10 +58,13 @@ namespace BritishHorseRacingApi.Helpers return (T)Convert.ChangeType(group.Value, typeof(T)); } - public static int StopwatchStringDifferenceToMilliseconds(string timeDifferenceString) + public static int? StopwatchStringDifferenceToMilliseconds(string timeDifferenceString) { + if (String.IsNullOrWhiteSpace(timeDifferenceString)) + return null; + var match = _stopwatchTimeRegex.Match(timeDifferenceString); - var lossDifference = GetComponent(match, "lossDifference", 0); + var lossDifference = GetComponent(match, "lossDifference", 0d); return (int)TimeSpan.FromSeconds(lossDifference).TotalMilliseconds; } }