This commit is contained in:
@@ -0,0 +1,133 @@
|
||||
using System;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using System.Linq;
|
||||
using Xunit;
|
||||
using SuccessfulCodeTools.LowLevelHttpClient;
|
||||
|
||||
namespace BritishHorseRacingApi.Tests
|
||||
{
|
||||
public class ApiClientTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task GetToken()
|
||||
{
|
||||
//Arrange
|
||||
var client = new ApiClient();
|
||||
//Act
|
||||
var token = await client.GetNewToken();
|
||||
//Assert
|
||||
Assert.False(String.IsNullOrWhiteSpace(token));
|
||||
}
|
||||
private const string _userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36";
|
||||
|
||||
[Fact]
|
||||
public async Task Test()
|
||||
{
|
||||
//Arrange
|
||||
var client = new CustomHttpClient(13718);
|
||||
var message = new CustomHttpRequestMessage(HttpMethod.Get, "http://www.britishhorseracing.com/feeds/v1/token/request");
|
||||
message.Headers.Add("Accept", "application/json, text/plain, */*");
|
||||
message.Headers.Add("User-Agent", _userAgent);
|
||||
message.Headers.Add("Host", "www.britishhorseracing.com");
|
||||
message.Headers.Add("Connection", "close");
|
||||
message.Headers.Add("accept-encoding", "gzip, deflate");
|
||||
var result = await client.SendAsync(message);
|
||||
Assert.NotNull(result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetRaceResult()
|
||||
{
|
||||
//Arrange
|
||||
var client = new ApiClient();
|
||||
var token = await client.GetNewToken();
|
||||
//Act
|
||||
var result = await client.GetRaceResults(2018, 42638, 0);
|
||||
//Assert
|
||||
Assert.Equal(6, result.Total);
|
||||
Assert.Equal(6, result.Data.Length);
|
||||
Assert.Equal(42638, result.Data[0].RaceId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetFixtures()
|
||||
{
|
||||
//Arrange
|
||||
var client = new ApiClient();
|
||||
var token = await client.GetNewToken();
|
||||
//Act
|
||||
var result = await client.GetFixtures(2019, 2);
|
||||
//Assert
|
||||
Assert.Equal(111, result.Total);
|
||||
Assert.Equal(10, result.Data.Length);
|
||||
Assert.Equal(18142, result.Data[0].FixtureId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetAllFixturesForDay()
|
||||
{
|
||||
//Arrange
|
||||
var client = new ApiClient();
|
||||
var token = await client.GetNewToken();
|
||||
//Act
|
||||
var results = await client.GetAllFixturesForDay(2019, 2, 28);
|
||||
//Assert
|
||||
Assert.True(results.All(e => e.FixtureDate.Day == 28));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetAllRacesForDay()
|
||||
{
|
||||
var client = new ApiClient();
|
||||
var token = await client.GetNewToken();
|
||||
var results = await client.GetAllRacesForDay(2019, 2, 28);
|
||||
Assert.True(results.Count > 0);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetRaceRunners()
|
||||
{
|
||||
var client = new ApiClient();
|
||||
var token = await client.GetNewToken();
|
||||
var results = await client.GetRaceRunners(2020, 50144, 0);
|
||||
Assert.Equal(13, results.Data.Length);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetAllRaceResultsForDay()
|
||||
{
|
||||
var client = new ApiClient();
|
||||
var token = await client.GetNewToken();
|
||||
var results = await client.GetAllRaceResultsForDay(2020, 2, 23);
|
||||
Assert.True(results.Count > 0);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetRaces()
|
||||
{
|
||||
//Arrange
|
||||
var client = new ApiClient();
|
||||
var token = await client.GetNewToken();
|
||||
//Act
|
||||
var result = await client.GetRaces(2019, 18188);
|
||||
//Arrange
|
||||
Assert.Equal(6, result.Total);
|
||||
Assert.Equal(6, result.Data.Length);
|
||||
Assert.Equal(46136, result.Data[0].RaceId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetRaceCourse()
|
||||
{
|
||||
//Arrange
|
||||
var client = new ApiClient();
|
||||
var token = await client.GetNewToken();
|
||||
//Act
|
||||
var result = await client.GetRacecourse(18);
|
||||
//Arrange
|
||||
Assert.Equal(18, result.CourseId);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="xunit" Version="2.4.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\BritishHorseRacingApi\BritishHorseRacingApi.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,39 @@
|
||||
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("1m 1f 104y", 2084)]
|
||||
[InlineData("1f 104y", 324)]
|
||||
[InlineData("104y", 104)]
|
||||
public void TestDistanceStringToYardsConversion(string distance, int expectedResult)
|
||||
{
|
||||
//Arrange
|
||||
//Act
|
||||
var result = DataConverterHelper.DistanceStringToYards(distance);
|
||||
//Assert
|
||||
Assert.True(result.HasValue);
|
||||
Assert.Equal(expectedResult, result.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user