public async void AddSnapshot_ShouldReturnBadRequest() { // Arrange var snapshotForCreationDto = new LocationSnapshotForCreationDto(); // Act var sit = new LocationSnapshotsController(null, Substitute.For <ILogger <LocationSnapshotsController> >()); sit.ModelState.AddModelError("PropName", "ModelError"); var result = await sit.AddSnapshot(snapshotForCreationDto); // Assert Assert.IsType <BadRequestObjectResult>(result); }
public async Task <IActionResult> AddSnapshot([FromBody] LocationSnapshotForCreationDto snapshotForCreation) { if (!ModelState.IsValid) { _logger.LogWarning("Bad request. Model state invalid: {@ModelState}", ModelState); return(BadRequest(ModelState)); } var snapshotToAdd = Mapper.Map <LocationSnapshotForCreationDto, LocationSnapshot>(snapshotForCreation); var addedSnapshot = await _locationSnapshotDataService.AddSnapshotAsync(snapshotToAdd); var result = Mapper.Map <LocationSnapshot, LocationSnapshotDto>(addedSnapshot); return(Ok(result)); }
public async void AddSnapshot_ShouldReturnOk() { WebApiTestsHelper.Lock(); // Arrange SetUp(); var snapshotForCreationDto = new LocationSnapshotForCreationDto { LocationId = 1, Longitude = 56, Latitude = 49, Altitude = 1024, PictureFileName = "SomePic.jpg", DateCreated = new DateTime(2018, 9, 1) }; var snapshotDataService = Substitute.For <ILocationSnapshotDataService>(); snapshotDataService.AddSnapshotAsync(Arg.Any <LocationSnapshot>()) .Returns(_ => { var snapshotToAdd = _.Arg <LocationSnapshot>(); snapshotToAdd.Id = 55; var tcs = new TaskCompletionSource <LocationSnapshot>(); tcs.SetResult(snapshotToAdd); return(tcs.Task); }); // Act var sit = new LocationSnapshotsController(snapshotDataService, Substitute.For <ILogger <LocationSnapshotsController> >()); var result = await sit.AddSnapshot(snapshotForCreationDto); // Assert var addedSnapshot = WebApiTestsHelper.ExtractObjectFromActionResult <OkObjectResult, LocationSnapshotDto>(result); Assert.Equal(55, addedSnapshot.Id); Assert.Equal(snapshotForCreationDto.LocationId, addedSnapshot.LocationId); Assert.Equal(snapshotForCreationDto.Longitude, addedSnapshot.Longitude); Assert.Equal(snapshotForCreationDto.Latitude, addedSnapshot.Latitude); Assert.Equal(snapshotForCreationDto.Altitude, addedSnapshot.Altitude); Assert.Equal(snapshotForCreationDto.PictureFileName, addedSnapshot.PictureFileName); Assert.Equal(snapshotForCreationDto.DateCreated, addedSnapshot.DateCreated); WebApiTestsHelper.Unlock(); }