public void TestEmptySearchAccommodations() { var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>(); optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString()); HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options); IAccommodationRepository repository = new EFAccommodationRepository(context); IReviewRepository reviewRepo = new EFReviewRepository(context, repository); IAccommodationManager manager = new AccommodationManager(repository, reviewRepo); SearchController target = new SearchController(manager); AccommodationSearchViewModel searchModel = new AccommodationSearchViewModel() { StartDate = new DateTime(2017, 10, 12), EndDate = new DateTime(2017, 10, 22), Location = "Gilze", Persons = 4 }; ViewResult result = target.Results(searchModel); AccommodationSearchResultsViewModel model = result.Model as AccommodationSearchResultsViewModel; Assert.NotNull(model); Assert.NotNull(model.Search); Assert.Empty(model.Accommodations); Assert.Equal(searchModel, model.Search); Assert.Equal("NoResults", result.ViewName); }
public void TestFilledSearchAccommodations() { 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); IReviewRepository reviewRepo = new EFReviewRepository(context, repository); IAccommodationManager manager = new AccommodationManager(repository, reviewRepo); SearchController target = new SearchController(manager); AccommodationSearchViewModel searchModel = new AccommodationSearchViewModel() { StartDate = new DateTime(2017, 10, 12), EndDate = new DateTime(2017, 10, 22), Location = "Amsterdam", Persons = 4 }; ViewResult result = target.Results(searchModel); AccommodationSearchResultsViewModel resultsModel = result.Model as AccommodationSearchResultsViewModel; Assert.NotNull(resultsModel); Assert.NotNull(resultsModel.Accommodations); Assert.NotEmpty(resultsModel.Accommodations); Assert.True(resultsModel.Accommodations.Count() == 1); Assert.NotNull(resultsModel.Search); Assert.Equal(searchModel, resultsModel.Search); Assert.Equal("Results", result.ViewName); }
public ViewResult Results(AccommodationSearchViewModel search) { var searchResultsModel = new AccommodationSearchResultsViewModel { //Store the original search parameters Search = search, //Perform search Accommodations = _accommodationManager.Search(search.Location, search.StartDate ?? DateTime.Now, search.EndDate ?? DateTime.Now.AddDays(1), search.Persons) }; if (searchResultsModel.Accommodations.Any()) { return(View("Results", searchResultsModel)); } else { return(View("NoResults", searchResultsModel)); } }