public async Task PutAsyncTest()
        {
            // Arrange
            var     mockFacultyRepository    = GetDefaultIFacultyRepositoryInstance();
            var     mockUniversityRepository = GetDefaultIUniversityRepositoryInstance();
            var     mockUnitOfWork           = GetDefaultIUnitOfWorkInstance();
            Faculty faculty   = new Faculty();
            int     facultyId = 1;

            faculty.Id   = facultyId;
            faculty.Name = "Ciencias";

            Faculty facultyExpected = new Faculty();

            facultyExpected.Name = "Letras";

            mockFacultyRepository.Setup(r => r.FindById(facultyId))
            .Returns(Task.FromResult <Faculty>(faculty));

            var service = new FacultyService(mockFacultyRepository.Object, mockUniversityRepository.Object, mockUnitOfWork.Object);

            // Act
            FacultyResponse result = await service.UpdateASync(facultyId, facultyExpected);

            // Assert
            Assert.AreEqual(facultyExpected.Name, result.Resource.Name);
        }
        public IActionResult AddFaculty(FacultyResponse facultyResponse)
        {
            ViewBag.Facultyviewmsg = "List of faculty we have";
            // Repository.AddFResponse(facultyResponse);
            repository.SaveFaculty(facultyResponse);

            ViewBag.Thanksmsg = "Faculty Details Successfully Saved, go to View page to view details.";
            return(View("Thankyou", facultyResponse));
        }
        public RedirectToActionResult DeleteFaculty(int fid)
        {
            FacultyResponse deleteFaculty = repository.DeleteFaculty(fid);

            if (deleteFaculty != null)
            {
                TempData["message"] = $"{deleteFaculty.fName} has been deleted!";
            }
            return(RedirectToAction("ViewFaculty"));
        }
        public async Task SaveAsyncWhenFacultiesReturnsSuccess()
        {
            var     mockFacultyRepository    = GetDefaultIFacultyRepositoryInstance();
            var     mockUniversityRepository = GetDefaultIUniversityRepositoryInstance();
            var     mockUnitOfWork           = GetDefaultIUnitOfWorkInstance();
            Faculty faculty = new Faculty();

            mockFacultyRepository.Setup(r => r.AddAsync(faculty))
            .Returns(Task.FromResult <Faculty>(faculty));
            var             service = new FacultyService(mockFacultyRepository.Object, mockUniversityRepository.Object, mockUnitOfWork.Object);
            FacultyResponse result  = await service.SaveAsync(faculty, 1);

            var message = result.Message;

            message.Should().Be("");
        }
        public async Task GetAsyncTestUnhappy()
        {
            // Arrange
            var mockFacultyRepository    = GetDefaultIFacultyRepositoryInstance();
            var mockUniversityRepository = GetDefaultIUniversityRepositoryInstance();
            var mockUnitOfWork           = GetDefaultIUnitOfWorkInstance();
            int facultyId = 1;


            var service = new FacultyService(mockFacultyRepository.Object, mockUniversityRepository.Object, mockUnitOfWork.Object);

            // Act
            FacultyResponse result = await service.GetByIdAsync(facultyId);

            var message = result.Message;

            // Assert
            message.Should().Be("Faculty not found");
        }
        public async Task GetAsyncTestHappy()
        {
            // Arrange
            var     mockFacultyRepository    = GetDefaultIFacultyRepositoryInstance();
            var     mockUniversityRepository = GetDefaultIUniversityRepositoryInstance();
            var     mockUnitOfWork           = GetDefaultIUnitOfWorkInstance();
            Faculty faculty   = new Faculty();
            int     facultyId = 1;

            faculty.Id = facultyId;
            mockFacultyRepository.Setup(r => r.FindById(facultyId))
            .Returns(Task.FromResult <Faculty>(faculty));

            var service = new FacultyService(mockFacultyRepository.Object, mockUniversityRepository.Object, mockUnitOfWork.Object);

            // Act
            FacultyResponse result = await service.GetByIdAsync(facultyId);

            // Assert
            Assert.AreEqual(faculty, result.Resource);
        }