Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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();
        }