public async Task CreateBooking_WithNotValidUser_ShouldReturnFailMessage() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var userRepository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options)); var bookingRepository = new EfDeletableEntityRepository <Model4You.Data.Models.Booking>(new ApplicationDbContext(options)); var service = new BookingService.BookingService(bookingRepository, userRepository, null); var user1 = await this.CreateUserWithNoInformationAsync( "*****@*****.**", "Pesho", "Peshev", userRepository); var fakeUserId = "FakeUser6006"; var booking = await service.CreateBooking( fakeUserId, DateTime.UtcNow, "TestName", "TestCompany", "*****@*****.**", "059593", 3, "descriptionTest"); var failedNoUser = "******"; var getBooking = await bookingRepository .All() .Where(x => x.UserId == fakeUserId) .FirstOrDefaultAsync(); Assert.Equal(failedNoUser, booking); Assert.Null(getBooking); }
public async Task GetBookingById_WithWrongInformation_ShouldReturnNull() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var userRepository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options)); var bookingRepository = new EfDeletableEntityRepository <Model4You.Data.Models.Booking>(new ApplicationDbContext(options)); var service = new BookingService.BookingService(bookingRepository, userRepository, null); var user1 = await this.CreateUserWithNoInformationAsync ("*****@*****.**", "Pesho", "Peshev", userRepository); for (int i = 0; i < 2; i++) { await this.CreateBookingForTest( user1, DateTime.UtcNow, $"TestName{i}", "TestCompany", $"test{i}@abv.bg", $"059593{i}", 1, $"descriptionTest{i}", false, userRepository, bookingRepository); } var getBookingById = await service.GetBookingById <InboxViewModel>("FakeUser6006", user1); Assert.Null(getBookingById); }
public async Task CreateBooking_ShouldCreateBookingForTheModel() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var userRepository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options)); var bookingRepository = new EfDeletableEntityRepository <Model4You.Data.Models.Booking>(new ApplicationDbContext(options)); var service = new BookingService.BookingService(bookingRepository, userRepository, null); var user1 = await this.CreateUserWithNoInformationAsync ("*****@*****.**", "Pesho", "Peshev", userRepository); var booking = await service.CreateBooking( user1, DateTime.UtcNow, "TestName", "TestCompany", "*****@*****.**", "059593", 3, "descriptionTest"); var success = "Booking was successful! Please wait for the model to contact you back"; var getBooking = await bookingRepository .All() .Where(x => x.UserId == user1) .FirstOrDefaultAsync(); Assert.Equal(success, booking); Assert.NotNull(getBooking); }
public ApplicationController() { this.creditCardService = new CreditCardService.CreditCardService(); this.bookingService = new BookingService.BookingService(); this.airportService = new AirportService.AirportService(); this.hotelService = new HotelService.HotelService(); this.bookingRepository = new BookingRepository(); this.userRepository = new UserRepository(); }
public async Task DeleteBooking_ShouldDeleteTheBookingByIdForTheUser() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var userRepository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options)); var bookingRepository = new EfDeletableEntityRepository <Model4You.Data.Models.Booking>(new ApplicationDbContext(options)); var service = new BookingService.BookingService(bookingRepository, userRepository, null); var user1 = await this.CreateUserWithNoInformationAsync( "*****@*****.**", "Pesho", "Peshev", userRepository); var booking = await this.CreateBookingForTest( user1, DateTime.UtcNow, "TestName", "TestCompany", "*****@*****.**", "059593", 1, "descriptionTest", false, userRepository, bookingRepository); for (int i = 0; i < 2; i++) { await this.CreateBookingForTest( user1, DateTime.UtcNow, $"TestName{i}", "TestCompany", $"test{i}@abv.bg", $"059593{i}", 1, $"descriptionTest{i}", false, userRepository, bookingRepository); } var getBookingId = await bookingRepository.All() .Where(x => x.UserId == user1 && x.HireDescription == "descriptionTest") .Select(x => x.Id) .FirstOrDefaultAsync(); await service.DeleteBooking(getBookingId, user1); var bookingCount = await bookingRepository .All() .Where(x => x.UserId == user1) .CountAsync(); // We have 3 bookings calling Delete makes the bookings 2 in count; Assert.Equal(2, bookingCount); }
public async Task GetBookingById_ShouldReturnTheBookingByUserIdAndBookingId() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var userRepository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options)); var bookingRepository = new EfDeletableEntityRepository <Model4You.Data.Models.Booking>(new ApplicationDbContext(options)); var service = new BookingService.BookingService(bookingRepository, userRepository, null); var user1 = await this.CreateUserWithNoInformationAsync ("*****@*****.**", "Pesho", "Peshev", userRepository); var booking = await this.CreateBookingForTest( user1, DateTime.UtcNow, "TestName", "TestCompany", "*****@*****.**", "059593", 1, "descriptionTest", false, userRepository, bookingRepository); for (int i = 0; i < 3; i++) { await this.CreateBookingForTest( user1, DateTime.UtcNow, $"TestName{i}", "TestCompany", $"test{i}@abv.bg", $"059593{i}", 1, $"descriptionTest{i}", false, userRepository, bookingRepository); } var getBookingId = await bookingRepository.All() .Where(x => x.UserId == user1 && x.HireDescription == "descriptionTest") .Select(x => x.Id) .FirstOrDefaultAsync(); var getBookingById = await service.GetBookingById <InboxViewModel>(getBookingId, user1); Assert.Equal("TestName", getBookingById.FullName); Assert.Equal("*****@*****.**", getBookingById.Email); }
public async Task TakeAllDeletedBookings_ShouldReturnAllDeletedBookingsForTheUser() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var userRepository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options)); var bookingRepository = new EfDeletableEntityRepository <Model4You.Data.Models.Booking>(new ApplicationDbContext(options)); var service = new BookingService.BookingService(bookingRepository, userRepository, null); var user1 = await this.CreateUserWithNoInformationAsync( "*****@*****.**", "Pesho", "Peshev", userRepository); for (int i = 0; i < 3; i++) { await this.CreateBookingForTest( user1, DateTime.UtcNow, $"TestName{i}", "TestCompany", $"test{i}@abv.bg", $"059593{i}", 1, $"descriptionTest{i}", false, userRepository, bookingRepository); } for (int i = 0; i < 2; i++) { await this.CreateBookingForTest( user1, DateTime.UtcNow, $"TestName{i}", "TestCompany", $"test{i}@abv.bg", $"059593{i}", 1, $"descriptionTest{i}", true, userRepository, bookingRepository); } var takeAllDeleted = await service.TakeAllDeletedBookings <InboxViewModel>(user1); var countDeleted = takeAllDeleted.Count(); Assert.Equal(2, countDeleted); }
public async Task GetUserEmail_ShouldReturnUserEmail() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var userRepository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options)); var bookingRepository = new EfDeletableEntityRepository <Model4You.Data.Models.Booking>(new ApplicationDbContext(options)); var service = new BookingService.BookingService(bookingRepository, userRepository, null); var user1 = await this.CreateUserWithNoInformationAsync ("*****@*****.**", "Pesho", "Peshev", userRepository); var getUserEmail = await service.GetUserEmail(user1); Assert.Equal("*****@*****.**", getUserEmail); }
public async Task TakeAllBookingsForCurrentUser_DependingOnPerPage_ShouldReturnAllBookingsForTheUser_DependingOnPerPageNumber() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var userRepository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options)); var bookingRepository = new EfDeletableEntityRepository <Model4You.Data.Models.Booking>(new ApplicationDbContext(options)); var service = new BookingService.BookingService(bookingRepository, userRepository, null); var user1 = await this.CreateUserWithNoInformationAsync( "*****@*****.**", "Pesho", "Peshev", userRepository); for (int i = 0; i < 18; i++) { await this.CreateBookingForTest( user1, DateTime.UtcNow, $"TestName{i}", "TestCompany", $"test{i}@abv.bg", $"059593{i}", 1, $"descriptionTest{i}", false, userRepository, bookingRepository); } var perPage = 10; var pagesCount = await service.GetPagesCount(perPage, user1); var takeAllBookings = await service .TakeAllBookingsForCurrentUser <InboxViewModel>(user1, 1, perPage); var takeAllBookingsTwo = await service .TakeAllBookingsForCurrentUser <InboxViewModel>(user1, 2, perPage); var bookingsReturned = takeAllBookings.Count(); var bookingsReturnedPageTwo = takeAllBookingsTwo.Count(); // First page should return 10 and second 8 for overall 18 blogs Assert.Equal(10, bookingsReturned); Assert.Equal(8, bookingsReturnedPageTwo); Assert.Equal(2, pagesCount); }
public async Task TakeAllBookingsForCurrentUser_WithNoBookings_ShouldReturnEmptyCollection() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var userRepository = new EfDeletableEntityRepository <ApplicationUser>(new ApplicationDbContext(options)); var bookingRepository = new EfDeletableEntityRepository <Model4You.Data.Models.Booking>(new ApplicationDbContext(options)); var service = new BookingService.BookingService(bookingRepository, userRepository, null); var user1 = await this.CreateUserWithNoInformationAsync( "*****@*****.**", "Pesho", "Peshev", userRepository); var perPage = 10; var pagesCount = await service.GetPagesCount(perPage, user1); var takeAllBookings = await service .TakeAllBookingsForCurrentUser <InboxViewModel>(user1, 1, perPage); Assert.Empty(takeAllBookings); }
public void SetUp() { // Boilerplate _mockRepository = new MockRepository(MockBehavior.Strict); _fixture = new Fixture(); //Prevent fixture from generating circular references _fixture.Behaviors.Add(new OmitOnRecursionBehavior(1)); // Mock setup _context = new PatientBookingContext(new DbContextOptionsBuilder <PatientBookingContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options); _validator = _mockRepository.Create <IAddBookingRequestValidator>(); // Mock default SetupMockDefaults(); // Sut instantiation _bookingService = new BookingService.BookingService( _context, _validator.Object ); }