Files
BritishHorseRacingApi/BritishHorseRacingApi.Tests/DataConverterHelperTests.cs
T
Martin fee03021b1
SuccessfulCode/BritishHorseRacingApi/pipeline/head There was a failure building this commit
Successfulcode/BritishHorseRacingApi/pipeline/head There was a failure building this commit
Include Tims regexs to extract Class And Stick
2020-05-10 22:42:46 +01:00

129 lines
4.6 KiB
C#

using BritishHorseRacingApi.Helpers;
using System;
using Xunit;
namespace BritishHorseRacingApi.Tests
{
public class DataConverterHelperTests
{
[Theory()]
[InlineData("1m 24.73s", 1, 24, 73)]
[InlineData("5m 42s", 5, 42, 0)]
[InlineData("7m 2.9s", 7, 2, 9)]
public void TestStopWatchStringConversion(string time, int mins, int seconds, int milliseconds)
{
//Arrange
//Act
var totalMilliseconds = DataConverterHelper.StopWatchStringToMilliseconds(time);
//Assert
var timeSpan = TimeSpan.FromMilliseconds((double)totalMilliseconds);
Assert.Equal(mins, timeSpan.Minutes);
Assert.Equal(seconds, timeSpan.Seconds);
Assert.Equal(milliseconds, timeSpan.Milliseconds);
}
[Theory()]
[InlineData("", null)]
[InlineData(null, null)]
[InlineData(" ", null)]
public void TestStopWatchStringConversionForEmpty(string time, double? expectedValue)
{
//Arrange
//Act
var totalMilliseconds = DataConverterHelper.StopWatchStringToMilliseconds(time);
//Assert
Assert.Equal(totalMilliseconds, expectedValue);
}
[Theory()]
[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("(GoingStick:5.3 on 01-12-2018 at 08:30) Hurdle 5.3 Chase 5.3 @ 0800", 5.3)]
[InlineData("ABANDONED - Abandoned (48 Hours)", null)]
[InlineData("", null)]
[InlineData("Chase - Good to Soft, Good in Places Hurdle - Good to Soft (Hurdle races on Outer/Flat course) Chase 7.5; Hurdle 7.1", 7.3)]
public void TestGoingStickExtraction(string goingStr, double? expectedValue)
{
//Act
var result = DataConverterHelper.ExtractGoingStick(goingStr);
//Assert
Assert.Equal(expectedValue, result);
}
[Theory()]
[InlineData("1m 1f 104y ", 2084)]
[InlineData("1f 104y", 324)]
[InlineData("104y", 104)]
[InlineData("", null)]
[InlineData(" ", null)]
[InlineData(null, null)]
public void TestDistanceStringToYardsConversion(string distance, int? expectedResult)
{
//Arrange
//Act
var result = DataConverterHelper.DistanceStringToYards(distance);
//Assert
Assert.Equal(expectedResult, result);
}
[Theory]
[InlineData("", null)]
[InlineData(null, null)]
[InlineData("THE 32Red CASINO NOVICE AUCTION STAKES (CLASS 5)", 5)]
[InlineData("THE BRITISH STALLION STUDS EBF KEGWORTH NOVICE STAKES (CLASS 4) (PLUS 10 RACE) (DIV II)", 4)]
public void TestRaceClassExtract(string raceName, int? expectedResult)
{
//Act
var result = DataConverterHelper.ExtractRaceClass(raceName);
//Assert
Assert.Equal(expectedResult, result);
}
[Theory()]
[InlineData("3/5", 1.6)]
[InlineData("20/1", 21)]
[InlineData("5.5/1", 6.5)]
[InlineData("", null)]
[InlineData(" ", null)]
[InlineData(null, null)]
public void TestFractionOddsToDecimal(string value, double? expectedResult)
{
//Arrange
var decimalExpectedValue = (decimal?)expectedResult;
//Act
var result = DataConverterHelper.FractionOddsToDecimal(value);
//Assert
Assert.Equal(decimalExpectedValue, result);
}
[Theory()]
[InlineData("9st 4lbs", 58967.00662)]
[InlineData("11st 3lbs", 71214.00098)]
[InlineData("10lbs", 4535.92000)]
[InlineData("9st", 57152.63862)]
[InlineData("9st 0lbs", 57152.63862)]
[InlineData("", null)]
[InlineData(" ", null)]
[InlineData(null, null)]
public void TestWeightStringToGrams(string value, double? expectedResult)
{
//Arrange
var decimalExpectedValue = (decimal?)expectedResult;
//Act
var result = DataConverterHelper.WeightStringToGrams(value);
//Assert
Assert.Equal(decimalExpectedValue, result);
}
}
}