Files
BritishHorseRacingApi/BritishHorseRacingApi.Tests/ApiClientTests.cs
T

134 lines
4.2 KiB
C#
Raw Normal View History

2020-02-22 22:02:44 +00:00
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();
2020-02-26 11:39:58 +00:00
var results = await client.GetRaceRunners(2020, 31967, 0);
Assert.Equal(4, results.Data.Length);
2020-02-22 22:02:44 +00:00
}
[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);
}
}
}