public async Task GetProductsSucceedsAsync() { const string code = "P123Z"; var products = new PagedResults <Product> { Results = new List <Product> { new Product { AvailableFrom = DateTimeOffset.Now.AddHours(-10), AvailableTo = DateTimeOffset.Now.AddYears(1), Brand = "Brand", Code = code, Description = "Description", DisplayName = "Display name", FullName = "Full name", IsBusiness = true, IsGreen = true, IsPrepay = true, IsRestricted = true, IsTracker = true, IsVariable = true, Term = 5, Direction = "Out" // Links } }, Count = 1, Next = null, Previous = null }; var uri = OctopusEnergyClient.ComposeGetProductsUri(null, null, null, null, null, null); var client = TestHelper.CreateClient(uri, products); var products1 = await client.GetProductsAsync(); var expectedProduct = products.Results.First(); var actualProduct = products1.First(); Assert.AreEqual(expectedProduct.AvailableFrom, actualProduct.AvailableFrom); Assert.AreEqual(expectedProduct.AvailableTo, actualProduct.AvailableTo); Assert.AreEqual(expectedProduct.Brand, actualProduct.Brand); Assert.AreEqual(expectedProduct.Code, actualProduct.Code); Assert.AreEqual(expectedProduct.Description, actualProduct.Description); Assert.AreEqual(expectedProduct.DisplayName, actualProduct.DisplayName); Assert.AreEqual(expectedProduct.FullName, actualProduct.FullName); Assert.AreEqual(expectedProduct.IsBusiness, actualProduct.IsBusiness); Assert.AreEqual(expectedProduct.IsGreen, actualProduct.IsGreen); Assert.AreEqual(expectedProduct.IsPrepay, actualProduct.IsPrepay); Assert.AreEqual(expectedProduct.IsRestricted, actualProduct.IsRestricted); Assert.AreEqual(expectedProduct.IsTracker, actualProduct.IsTracker); Assert.AreEqual(expectedProduct.IsVariable, actualProduct.IsVariable); Assert.AreEqual(expectedProduct.Term, actualProduct.Term); }
public async Task GetGridSupplyPointByMpanThrowsAsync() { var uri = OctopusEnergyClient.ComposeGetGridSupplyPointByMpanUri("123456789X"); var client = TestHelper.CreateClient(uri, new MeterPointGridSupplyPoint { GroupId = "_A" }); await Assert.ThrowsExceptionAsync <HttpRequestException>(async() => await client.GetGridSupplyPointByMpanAsync("123456789")); }
public async Task GetGridSupplyPointByMpanSucceedsAsync() { var uri = OctopusEnergyClient.ComposeGetGridSupplyPointByMpanUri("123456789"); var client = TestHelper.CreateClient(uri, new MeterPointGridSupplyPoint { GroupId = "_A" }); Assert.AreEqual("_A", await client.GetGridSupplyPointByMpanAsync("123456789")); }
public void GetElectricityConsumptionWithNoSerialThrows() { var from = DateTimeOffset.UtcNow.AddDays(-2); var to = DateTimeOffset.UtcNow.AddDays(-1); var mpan = "A123Z"; var serialNumber = ""; var interval = Interval.Hour; Assert.ThrowsException <ArgumentException>(() => OctopusEnergyClient.ComposeGetElectricityConsumptionUri(mpan, serialNumber, from, to, interval)); }
public async Task GetProductByProductCodeSucceedsAsync() { const string code = "P123Z"; var product = new ProductDetail { ActiveAt = DateTimeOffset.Now, AvailableFrom = DateTimeOffset.Now.AddHours(-10), AvailableTo = DateTimeOffset.Now.AddYears(1), Brand = "Brand", Code = code, Description = "Description", DisplayName = "Display name", FullName = "Full name", IsBusiness = true, IsGreen = true, IsPrepay = true, IsRestricted = true, IsTracker = true, IsVariable = true, Term = 5, // DualRegisterElectricityTariffs // Links // SampleConsumption // SampleQuotes // SingleRegisterElectricityTariffs // SingleRegisterGasTariffs }; var uri = OctopusEnergyClient.ComposeGetProductUri(code, null); var client = TestHelper.CreateClient(uri, product); var product1 = await client.GetProductAsync(code); // TODO? implement ProductDetail IEquatable? Assert.AreEqual(product.ActiveAt, product1.ActiveAt); Assert.AreEqual(product.AvailableFrom, product1.AvailableFrom); Assert.AreEqual(product.AvailableTo, product1.AvailableTo); Assert.AreEqual(product.Brand, product1.Brand); Assert.AreEqual(product.Code, product1.Code); Assert.AreEqual(product.Description, product1.Description); Assert.AreEqual(product.DisplayName, product1.DisplayName); Assert.AreEqual(product.FullName, product1.FullName); Assert.AreEqual(product.IsBusiness, product1.IsBusiness); Assert.AreEqual(product.IsGreen, product1.IsGreen); Assert.AreEqual(product.IsPrepay, product1.IsPrepay); Assert.AreEqual(product.IsRestricted, product1.IsRestricted); Assert.AreEqual(product.IsTracker, product1.IsTracker); Assert.AreEqual(product.IsVariable, product1.IsVariable); Assert.AreEqual(product.Term, product1.Term); }
public async Task GetGridSupplyPointByPostcodeNoResultsThrowsAsync() { var uri = OctopusEnergyClient.ComposeGetGridSupplyPointByPostcodeUri("AB12 3XY"); var client = TestHelper.CreateClient(uri, new PagedResults <GridSupplyPoint> { Count = 1, Results = new List <GridSupplyPoint>() }); await Assert.ThrowsExceptionAsync <GspException>(async() => await client.GetGridSupplyPointByPostcodeAsync("AB12 3XY")); }
public async Task GetGridSupplyPointByPostcodeSucceedsAsync() { var uri = OctopusEnergyClient.ComposeGetGridSupplyPointByPostcodeUri("AB12 3XY"); var client = TestHelper.CreateClient(uri, new PagedResults <GridSupplyPoint> { Count = 1, Results = new List <GridSupplyPoint> { new GridSupplyPoint { GroupId = "_A" } } }); Assert.AreEqual("_A", await client.GetGridSupplyPointByPostcodeAsync("AB12 3XY")); }
public async Task GetElectricityStandingChargesSucceedsAsync() { var from = DateTimeOffset.UtcNow.AddDays(-2); var to = DateTimeOffset.UtcNow.AddDays(-1); var productCode = "A123Z"; var tariffCode = "J0123456K"; var charges = new PagedResults <Charge> { Results = new List <Charge> { new Charge { ValidFrom = from, ValidTo = to, ValueExcludingVAT = 20m, ValueIncludingVAT = 20m * 1.2m }, new Charge { ValidFrom = from.AddDays(1), ValidTo = to.AddDays(1), ValueExcludingVAT = 30m, ValueIncludingVAT = 30m * 1.2m }, }, Count = 1, Next = null, Previous = null }; var uri = OctopusEnergyClient.ComposeGetElectricityStandingChargesUri(productCode, tariffCode, from, to); var client = TestHelper.CreateClient(uri, charges); var charges1 = await client.GetElectricityStandingChargesAsync(productCode, tariffCode, from, to); Assert.AreEqual(charges.Results.Count(), charges1.Count()); var firstExpected = charges.Results.First(); var firstActual = charges1.First(); Assert.AreEqual(firstExpected.ValidFrom, firstActual.ValidFrom); Assert.AreEqual(firstExpected.ValidFromUTC, firstActual.ValidFromUTC); Assert.AreEqual(firstExpected.ValidTo, firstActual.ValidTo); Assert.AreEqual(firstExpected.ValidToUTC, firstActual.ValidToUTC); Assert.AreEqual(firstExpected.ValueIncludingVAT, firstActual.ValueIncludingVAT); Assert.AreEqual(firstExpected.ValueExcludingVAT, firstActual.ValueExcludingVAT); }
public async Task GetGasConsumptionSucceedsAsync() { var from = DateTimeOffset.UtcNow.AddDays(-2); var to = DateTimeOffset.UtcNow.AddDays(-1); var mprn = "A123Z"; var serialNumber = "J0123456K"; var interval = Interval.Hour; var consumption = new PagedResults <Consumption> { Results = new List <Consumption> { new Consumption { Start = from, End = from.AddMinutes(30), Quantity = 0.5m }, new Consumption { Start = from.AddMinutes(30), End = from.AddMinutes(60), Quantity = 0.75m }, }, Count = 1, Next = null, Previous = null }; var uri = OctopusEnergyClient.ComposeGetGasConsumptionUri(mprn, serialNumber, from, to, interval); var client = TestHelper.CreateClient(uri, consumption); var consumption1 = await client.GetGasConsumptionAsync("key", mprn, serialNumber, from, to, Interval.Hour); Assert.AreEqual(consumption.Results.Count(), consumption1.Count()); var firstExpected = consumption.Results.First(); var firstActual = consumption1.First(); Assert.AreEqual(firstExpected.Start, firstActual.Start); Assert.AreEqual(firstExpected.End, firstActual.End); Assert.AreEqual(firstExpected.Quantity, firstActual.Quantity); }
public async Task GetGridSupplyPointByPostcodeMoreThanOneResultThrowsAsync() { var uri = OctopusEnergyClient.ComposeGetGridSupplyPointByPostcodeUri("AB12 3XY"); var client = TestHelper.CreateClient(uri, new PagedResults <GridSupplyPoint> { Count = 2, Results = new List <GridSupplyPoint> { new GridSupplyPoint { GroupId = "_A" }, new GridSupplyPoint { GroupId = "_B" }, } }); await Assert.ThrowsExceptionAsync <GspException>(async() => await client.GetGridSupplyPointByPostcodeAsync("AB12 3XY")); }
public void GetProductWithEmptyProductCodeThrows() { Assert.ThrowsException <ArgumentException>(() => OctopusEnergyClient.ComposeGetProductUri(" ", null)); }