コード例 #1
0
        public void TestFilledSearchAccommodations()
        {
            var optionsBuilder = new DbContextOptionsBuilder <HomeMyDayDbContext>();

            optionsBuilder.UseInMemoryDatabase(Guid.NewGuid().ToString());
            HomeMyDayDbContext context = new HomeMyDayDbContext(optionsBuilder.Options);

            context.Accommodations.Add(new Accommodation()
            {
                Beds        = 4,
                Continent   = "Europe",
                Country     = "Netherlands",
                Description = "Van der Valk hotels",
                Location    = "Gilze",
                MaxPersons  = 4,
                Name        = "Van der valk Gilze",
                Rooms       = 5
            });

            context.SaveChanges();

            IAccommodationRepository repository = new EFAccommodationRepository(context);
            IReviewRepository        reviewRepo = new EFReviewRepository(context, repository);
            IAccommodationManager    manager    = new AccommodationManager(repository, reviewRepo);

            SearchBarViewComponent target = new SearchBarViewComponent(manager);

            AccommodationSearchViewModel results = (AccommodationSearchViewModel)(target.Invoke() as ViewViewComponentResult).ViewData.Model;

            Assert.NotNull(results);
            Assert.NotEmpty(results.Accommodations);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        public IViewComponentResult Invoke()
        {
            var accommodations = _accommodationManager.GetAccommodations();

            var viewModel = new AccommodationSearchViewModel
            {
                Accommodations = accommodations
            };

            return(View(viewModel));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);

            SearchBarViewComponent target = new SearchBarViewComponent(manager);

            AccommodationSearchViewModel results = (AccommodationSearchViewModel)(target.Invoke() as ViewViewComponentResult).ViewData.Model;

            Assert.NotNull(results);
            Assert.Empty(results.Accommodations);
        }
コード例 #6
0
        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));
            }
        }