public void Index_ViewResult()
        {
            // Arrange
            int?daysToFree = 5;
            IEnumerable <Apartment> apartments = new List <Apartment>()
            {
                new Apartment {
                    Name = "NewApartament", Renter = new User {
                        FirstName = "Jeson"
                    }
                }
            };

            Mock <ApartmentRepository> mockApartamentRepository = new Mock <ApartmentRepository>();

            mockApartamentRepository
            .Setup(ar => ar.Get(It.IsAny <Expression <Func <Apartment, bool> > >(), null, It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns(apartments);

            Mock <IUnitOfWork> mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork
            .Setup(uw => uw.GetRepository <Apartment, ApartmentRepository>())
            .Returns(mockApartamentRepository.Object);
            Mock <IFileService> mockIFileService = new Mock <IFileService>();

            ApartmentsController controller = new ApartmentsController(mockUnitOfWork.Object, mockIFileService.Object);

            // Act
            IActionResult result = controller.Index(daysToFree, isFree: null);

            // Assert
            Assert.NotNull(result);
            ViewResult viewResult = Assert.IsType <ViewResult>(result);

            Assert.NotNull(viewResult.Model);
            IndexViewModel indexViewModel = Assert.IsType <IndexViewModel>(viewResult.Model);

            Assert.Equal(apartments, indexViewModel.Apartments);
            Assert.Null(viewResult.ViewName);
        }
        public void Index_ViewResult()
        {
            // Arrange
            IEnumerable <Apartment> apartments = new List <Apartment>
            {
                new Apartment {
                    Id = 1
                },
                new Apartment {
                    Id = 2
                }
            };

            Mock <ApartmentRepository> mockApartmentRepository = new Mock <ApartmentRepository>();

            mockApartmentRepository
            .Setup(ar => ar.GetRandom(It.IsAny <int>()))
            .Returns(apartments);

            Mock <IUnitOfWork> mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork
            .Setup(u => u.GetRepository <Apartment, ApartmentRepository>())
            .Returns(mockApartmentRepository.Object);

            ApartmentsController controller = new ApartmentsController(mockUnitOfWork.Object);

            // Act
            IActionResult result = controller.Index();

            // Assert
            Assert.NotNull(result);
            ViewResult viewResult = Assert.IsType <ViewResult>(result);

            Assert.NotNull(viewResult.Model);
            IEnumerable <Apartment> apartmentsModel = Assert.IsAssignableFrom <IEnumerable <Apartment> >(viewResult.Model);

            Assert.Same(apartments, apartmentsModel);
            Assert.Null(viewResult.ViewName);
        }