public async Task <IActionResult> Post([FromBody] LocationRequestViewModel input, CancellationToken ct = default(CancellationToken)) { try { if (input == null) { return(BadRequest()); } //For testing if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var userId = int.Parse(((ClaimsIdentity)User.Identity).Name); if (!await _vehicleManager.isValidUserVehicle(userId, (int)input.VehicleId, ct)) { return(Forbid()); } return(StatusCode(201, await _manager.AddLocationAsync(input, ct))); } catch (Exception ex) { return(StatusCode(500, new { Code = "ServerError", ex.Message })); } }
public async void Add_InvalidNullObjectPassed_ReturnsBadRequest() { LocationRequestViewModel LocationRequestViewModel = null; var badResponse = await _controller.Post(LocationRequestViewModel); Assert.IsType <BadRequestResult>(badResponse); }
/// <summary> /// Creates a new location. /// </summary> /// <param name="locationViewModel"></param> /// <param name="ct"></param> /// <returns>LocationViewModel</returns> public async Task <LocationViewModel> AddLocationAsync(LocationRequestViewModel locationRequestViewModel, CancellationToken ct = default(CancellationToken)) { var location = new Location { Longitude = (double)locationRequestViewModel.Longitude, Latitude = (double)locationRequestViewModel.Latitude, VehicleId = (int)locationRequestViewModel.VehicleId, CreatedAt = DateTime.Now }; location = await _repository.AddAsync(location, ct); var locationViewModel = LocationConverter.Convert(location); return(locationViewModel); }
public async void Add_InvalidObjectPassed_ReturnsBadRequest() { var testItem = new LocationRequestViewModel() { Longitude = 19.433052, Latitude = -99.182882, }; AddClaim(_controller); //Needs ModelState validation in controller. _controller.ModelState.AddModelError("VehicleId", "Required"); var badResponse = await _controller.Post(testItem); Assert.IsType <BadRequestObjectResult>(badResponse); }
public async void Add_ValidObjectPassed_ReturnsCreatedResponse() { // Arrange LocationRequestViewModel testItem = new LocationRequestViewModel() { Longitude = 19.433052, Latitude = -99.182882, VehicleId = 1 }; AddClaim(_controller); // Act var createdResponse = await _controller.Post(testItem); var objectResponse = createdResponse as ObjectResult; // Assert Assert.Equal(201, objectResponse.StatusCode); }