public async Task Index_ReturnsViewResult()
        {
            // Arrange
            var reservations = new List <Reservation>
            {
                new Reservation {
                    CustomerId = 1, MembershipId = 1, Details = "something"
                },
                new Reservation {
                    CustomerId = 2, MembershipId = 2, Details = "something else"
                },
            };

            reservationRepoMock = new Mock <IReservationRepository>();
            reservationRepoMock
            .Setup(repo => repo.GetAllAsync())
            .ReturnsAsync(await Task.FromResult(reservations));
            var controller = new ReservationsController(reservationRepoMock.Object);

            // Act
            var result = await controller.Index();

            // Assert
            var viewResult = result.Should().BeOfType <ViewResult>();
            var model      = (IEnumerable <Reservation>)viewResult.Subject.Model;

            model.Count().Should().Be(2);
        }
        public async Task Index_ShouldReturnModelWithReservations()
        {
            var input = new ReservationViewModel();

            reservationServiceMock.Setup(s => s.FindAllByHotelIdAsync(input.HotelId))
            .ReturnsAsync(GetTestReservations());
            var controller = new ReservationsController(reservationServiceMock.Object, roomServiceMock.Object);

            var result = await controller.Index(input);

            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <ReservationViewModel>(viewResult.ViewData.Model);

            Assert.Equal(2, model.Reservations.Count());
        }
        public void Index_ReturnsView()
        {
            ViewResult result = _controller.Index() as ViewResult;

            Assert.AreEqual("Index", result.ViewName);
        }