public async void FetchEnergyPurchasedOrSoldKWh()
        {
            A.CallTo(() => billDocumentClient.FetchBillDocumentIndex())
            .Returns(new HtmlParser().Parse(File.OpenRead("Data/billDocumentIndex.html")));
            A.CallTo(() => billDocumentClient.FetchBillDocument(A <BillDocument> ._))
            .Returns(File.OpenRead("Data/billEnergyPurchased.pdf"));

            int actualPurchasedKWh = await billDocumentService.FetchEnergyPurchasedOrSoldKWh(new LocalDate(2017, 10, 18));

            actualPurchasedKWh.Should().Be(535);
        }
        public async void FetchBillDocument()
        {
            A.CallTo(() => httpMessageHander.SendAsync(A <HttpRequestMessage> ._)).Returns(new HttpResponseMessage
            {
                Content = new StringContent("hello")
            });

            var billDocument = new BillDocument
            {
                AccountId      = 123,
                PublishingDate = new LocalDate(2018, 3, 31)
            };

            Stream actual = await billDocumentClient.FetchBillDocument(billDocument);

            new StreamReader(actual).ReadToEnd().Should().Be("hello");

            A.CallTo(() => httpMessageHander.SendAsync(A <HttpRequestMessage> .That.Matches(message =>
                                                                                            message.Method == HttpMethod.Get &&
                                                                                            message.RequestUri.ToString()
                                                                                            .Equals("https://apps.coned.com/ORMyAccount/ViewBillImage.aspx?acct=123&bill_dt=2018-03-31&loc=app&cd_co=9")
                                                                                            ))).MustHaveHappened();
        }