public async Task ItShouldExecute() { var exampleRequest = new List <SiteRequest> { new SiteRequest { Length = 1, Width = 1, SiteConfiguration = new ApartmentConfiguration { AverageApartmentArea = 1, NumberOfStoreys = 1, SiteCoverage = 1 } } }; var request = new JsonOptions { Input = JsonConvert.SerializeObject(exampleRequest) }; var expectedResponse = new SiteResponse(); _validator.Validate(request).Returns(true); _calculator.Calculate(Arg.Any <SiteRequest>()).Returns(expectedResponse); var result = await SystemUnderTest.Execute(request); result.Should().BeEquivalentTo(expectedResponse); }
public async Task <IList <SiteResponse> > Execute(JsonOptions options) { if (!_validator.Validate(options)) { throw new ArgumentException("Request is not valid"); } var requests = CreateRequests(options); var response = new List <SiteResponse>(); foreach (var request in requests) { var siteResponse = await _calculator.Calculate(request); response.Add(siteResponse); } return(response); }