From d0adf48787c857b808b663b9628422d0de67bd0f Mon Sep 17 00:00:00 2001 From: Martin Lee Date: Thu, 27 Feb 2020 23:37:51 +0000 Subject: [PATCH] Update conversion --- .../DataConverterHelperTests.cs | 15 ++++++++++++++- .../Helpers/DataConverterHelper.cs | 7 +++++-- 2 files changed, 19 insertions(+), 3 deletions(-) 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; } }