Skip to content

Commit

Permalink
Regional data unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
andyevansrazor committed Mar 9, 2024
1 parent 12ddb0d commit 2fbaa3a
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 13 deletions.
26 changes: 13 additions & 13 deletions src/carbon-intensity-sdk/CarbonIntensityClient.Regional.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ public async Task<RegionalIntensityData[]> GetRegionalData()
return data.Data;
}

public async Task<RegionalIntensityData[]> GetRegionalData(DateTime from, DateTime to)
{
var data = await facade.CallApi<ApiListDataResponse<RegionalIntensityData>>($"regional/intensity/{from:yyyy-MM-ddTHH:mmZ}/{to:yyyy-MM-ddTHH:mmZ}");
return data.Data;
}

/// <summary>
/// Get Carbon Intensity data for current half hour for the specified country
/// </summary>
Expand Down Expand Up @@ -45,6 +51,12 @@ public async Task<PostcodeIntensityData> GetPostcodeData(string postcode)
return data.Data[0];
}

public async Task<PostcodeIntensityData> GetPostcodeData(string postcode, DateTime from, DateTime to)
{
var data = await facade.CallApi<ApiDataResponse<PostcodeIntensityData>>($"regional/intensity/{from:yyyy-MM-ddTHH:mmZ}/{to:yyyy-MM-ddTHH:mmZ}/postcode/{postcode}");
return data.Data;
}

public async Task<CountryIntensityData> GetRegionData(Region region)
{
var data = await facade.CallApi<ApiListDataResponse<CountryIntensityData>>($"regional/regionid/{(int)region}");
Expand All @@ -55,19 +67,7 @@ public async Task<CountryIntensityData> GetRegionData(Region region)
return data.Data[0];
}

public async Task<RegionalIntensityData[]> GetRegionalData(DateTime from, DateTime to)
{
var data = await facade.CallApi<ApiListDataResponse<RegionalIntensityData>>($"regional/intensity/{from:yyyy-MM-ddTHH:mmZ}/{to:yyyy-MM-ddTHH:mmZ}");
return data.Data;
}

public async Task<PostcodeIntensityData> GetRegionalData(DateTime from, DateTime to, string postcode)
{
var data = await facade.CallApi<ApiDataResponse<PostcodeIntensityData>>($"regional/intensity/{from:yyyy-MM-ddTHH:mmZ}/{to:yyyy-MM-ddTHH:mmZ}/postcode/{postcode}");
return data.Data;
}

public async Task<CountryIntensityData> GetRegionalData(DateTime from, DateTime to, Region region)
public async Task<CountryIntensityData> GetRegionData(Region region, DateTime from, DateTime to)
{
var data = await facade.CallApi<ApiDataResponse<CountryIntensityData>>($"regional/intensity/{from:yyyy-MM-ddTHH:mmZ}/{to:yyyy-MM-ddTHH:mmZ}/regionid/{(int)region}");
return data.Data;
Expand Down
71 changes: 71 additions & 0 deletions tests/carbon-intensity-sdk.test/WhenGettingRegionalData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
using AutoFixture;
using CarbonIntensitySdk.Enums;
using Xunit;

namespace CarbonIntensitySdk.Test;

public class WhenGettingRegionalData : BaseTest
{
[Fact]
public async Task ShouldGetRegionalData()
{
var fixture = new Fixture();
var client = fixture.Create<CarbonIntensityClient>();

_ = await client.GetRegionalData();
}

[Fact]
public async Task ShouldGetRegionalDataBetween()
{
var fixture = new Fixture();
var client = fixture.Create<CarbonIntensityClient>();

_ = await client.GetRegionalData(DateTime.Today, DateTime.Today.AddHours(1));
}

[Fact]
public async Task ShouldGetCountryData()
{
var fixture = new Fixture();
var client = fixture.Create<CarbonIntensityClient>();

_ = await client.GetCountryData(Country.England);
}

[Fact]
public async Task ShouldGetPostcodeData()
{
var fixture = new Fixture();
var client = fixture.Create<CarbonIntensityClient>();

_ = await client.GetPostcodeData("SW1A");
}

[Fact]
public async Task ShouldGetPostcodeDataBetween()
{
var fixture = new Fixture();
var client = fixture.Create<CarbonIntensityClient>();

_ = await client.GetPostcodeData("SW1A", DateTime.Today, DateTime.Today.AddHours(1));
}

[Fact]
public async Task ShouldGetRegionData()
{
var fixture = new Fixture();
var client = fixture.Create<CarbonIntensityClient>();

_ = await client.GetRegionData(Region.NorthWales);
}

[Fact]
public async Task ShouldGetRegionDataBetween()
{
var fixture = new Fixture();
var client = fixture.Create<CarbonIntensityClient>();

_ = await client.GetRegionData(Region.NorthWales, DateTime.Today, DateTime.Today.AddHours(1));
}
}

0 comments on commit 2fbaa3a

Please sign in to comment.