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);
        }
예제 #2
0
        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);
        }