Exemple #1
0
        public async Task AddRoomToUserAsyncShouldAddRowInUsersRoomTable()
        {
            //Arange
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options;

            var db     = new ApplicationDbContext(options);
            var config = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile <ApplicationProfile>();
            });
            var mapper      = new Mapper(config);
            var roomService = new RoomService(db, mapper);

            //Act
            var user = new ApplicationUser
            {
                UserName = "******",
                Email    = "*****@*****.**"
            };
            var room = new Room
            {
                Adults      = 1,
                CheckIn     = new DateTime(2020, 12, 20),
                CheckOut    = new DateTime(2020, 12, 21),
                Image       = "no image",
                Description = "no description",
                Price       = 5,
                RoomCount   = 5,
                RoomType    = RoomType.Single,
            };

            db.Rooms.Add(room);
            db.Users.Add(user);
            await db.SaveChangesAsync();

            var viewModel = new UserReserveFinishViewModel
            {
                CheckIn           = new DateTime(2020, 12, 20),
                CheckOut          = new DateTime(2020, 12, 20),
                CreaditCardNumber = "1234512345123451",
                Cvv         = 111,
                Expiration  = "03/24",
                FirstName   = "Gosho",
                LastName    = "Goshev",
                NameOfCard  = "Gosho Goshev",
                PhoneNumber = "1231231231",
            };
            await roomService.AddRoomToUserAsync(viewModel, user.Id, room.Id);

            //assert
            Assert.True(await db.UserRooms.CountAsync() == 1);
        }