public async Task EditAsync_WithCorrectData_ShouldReturnCorrectResult()
        {
            var errorMessage = "ReservationStatusesService EditAsync() method does not work properly.";

            // Arrange
            MapperInitializer.InitializeMapper();
            var context = HotelDbContextInMemoryFactory.InitializeContext();
            var reservationStatusRepository = new EfDeletableEntityRepository <ReservationStatus>(context);
            var reservationStatusesService  = this.GetReservationStatusesService(reservationStatusRepository, context);
            var seeder = new ReservationStatusesServiceTestsSeeder();
            await seeder.SeedReservationStatusAsync(context);

            var reservationStatus = context.ReservationStatuses.First();

            var model = new EditReservationStatusViewModel
            {
                Id   = reservationStatus.Id,
                Name = "Test-1-Edited",
            };

            // Act
            var result = await reservationStatusesService.EditAsync(model);

            // Assert
            Assert.True(result, errorMessage + " " + "Returns false.");
        }
        public async Task GetViewModelByIdAsync_WithExistentId_ShouldReturnCorrectResult()
        {
            var errorMessagePrefix = "ReservationStatusesService GetViewModelByIdAsync() method does not work properly.";

            // Arrange
            MapperInitializer.InitializeMapper();
            var context = HotelDbContextInMemoryFactory.InitializeContext();
            var reservationStatusRepository = new EfDeletableEntityRepository <ReservationStatus>(context);
            var reservationStatusesService  = this.GetReservationStatusesService(reservationStatusRepository, context);
            var seeder = new ReservationStatusesServiceTestsSeeder();
            await seeder.SeedReservationStatusesAsync(context);

            var reservationStatusId = reservationStatusRepository.All().First().Id;

            // Act
            var actualResult = await reservationStatusesService.GetViewModelByIdAsync <EditReservationStatusViewModel>(reservationStatusId);

            var expectedResult = new EditReservationStatusViewModel
            {
                Id   = reservationStatusId,
                Name = reservationStatusRepository.All().First().Name,
            };

            // Assert
            Assert.True(expectedResult.Id == actualResult.Id, errorMessagePrefix + " " + "Id is not returned properly.");
            Assert.True(expectedResult.Name == actualResult.Name, errorMessagePrefix + " " + "Name is not returned properly.");
        }
        public async Task EditAsync_WithCorrectData_ShouldSuccessfullyEdit()
        {
            var errorMessagePrefix = "ReservationStatusesService EditAsync() method does not work properly.";

            // Arrange
            MapperInitializer.InitializeMapper();
            var context = HotelDbContextInMemoryFactory.InitializeContext();
            var reservationStatusRepository = new EfDeletableEntityRepository <ReservationStatus>(context);
            var reservationStatusesService  = this.GetReservationStatusesService(reservationStatusRepository, context);
            var seeder = new ReservationStatusesServiceTestsSeeder();
            await seeder.SeedReservationStatusAsync(context);

            var reservationStatus = context.ReservationStatuses.First();

            var model = new EditReservationStatusViewModel
            {
                Id   = reservationStatus.Id,
                Name = "Test-1-Edited",
            };

            // Act
            await reservationStatusesService.EditAsync(model);

            var actualResult   = reservationStatusRepository.All().First();
            var expectedResult = model;

            // Assert
            Assert.True(expectedResult.Name == actualResult.Name, errorMessagePrefix + " " + "Name is not returned properly.");
        }
        public async Task EditAsync_WithIncorrectProperty_ShouldThrowArgumentNullException()
        {
            // Arrange
            MapperInitializer.InitializeMapper();
            var context = HotelDbContextInMemoryFactory.InitializeContext();
            var reservationStatusRepository = new EfDeletableEntityRepository <ReservationStatus>(context);
            var reservationStatusesService  = this.GetReservationStatusesService(reservationStatusRepository, context);
            var seeder = new ReservationStatusesServiceTestsSeeder();
            await seeder.SeedReservationStatusAsync(context);

            var reservationStatus = context.ReservationStatuses.First();

            var model = new EditReservationStatusViewModel
            {
                Id   = reservationStatus.Id,
                Name = null,
            };

            // Act

            // Assert
            await Assert.ThrowsAsync <ArgumentNullException>(async() =>
            {
                await reservationStatusesService.EditAsync(model);
            });
        }
Пример #5
0
        public async Task <bool> EditAsync(EditReservationStatusViewModel reservationStatusEditViewModel)
        {
            var reservationStatus = this.reservationStatusesRepository.All().FirstOrDefault(r => r.Id == reservationStatusEditViewModel.Id);

            if (reservationStatus == null)
            {
                throw new ArgumentNullException(string.Format(string.Format(ServicesDataConstants.InvalidReservationStatusIdErrorMessage, reservationStatusEditViewModel.Id)));
            }

            if (reservationStatusEditViewModel.Name == null)
            {
                throw new ArgumentNullException(string.Format(ServicesDataConstants.InvalidPropertyNameErrorMessage));
            }

            reservationStatus.Name = reservationStatusEditViewModel.Name;

            this.reservationStatusesRepository.Update(reservationStatus);

            var result = await this.reservationStatusesRepository.SaveChangesAsync();

            return(result > 0);
        }
        public async Task EditAsync_WithNonExistentId_ShouldThrowArgumentNullException()
        {
            // Arrange
            MapperInitializer.InitializeMapper();
            var context = HotelDbContextInMemoryFactory.InitializeContext();
            var reservationStatusRepository = new EfDeletableEntityRepository <ReservationStatus>(context);
            var reservationStatusesService  = this.GetReservationStatusesService(reservationStatusRepository, context);

            var nonExistentId = Guid.NewGuid().ToString();

            var model = new EditReservationStatusViewModel
            {
                Id   = nonExistentId,
                Name = "Test-1-Edited",
            };

            // Act

            // Assert
            await Assert.ThrowsAsync <ArgumentNullException>(async() =>
            {
                await reservationStatusesService.EditAsync(model);
            });
        }