public async Task Calculation_Distance_Test() { // Arrange var webHostBuilder = WebHost.CreateDefaultBuilder() .UseEnvironment("Testing") .UseStartup <Startup>(); var expected = 4158; using (var server = new TestServer(webHostBuilder)) using (var client = server.CreateClient()) { // Act var inputModel = new DistanceInputModel { SourceCode = "AMS", TargetCode = "USA" }; var response = await client.PostAsJsonAsync("/api/Airport/CaculateDistance", inputModel); var actual = await response.Content.ReadAsAsync <double>(); // Assert Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Assert.AreEqual(Math.Round(actual), expected); } }
public async Task <IActionResult> CaculateDistance([FromBody] DistanceInputModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var sourceAir = await _service.GetAirport(model.SourceCode) ?? throw new Exception("Source entry is null"); var targetAir = await _service.GetAirport(model.TargetCode) ?? throw new Exception("Target entry is null"); var betweenDist = sourceAir.location.GetDistance(targetAir.location); return(Ok(betweenDist)); }