public async Task <ActionResult> CreateRoute(BestRouteCreateRequest action) { var errors = new List <ValidationResult>(); Validator.TryValidateObject(action, new ValidationContext(action, null, null), errors, true); if (errors.Count > 0) { return(BadRequest(errors.First())); } var result = await _service.CreateRoute(action); return(result.Item1 == true ? Ok(result.Item2) : StatusCode(500)); }
public Task <Tuple <bool, string> > CreateRoute(BestRouteCreateRequest action) { try { StringBuilder builder = new(); string line = $"{action.From},{action.To},{action.Cost}"; string filePath = GetFilePath(action.DataSource); builder.AppendLine(line); File.AppendAllText(filePath, builder.ToString()); } catch (Exception ex) { return(Task.FromResult(Tuple.Create(false, ex.Message))); } return(Task.FromResult(Tuple.Create(true, "Route sucessful added!"))); }
public async Task CreateRoute_Should_Return_BadRequest_Cost(string dataSource, string from, string to, double?cost) { //Arrange var fakeRequest = new BestRouteCreateRequest() { DataSource = dataSource, From = from, To = to, Cost = cost }; //Act var result = await _controller.CreateRoute(fakeRequest); var okResult = result as BadRequestObjectResult; //Assert Assert.Equal("The field Cost is required.", okResult.Value.ToString()); Assert.Equal(400, okResult.StatusCode); }
public async Task CreateRoute_Should_Return_Ok(string dataSource, string from, string to, double?cost) { //Arrange var fakeRequest = new BestRouteCreateRequest() { DataSource = dataSource, From = from, To = to, Cost = cost }; //Act var result = await _controller.CreateRoute(fakeRequest); var okResult = result as OkObjectResult; var resultData = okResult.Value; //Assert Assert.Equal(200, okResult.StatusCode); Assert.Equal("Route sucessful added!", resultData); }