public void Execute_Response_Percentages_Add_Up_To_100(List <RequestData> dataList) { var percentageRounder = new PercentageRounder(); var requestHandler = new RequestHandler(percentageRounder); var request = new RequestRoot { Decimals = 0, Data = dataList }; var result = requestHandler.Execute(request); result.Data.Sum(x => x.Percentage).Should().Be(100); }
public void Execute_All_Percentage_Values_Are_Positive(List <RequestData> dataList) { var percentageRounder = new PercentageRounder(); var requestHandler = new RequestHandler(percentageRounder); var request = new RequestRoot { Decimals = 0, Data = dataList }; var result = requestHandler.Execute(request); var allPercentagesArePositive = result.Data.All(x => x.Percentage > 0); allPercentagesArePositive.Should().BeTrue(); }
public void Execute_Largest_Value_Has_The_Largest_Percentage(List <RequestData> dataList) { var percentageRounder = new PercentageRounder(); var requestHandler = new RequestHandler(percentageRounder); var request = new RequestRoot { Decimals = 0, Data = dataList }; var result = requestHandler.Execute(request); var dataWithLargestValue = result.Data.OrderByDescending(x => x.Value).First(); var dataWithLargestPercentage = result.Data.OrderByDescending(x => x.Percentage).First(); dataWithLargestValue.Should().Be(dataWithLargestPercentage); }
public static async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, [Table("Logs")] CloudTable percentageCalculationInputTable, TraceWriter log) { log.Info("C# HTTP trigger function processed a request."); var requestBody = new StreamReader(req.Body).ReadToEnd(); var requestRoot = JsonConvert.DeserializeObject <Models.Request.Root>(requestBody); // Move this to a DI container var percentageRounder = new PercentageRounder(); var requestHandler = new RequestHandler(percentageRounder); var response = requestHandler.Execute(requestRoot); await LogRequestAsync(percentageCalculationInputTable, requestBody, response); return(new OkObjectResult(response)); }