public void GivenACompaniesHouseCompanyProfileClient_WhenGettingACompanyProfile(CompaniesHouseCompanyChargesClientTestCase testCase)
        {
            _companyCharges = new CompanyChargesBuilder().Build(testCase);
            var resource = new CompanyChargesResourceBuilder(_companyCharges)
                           .Create();

            var uri = new Uri("https://wibble.com/search/companies");

            HttpMessageHandler handler = new StubHttpMessageHandler(uri, resource);

            var uriBuilder = new Mock <ICompanyChargesUriBuilder>();

            uriBuilder.Setup(x => x.Build(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns(uri);

            var uriItemBuilder = new Mock <IChargeItemUriBuilder>();

            uriItemBuilder.Setup(x => x.Build(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(uri);


            _client = new CompaniesHouseCompanyChargesClient(new HttpClient(handler), uriBuilder.Object, uriItemBuilder.Object);

            _result = _client.GetCompanyChargesAsync("abc", 0, 25).Result;

            _result.Data.ShouldBeEquivalentTo(_companyCharges, options => options.ComparingEnumsByName());
        }
        public async Task GivenACompaniesHouseChargesClient_WhenGettingCompanyCharges(CompaniesHouseChargesClientTestCase testCase)
        {
            var charges    = CompanyChargesBuilder.Create(testCase);
            var resource   = new CompanyChargesResourceBuilder(charges).Create();
            var uri        = new Uri("https://wibble.com/company/1/charges");
            var handler    = new StubHttpMessageHandler(uri, resource);
            var uriBuilder = new Mock <IChargesUriBuilder>();

            uriBuilder.Setup(x => x.Build(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>())).Returns(uri);
            var client = new CompaniesHouseChargesClient(new HttpClient(handler), uriBuilder.Object);

            var result = await client.GetChargesListAsync("1", 0, 25);

            result.Data.ShouldBeEquivalentTo(charges);
        }