Example #1
0
        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);
                }
        }
Example #2
0
        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));
        }