public void AddDonorHttpPostInvalidInputShouldThrowAnyExceptionTest()
        {
            var mockUserManagerService = this.GetUserManagerMock();
            var mockDonorsService      = new Mock <IDonorsService>();
            var mockUsersService       = new Mock <IUsersService>();
            var input = new DonorDataProfileInputModel();

            var controller = new DonorsController(
                mockUserManagerService.Object,
                mockDonorsService.Object,
                mockUsersService.Object);

            Assert.ThrowsAnyAsync <Exception>(() => controller.AddDonor(input));
        }
        public void AddDonorHttpGetShouldReturnNotFoundResultInCaseOfEmptyViewModelTest()
        {
            var mockUserManagerService = this.GetUserManagerMock();
            var mockDonorsService      = new Mock <IDonorsService>();
            var mockUsersService       = new Mock <IUsersService>();

            var controller = new DonorsController(
                mockUserManagerService.Object,
                mockDonorsService.Object,
                mockUsersService.Object);

            var result = controller.AddDonor();

            Assert.IsType <ViewResult>(result);
        }
        public void AddDonorHttpPostValidInputShouldRedirectResultTest()
        {
            var mockUserManagerService = this.GetUserManagerMock();
            var mockDonorsService      = new Mock <IDonorsService>();
            var mockUsersService       = new Mock <IUsersService>();

            var input = this.SeedData();

            var controller = new DonorsController(
                mockUserManagerService.Object,
                mockDonorsService.Object,
                mockUsersService.Object);

            var result = controller.AddDonor(input);

            Assert.IsType <RedirectToActionResult>(result.Result);
        }
        public void AddDonorHttpPostValidInputShouldRedirectToCorrectActionAndCotrollerTest()
        {
            var mockUserManagerService = this.GetUserManagerMock();
            var mockDonorsService      = new Mock <IDonorsService>();
            var mockUsersService       = new Mock <IUsersService>();

            var controller = new DonorsController(
                mockUserManagerService.Object,
                mockDonorsService.Object,
                mockUsersService.Object);

            var input = this.SeedData();

            var result = controller.AddDonor(input).Result;

            var redirect = result as RedirectToActionResult;

            Assert.Equal($"AllRequests", redirect.ActionName);
            Assert.Equal($"Requests", redirect.ControllerName);
        }
        public void AddDonorHttpGetShouldReturnViewModelTest()
        {
            var mockUserManagerService = this.GetUserManagerMock();
            var mockDonorsService      = new Mock <IDonorsService>();
            var mockUsersService       = new Mock <IUsersService>();

            mockUsersService.Setup(x => x.GetUserById <DonorDataProfileInputModel>("123"))
            .Returns(new DonorDataProfileInputModel()
            {
                Id        = "123",
                FirstName = "Donor1",
                LastName  = "Donor1",
            });

            var controller = new DonorsController(
                mockUserManagerService.Object,
                mockDonorsService.Object,
                mockUsersService.Object);

            var result = controller.AddDonor();

            Assert.IsType <ViewResult>(result);
        }