Exemple #1
0
        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);
        }
Exemple #2
0
        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"));
        }
Exemple #3
0
        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));
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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"));
        }
Exemple #7
0
        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"));
        }
Exemple #8
0
        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);
        }
Exemple #10
0
        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"));
        }
Exemple #11
0
 public void GetProductWithEmptyProductCodeThrows()
 {
     Assert.ThrowsException <ArgumentException>(() => OctopusEnergyClient.ComposeGetProductUri("    ", null));
 }