public async Task AddLoanGet_ReturnsAViewResult()
        {
            var controller = new AdminController(_adminMock.Object, _userMock.Object, _loginMock.Object,
                                                 _userInfoMock.Object, _userManagerMock.Object,
                                                 _transfersReportsMock.Object, _countersReportMock.Object, _filtersReportMock.Object);
            //Act
            var result = await controller.AddLoan();

            // Assert
            var viewResult = Assert.IsType <ViewResult>(result);
        }
        public async Task AddLoanPost_ReturnsAViewResult_WithInvalidModelState()
        {
            //Arrange
            var controller = new AdminController(_adminMock.Object, _userMock.Object, _loginMock.Object,
                                                 _userInfoMock.Object, _userManagerMock.Object,
                                                 _transfersReportsMock.Object, _countersReportMock.Object, _filtersReportMock.Object);

            controller.ModelState.AddModelError("error", "some error");

            // Act
            var result = await controller.AddLoan(loan : null);

            // Assert
            Assert.IsType <ViewResult>(result);
        }
        //[Fact]
        public async Task AddLoanPost_ReturnsARedirectedViewResult_ValidModelState()
        {
            //Arrange

            var controller = new AdminController(_adminMock.Object, _userMock.Object, _loginMock.Object,
                                                 _userInfoMock.Object, _userManagerMock.Object,
                                                 _transfersReportsMock.Object, _countersReportMock.Object, _filtersReportMock.Object);
            var LoanModel = new Loan
            {
                Name              = "abc",
                Percentage        = 10,
                AccidentInsurance = 10,
                Purpose           = "abc",
                Term              = "abc",
                Currency          = "abc",
                RepaymentSchedule = "abc",
                AdvancedPayment   = "abc",
                InterestRate      = 10,
                MinAmount         = 10,
                MaxAmount         = 100,
                Id               = 1000,
                InsuranceLoan    = 10,
                LoanInterestRate = 10,
                ServiceFee       = 10,
                AccountLoans     = null,
            };

            //Act
            var result = await controller.AddLoan(loan : LoanModel);

            //Assert
            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Equal("Admin", redirectToActionResult.ControllerName);
            Assert.Equal("LoansManagment", redirectToActionResult.ActionName);
        }