public CompanyFilingHistory Build(CompaniesHouseCompanyFilingHistoryClientTestCase testCase) { var fixture = new Fixture(); fixture.Customizations.Add(new UniversalDateSpecimenBuilder <FilingHistoryItem>(x => x.DateOfProcessing)); fixture.Customizations.Add(new UniversalDateSpecimenBuilder <FilingHistoryItemAnnotation>(x => x.DateOfAnnotation)); fixture.Customizations.Add(new UniversalDateSpecimenBuilder <FilingHistoryItemAssociatedFiling>(x => x.Date)); fixture.Customizations.Add(new UniversalDateSpecimenBuilder <FilingHistoryItemResolution>(x => x.DateOfProcessing)); var annotations = fixture.Build <FilingHistoryItemAnnotation>() .CreateMany().ToArray(); var associatedFilings = fixture.Build <FilingHistoryItemAssociatedFiling>() .CreateMany().ToArray(); var resolutions = fixture.Build <FilingHistoryItemResolution>() .With(x => x.Category, testCase.ResolutionCategory) .With(x => x.Subcategory, testCase.Subcategory) .CreateMany().ToArray(); var items = fixture.Build <FilingHistoryItem>() .With(x => x.Category, testCase.Category) .With(x => x.Subcategory, testCase.Subcategory) .With(x => x.Annotations, annotations) .With(x => x.AssociatedFilings, associatedFilings) .With(x => x.Resolutions, resolutions) .CreateMany().ToArray(); var filingHistory = fixture.Build <CompanyFilingHistory>() .With(x => x.HistoryStatus, testCase.HistoryStatus) .With(x => x.Items, items) .Create(); return(filingHistory); }
public void GivenACompaniesHouseCompanyProfileClient_WhenGettingACompanyProfile(CompaniesHouseCompanyFilingHistoryClientTestCase testCase) { _companyFilingHistory = new CompanyFilingHistoryBuilder().Build(testCase); var resource = new CompanyFilingHistoryResourceBuilder(_companyFilingHistory) .Create(); var uri = new Uri("https://wibble.com/search/companies"); HttpMessageHandler handler = new StubHttpMessageHandler(uri, resource); var httpClientFactory = new Mock <IHttpClientFactory>(); httpClientFactory.Setup(x => x.CreateHttpClient()) .Returns(new HttpClient(handler)); var uriBuilder = new Mock <ICompanyFilingHistoryUriBuilder>(); uriBuilder.Setup(x => x.Build(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>())) .Returns(uri); _client = new CompaniesHouseCompanyFilingHistoryClient(httpClientFactory.Object, uriBuilder.Object); _result = _client.GetCompanyFilingHistoryAsync("abc", 0, 25).Result; _result.Data.ShouldBeEquivalentTo(_companyFilingHistory); }