예제 #1
0
        public async Task EditAsync_WithCorrectData_ShouldSuccessfullyEdit()
        {
            var errorMessagePrefix = "RecipeService EditAsync() method does not work properly.";

            // Arrange
            MapperInitializer.InitializeMapper();
            var context = HotelDbContextInMemoryFactory.InitializeContext();
            var seeder  = new RoomsServiceTestsSeeder();
            await seeder.SeedDataForEditAsyncMethodAsync(context);

            var roomRepository      = new EfDeletableEntityRepository <Room>(context);
            var roomTypesRepository = new EfDeletableEntityRepository <RoomType>(context);
            var roomsService        = this.GetRoomsService(roomRepository, roomTypesRepository, context);

            var room = context.Rooms.First();

            var editModel = new EditRoomViewModel
            {
                Id          = room.Id,
                RoomNumber  = "Test-Edited",
                RoomTypeId  = roomTypesRepository.All().Skip(1).Take(1).Select(x => x.Id).FirstOrDefault(),
                Description = "TestDescription-Edited",
            };

            // Act
            await roomsService.EditAsync(editModel);

            var actualResult   = roomRepository.All().First();
            var expectedResult = editModel;

            // Assert
            Assert.True(expectedResult.RoomNumber == actualResult.RoomNumber, errorMessagePrefix + " " + "RoomNumer is not returned properly.");
            Assert.True(expectedResult.Description == actualResult.Description, errorMessagePrefix + " " + "Description are not returned properly.");
            Assert.True(expectedResult.RoomTypeId == actualResult.RoomTypeId, errorMessagePrefix + " " + "RoomTypeId is not returned properly.");
        }
예제 #2
0
        public async Task EditAsync_WithNonExisterntId_ShouldThrowArgumentNullException()
        {
            // Arrange
            MapperInitializer.InitializeMapper();
            var context = HotelDbContextInMemoryFactory.InitializeContext();
            var seeder  = new RoomsServiceTestsSeeder();
            await seeder.SeedDataForEditAsyncMethodAsync(context);

            var roomsRepository     = new EfDeletableEntityRepository <Room>(context);
            var roomTypesRepository = new EfDeletableEntityRepository <RoomType>(context);
            var roomsService        = this.GetRoomsService(roomsRepository, roomTypesRepository, context);

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

            var editModel = new EditRoomViewModel
            {
                Id          = nonExistentId,
                RoomNumber  = "Test-Edited",
                RoomTypeId  = roomTypesRepository.All().First().Id,
                Description = "TestDescription-Edited",
            };

            // Act

            // Assert
            await Assert.ThrowsAsync <ArgumentNullException>(async() =>
            {
                await roomsService.EditAsync(editModel);
            });
        }
예제 #3
0
        public async Task EditAsync_WithIncorrectProperty_ShouldThrowArgumentNullException()
        {
            // Arrange
            MapperInitializer.InitializeMapper();
            var context = HotelDbContextInMemoryFactory.InitializeContext();
            var seeder  = new RoomsServiceTestsSeeder();
            await seeder.SeedDataForEditAsyncMethodAsync(context);

            var roomsRepository     = new EfDeletableEntityRepository <Room>(context);
            var roomTypesRepository = new EfDeletableEntityRepository <RoomType>(context);
            var roomsService        = this.GetRoomsService(roomsRepository, roomTypesRepository, context);

            var room = context.Rooms.First();

            var model = new EditRoomViewModel
            {
                Id          = room.Id,
                RoomNumber  = null,
                RoomTypeId  = roomTypesRepository.All().Skip(1).Take(1).Select(x => x.Id).FirstOrDefault(),
                Description = "TestDescription-Edited",
            };

            // Act

            // Assert
            await Assert.ThrowsAsync <ArgumentNullException>(async() =>
            {
                await roomsService.EditAsync(model);
            });
        }
예제 #4
0
        public async Task EditAsync_WithCorrectData_ShouldReturnCorrectResult()
        {
            var errorMessagePrefix = "RoomsService EditAsync() method does not work properly.";

            // Arrange
            MapperInitializer.InitializeMapper();
            var context = HotelDbContextInMemoryFactory.InitializeContext();
            var seeder  = new RoomsServiceTestsSeeder();
            await seeder.SeedDataForEditAsyncMethodAsync(context);

            var roomsRepository     = new EfDeletableEntityRepository <Room>(context);
            var roomTypesRepository = new EfDeletableEntityRepository <RoomType>(context);
            var roomsService        = this.GetRoomsService(roomsRepository, roomTypesRepository, context);

            var room = context.Rooms.First();

            var model = new EditRoomViewModel
            {
                Id          = room.Id,
                RoomNumber  = "Test-Edited",
                RoomTypeId  = roomTypesRepository.All().Skip(1).Take(1).Select(x => x.Id).FirstOrDefault(),
                Description = "TestDescription-Edited",
            };

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

            // Assert
            Assert.True(result, errorMessagePrefix + " " + "Returns false.");
        }