public void TestSearchLocationSpacesReturnAccommodation() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.Accommodations.Add(new Accommodation() { NotAvailableDates = new List <DateEntity>() { new DateEntity() { Date = new DateTime(2017, 10, 11) }, new DateEntity() { Date = new DateTime(2017, 10, 23) }, }, Location = "Amsterdam", MaxPersons = 4 }); context.SaveChanges(); IAccommodationRepository repository = new EFAccommodationRepository(context); IEnumerable <Accommodation> searchResults = repository.Search(" Amsterdam ", new DateTime(2017, 10, 11), new DateTime(2017, 10, 23), 4); Assert.NotEmpty(searchResults); }
public void TestSearchDepartureAndArrivalReturnNoAccommodation() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.Accommodations.Add(new Accommodation() { NotAvailableDates = new List <DateEntity>() { new DateEntity() { Date = new DateTime(2017, 10, 12) }, new DateEntity() { Date = new DateTime(2017, 10, 13) }, new DateEntity() { Date = new DateTime(2017, 10, 14) }, new DateEntity() { Date = new DateTime(2017, 10, 15) }, new DateEntity() { Date = new DateTime(2017, 10, 16) }, new DateEntity() { Date = new DateTime(2017, 10, 17) }, new DateEntity() { Date = new DateTime(2017, 10, 18) }, new DateEntity() { Date = new DateTime(2017, 10, 19) }, new DateEntity() { Date = new DateTime(2017, 10, 20) }, new DateEntity() { Date = new DateTime(2017, 10, 21) }, new DateEntity() { Date = new DateTime(2017, 10, 22) }, }, Name = "Amsterdam", MaxPersons = 4 }); context.SaveChanges(); IAccommodationRepository repository = new EFAccommodationRepository(context); IEnumerable <Accommodation> searchResults = repository.Search("Amsterdam", new DateTime(2017, 10, 13), new DateTime(2017, 10, 19), 4); Assert.Empty(searchResults); }
public void TestSearchReturnAfterDeparture() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); IAccommodationRepository repository = new EFAccommodationRepository(context); Assert.Throws <ArgumentOutOfRangeException>(() => repository.Search("Amsterdam", new DateTime(2017, 10, 12), new DateTime(2017, 10, 11), 4)); }
public void TestSearchEmptyGuests() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); IAccommodationRepository repository = new EFAccommodationRepository(context); Assert.Throws <ArgumentNullException>(() => repository.Search("Amsterdam", DateTime.Now, DateTime.Now, 0)); }
public void TestSearchDepartureAndArrivalReturnExistingAccommodation() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); context.Accommodations.Add(new Accommodation() { NotAvailableDates = new List <DateEntity>() { new DateEntity() { Date = new DateTime(2017, 10, 11) }, new DateEntity() { Date = new DateTime(2017, 10, 23) }, }, Location = "Amsterdam", MaxPersons = 4 }); context.SaveChanges(); IAccommodationRepository repository = new EFAccommodationRepository(context); IEnumerable <Accommodation> searchResults = repository.Search("Amsterdam", new DateTime(2017, 10, 11), new DateTime(2017, 10, 23), 4); Assert.NotEmpty(searchResults); Accommodation firstResult = searchResults.FirstOrDefault(); Assert.NotNull(firstResult); Assert.True(firstResult.MaxPersons == 4); Assert.True(firstResult.Location == "Amsterdam"); }