Пример #1
0
        public void GetPartnerById_Successfully(int id)
        {
            IActionResult result = _mockController.GetPartnerById(id);

            result.Should().BeOfType <OkObjectResult>();
            result.As <OkObjectResult>().StatusCode.Should().Be(200);
            result.As <OkObjectResult>().Value.ToString().Should().Contain("success = True");
        }
Пример #2
0
        public void CreatePartner_Successfully(JObject partner, JObject secondPartner)
        {
            IActionResult result = _mockController.CreateNewPartner(partner);

            result.Should().BeOfType <OkObjectResult>();
            result.As <OkObjectResult>().StatusCode.Should().Be(200);
            result.As <OkObjectResult>().Value.ToString().Should().Contain("success = True");
        }
Пример #3
0
        public async Task AndFeedbackIsNotComplete_ThenResultIdRedirectToConfirmDetailsPage()
        {
            _result = await _controller.Index(_feedbackId);

            _result.Should().BeOfType <RedirectToActionResult>();
            _result.As <RedirectToActionResult>().ActionName.Should().Be("Index");
            _result.As <RedirectToActionResult>().ControllerName.Should().Be("FeedbackConfirmDetails");
        }
Пример #4
0
        public async Task AndFeedbackIsComplete_ThenResultIsRedirectToCompletePage()
        {
            _mediator.Send(Arg.Any <GetVisitFeedbackRequest>()).Returns(new VisitFeedback()
            {
                Status = FeedbackStatus.Complete
            });
            _result = await _controller.Index(_feedbackId);

            _result.Should().BeOfType <RedirectToActionResult>();
            _result.As <RedirectToActionResult>().ActionName.Should().Be("Index");
            _result.As <RedirectToActionResult>().ControllerName.Should().Be("FeedbackComplete");
        }
Пример #5
0
        public async Task DeleteUserPost_ShouldReturnRedirectToActionWhenValidUserId()
        {
            // Arrange
            string tempDataSuccessMessage = null;

            Mock <UserManager <User> > userManager = this.GetAndSetUserManagerMock();

            userManager
            .Setup(um => um.DeleteAsync(It.IsAny <User>()))
            .ReturnsAsync(IdentityResult.Success);

            Mock <ITempDataDictionary> tempData = new Mock <ITempDataDictionary>();

            tempData.SetupSet(t => t["SuccessMessage"] = It.IsAny <string>())
            .Callback((string key, object successMessage) => tempDataSuccessMessage = successMessage as string);

            HomeController controller = new HomeController(null, userManager.Object, null);

            controller.TempData = tempData.Object;

            // Act
            IActionResult actionResult = await controller.DestroyUser(FirstUserId);

            // Assert
            actionResult.Should().BeOfType <RedirectToActionResult>();
            actionResult.As <RedirectToActionResult>().ActionName.Should().Be("AllUsers");

            tempDataSuccessMessage.Should().Be(DeleteMessageSuccessfull);
        }
Пример #6
0
        public async Task DeleteUserPost_ShouldReturnViewWithModelWhenDeleteAsyncFailed()
        {
            // Arrange
            IdentityDeleteUserViewModel formModel = new IdentityDeleteUserViewModel()
            {
                Username = "******"
            };

            Mock <UserManager <User> > userManager = this.GetAndSetUserManagerMock();

            userManager
            .Setup(um => um.DeleteAsync(It.IsAny <User>()))
            .ReturnsAsync(IdentityResult.Failed(new IdentityError {
                Description = "test"
            }));

            HomeController controller = new HomeController(null, userManager.Object, null);

            // Act
            IActionResult actionResult = await controller.DeleteUser(FirstUserId);

            // Assert
            actionResult.Should().BeOfType <ViewResult>();

            object model = actionResult.As <ViewResult>().Model;

            model.Should().BeOfType <IdentityDeleteUserViewModel>();

            var returnedModel = model.As <IdentityDeleteUserViewModel>();

            returnedModel.Username.Should().Be(formModel.Username);
        }
Пример #7
0
        public async Task EditUserPost_ShouldReturnRedirectToActionWhenValidUserId()
        {
            // Arrange
            string tempDataSuccessMessage = null;

            IdentityRegisterViewModel formModel = new IdentityRegisterViewModel()
            {
                Email    = "NewEmail",
                Username = "******"
            };

            Mock <UserManager <User> > userManager = this.GetAndSetUserManagerMock();

            userManager
            .Setup(um => um.UpdateAsync(It.IsAny <User>()))
            .ReturnsAsync(IdentityResult.Success);

            Mock <ITempDataDictionary> tempData = new Mock <ITempDataDictionary>();

            tempData.SetupSet(t => t["SuccessMessage"] = It.IsAny <string>())
            .Callback((string key, object successMessage) => tempDataSuccessMessage = successMessage as string);

            HomeController controller = new HomeController(null, userManager.Object, null);

            controller.TempData = tempData.Object;

            // Act
            IActionResult actionResult = await controller.EditUser(FirstUserId, formModel);

            // Assert
            actionResult.Should().BeOfType <RedirectToActionResult>();
            actionResult.As <RedirectToActionResult>().ActionName.Should().Be("AllUsers");

            tempDataSuccessMessage.Should().Be(EditUserMessageUpdated);
        }
Пример #8
0
        public async Task AddUserPost_ShouldReturnRedirectToActionWhenModelStateIsValid()
        {
            // Arrange
            string tempDataSuccessMessage = null;

            RegisterViewModel formModel = new RegisterViewModel()
            {
                Email    = FirstUserEmail,
                Username = FirstUserUsername,
            };

            Mock <UserManager <User> > userManager = UserManagerMock.GetNew();

            userManager
            .Setup(x => x.CreateAsync(It.IsAny <User>(), It.IsAny <string>()))
            .ReturnsAsync(IdentityResult.Success);

            Mock <ITempDataDictionary> tempData = new Mock <ITempDataDictionary>();

            tempData.SetupSet(t => t["SuccessMessage"] = It.IsAny <string>())
            .Callback((string key, object successMessage) => tempDataSuccessMessage = successMessage as string);

            HomeController controller = new HomeController(null, userManager.Object, null);

            controller.TempData = tempData.Object;

            // Act
            IActionResult actionResult = await controller.AddUser(formModel);

            // Assert
            actionResult.Should().BeOfType <RedirectToActionResult>();
            actionResult.As <RedirectToActionResult>().ActionName.Should().Be("AllUsers");

            tempDataSuccessMessage.Should().Be(AddUserMessageSuccessfull);
        }
Пример #9
0
        public async Task AddUserPost_ShouldReturnViewWithModelWhenCreateAsyncFailed()
        {
            // Arrange
            RegisterViewModel formModel = new RegisterViewModel()
            {
                Username = "******"
            };

            Mock <UserManager <User> > userManager = UserManagerMock.GetNew();

            userManager
            .Setup(x => x.CreateAsync(It.IsAny <User>(), It.IsAny <string>()))
            .ReturnsAsync(IdentityResult.Failed(new IdentityError {
                Description = "test"
            }));

            HomeController controller = new HomeController(null, userManager.Object, null);

            // Act
            IActionResult actionResult = await controller.AddUser(formModel);

            // Assert
            actionResult.Should().BeOfType <ViewResult>();

            object model = actionResult.As <ViewResult>().Model;

            model.Should().BeOfType <RegisterViewModel>();

            var returnedModel = model.As <RegisterViewModel>();

            returnedModel.Username.Should().Be(formModel.Username);
        }
Пример #10
0
        public async Task ManageRolesPost_ShouldReturnViewWithModelWhenRemoveFromRolesAsyncFailed()
        {
            // Arrange
            IdentityRoleViewModel formModel = new IdentityRoleViewModel()
            {
                Username = FirstUserUsername
            };

            Mock <RoleManager <IdentityRole> > roleManager = this.GetAndSetRoleManagerMock();

            Mock <UserManager <User> > userManager = this.GetAndSetUserManagerMock();

            userManager
            .Setup(um => um.RemoveFromRolesAsync(It.IsAny <User>(), It.IsAny <List <string> >()))
            .ReturnsAsync(IdentityResult.Failed(new IdentityError {
                Description = "test"
            }));

            HomeController controller = new HomeController(null, userManager.Object, roleManager.Object);

            // Act
            IActionResult actionResult = await controller.ManageRoles(FirstUserId, formModel);

            // Assert
            actionResult.Should().BeOfType <ViewResult>();

            object model = actionResult.As <ViewResult>().Model;

            model.Should().BeOfType <IdentityRoleViewModel>();

            IdentityRoleViewModel returnedModel = model.As <IdentityRoleViewModel>();

            returnedModel.Username.Should().Be(formModel.Username);
        }
        public async Task ChangeUserPasswordPost_ShouldReturnRedirectToActionWhenValidUserId()
        {
            // Arrange
            string tempDataSuccessMessage = null;

            ChangeUserPasswordFormModel formModel = new ChangeUserPasswordFormModel()
            {
                Username = FirstUserUsername
            };

            Mock <UserManager <User> > userManager = this.GetAndSetUserManagerMock();

            userManager
            .Setup(um => um.ResetPasswordAsync(It.IsAny <User>(), It.IsAny <string>(), It.IsAny <string>()))
            .ReturnsAsync(IdentityResult.Success);

            Mock <ITempDataDictionary> tempData = new Mock <ITempDataDictionary>();

            tempData.SetupSet(t => t[WebConstants.TempDataSuccessMessageKey]        = It.IsAny <string>())
            .Callback((string key, object successMessage) => tempDataSuccessMessage = successMessage as string);

            UsersController controller = new UsersController(null, null, userManager.Object);

            controller.TempData = tempData.Object;

            // Act
            IActionResult actionResult = await controller.ChangeUserPassword(FirstUserId, formModel);

            // Assert
            actionResult.Should().BeOfType <RedirectToActionResult>();
            actionResult.As <RedirectToActionResult>().ActionName.Should().Be("Index");

            tempDataSuccessMessage.Should().Be(MessageUpdated);
        }
Пример #12
0
        private static void AssertModelStateErrorIsExpected(IActionResult result, string expectedErrorMessage)
        {
            var errorMessage = result.As <ViewResult>().ViewData.ModelState.Select(x => x.Value.Errors)
                               .Where(y => y.Count > 0).ToList().First().First().ErrorMessage;

            errorMessage.Should().BeEquivalentTo(expectedErrorMessage);
        }
        public async Task Index_ShouldReturnFilteredUsersWithSearchTermNotNull()
        {
            // Arrange
            Mock <IAdminService> adminService = new Mock <IAdminService>();

            adminService
            .Setup(service => service.GetAllUsers(1, SearchTerm))
            .Returns(new List <UserBaseServiceModel>()
            {
                new UserBaseServiceModel()
                {
                    Id = FirstUserId, Email = FirstUserEmail, Username = FirstUserUsername
                },
            });

            UsersController controller = new UsersController(adminService.Object, null, null);

            // Act
            IActionResult actionResult = await controller.Index(1, SearchTerm);

            // Assert
            actionResult.Should().BeOfType <ViewResult>();

            object model = actionResult.As <ViewResult>().Model;

            model.Should().BeOfType <UsersPaginationModel>();

            UsersPaginationModel returnedModel = model.As <UsersPaginationModel>();

            returnedModel.Users.Should().Match(u => u.As <List <UserBaseServiceModel> >().Count() == 1);
            returnedModel.Users.First().Should().Match(u => u.As <UserBaseServiceModel>().Id == FirstUserId);
            returnedModel.Users.First().Should().Match(u => u.As <UserBaseServiceModel>().Username.ToLower().Contains(SearchTerm.ToLower()));
            returnedModel.Search.Should().Be(SearchTerm);
        }
        private void AssertRedirectToCompanyRoutes(IActionResult result)
        {
            result.Should().BeOfType <RedirectToActionResult>();
            var redirectResult = result.As <RedirectToActionResult>();

            redirectResult.ActionName.Should().Be(WebConstants.Action.CompanyAllRoutes);
        }
Пример #15
0
        public void Index_ReturnOneToDoList()
        {
            //Arrange
            IToDoListService toDoListServiceFake = A.Fake <IToDoListService>();
            List <ToDoList>  toDoLists           = new List <ToDoList>
            {
                CreateToDoListDefault()
            };

            A.CallTo(() => toDoListServiceFake.ToDoLists())
            .Returns(toDoLists);

            ToDoListController sut = CreateSut(toDoListServiceFake);

            //Act
            IActionResult result = sut.Index().Result;

            //Assert
            result
            .As <ViewResult>()
            .Model
            .As <List <ToDoList> >()
            .Should()
            .HaveCount(1);
        }
        public async Task Index_ShouldReturnPartialViewWhenAjaxRequestAndValidMovieId()
        {
            // Arrange
            Mock <IMovieDbService> movieDbService = new Mock <IMovieDbService>();

            movieDbService
            .Setup(ms => ms.GetMovieDetailsAsync(It.IsAny <int>()))
            .ReturnsAsync(new MovieDetailsServiceModel()
            {
                Id = FirstMovieId, Title = FirstMovieTitle, ProductionYear = FirstMovieProductionYear
            });

            HomeController controller = new HomeController(
                movieDbService.Object, null, null, null, null, null, null, null);

            controller.InjectAjaxRequest(true);

            // Act
            IActionResult actionResult = await controller.Index(FirstMovieId);

            // Assert
            actionResult.Should().BeOfType <PartialViewResult>();

            object model = actionResult.As <PartialViewResult>().Model;

            model.Should().BeOfType <MovieIndexViewModel>();

            MovieIndexViewModel returnedModel = model.As <MovieIndexViewModel>();

            returnedModel.MovieDetails.Id.Should().Be(FirstMovieId);
        }
Пример #17
0
        public void EditPost_InvalidModalState_ReturnViewWithOneModelStateError()
        {
            //Arrange
            int      toDoListId = 1;
            ToDoList toDoList   = new ToDoList
            {
                Id = 1
            };

            IToDoListService toDoListServiceFake = A.Fake <IToDoListService>();

            ToDoListController sut = CreateSut(toDoListServiceFake);

            string modelStateErrorKey = "Name";

            sut.ModelState.AddModelError(modelStateErrorKey, "Name is required.");

            //Act
            IActionResult result = sut.Edit(toDoListId, toDoList).Result;

            //Assert
            result
            .As <ViewResult>()
            .ViewData
            .ModelState[modelStateErrorKey]
            .Errors
            .Should()
            .HaveCount(1);
        }
        public async Task ChangeUserPasswordPost_ShouldReturnViewWithModelWhenResetPasswordAsyncFailed()
        {
            // Arrange
            ChangeUserPasswordFormModel formModel = new ChangeUserPasswordFormModel()
            {
                Username = FirstUserUsername
            };

            Mock <UserManager <User> > userManager = this.GetAndSetUserManagerMock();

            userManager
            .Setup(um => um.ResetPasswordAsync(It.IsAny <User>(), It.IsAny <string>(), It.IsAny <string>()))
            .ReturnsAsync(IdentityResult.Failed(new IdentityError {
                Description = "test"
            }));

            UsersController controller = new UsersController(null, null, userManager.Object);

            // Act
            IActionResult actionResult = await controller.ChangeUserPassword(FirstUserId, formModel);

            // Assert
            actionResult.Should().BeOfType <ViewResult>();

            object model = actionResult.As <ViewResult>().Model;

            model.Should().BeOfType <ChangeUserPasswordFormModel>();

            ChangeUserPasswordFormModel returnedModel = model.As <ChangeUserPasswordFormModel>();

            returnedModel.Username.Should().Be(formModel.Username);
        }
        protected void AssertRedirectToHome(IActionResult result)
        {
            result.Should().BeOfType <RedirectToActionResult>();
            var model = result.As <RedirectToActionResult>();

            model.ActionName.Should().Be(WebConstants.Action.Index);
            model.ControllerName.Should().Be(WebConstants.Controller.Home);
        }
        private void AssertRedirectToCompanyDetails(IActionResult result)
        {
            result.Should().BeOfType <RedirectToActionResult>();
            var model = result.As <RedirectToActionResult>();

            model.ActionName.Should().Be(WebConstants.Action.Details);
            model.ControllerName.Should().Be(WebConstants.Controller.Companies);
        }
Пример #21
0
            private void ShouldReturnCorrectContent()
            {
                var robotsFactoryMock = new Mock <IRobotsTxtFactory>(MockBehavior.Strict);

                robotsFactoryMock.Setup(rf => rf.Create()).Returns("User-agent: *");

                var seoController = new SeoController(robotsFactoryMock.Object, GetSitemapFactory());

                IActionResult robotsResult = seoController.GetRobots();

                robotsResult.As <ContentResult>().Content.Should().BeEquivalentTo("User-agent: *");
            }
Пример #22
0
            private void ShouldReturnSitemap()
            {
                var sitemap            = new Sitemap();
                var sitemapFactoryMock = new Mock <ISitemapFactory>(MockBehavior.Strict);

                sitemapFactoryMock.Setup(sf => sf.Create()).Returns(sitemap);
                var seoController = new SeoController(GetRobotsTxtFactory(), sitemapFactoryMock.Object);

                IActionResult sitemapResult = seoController.GetSitemap();

                sitemapResult.As <ObjectResult>().Value.Should().BeSameAs(sitemap);
            }
Пример #23
0
            private void ShouldReturnCorrectContentType()
            {
                var robotsFactoryMock = new Mock <IRobotsTxtFactory>(MockBehavior.Strict);

                robotsFactoryMock.Setup(rf => rf.Create()).Returns(string.Empty);

                var seoController = new SeoController(robotsFactoryMock.Object, GetSitemapFactory());

                IActionResult robotsResult = seoController.GetRobots();

                robotsResult.As <ContentResult>().ContentType.Should().BeEquivalentTo("text/plain; charset=utf-8");
            }
        private void AssertEditCompanyForm(IActionResult result)
        {
            var model = result.As <ViewResult>().Model;

            model.Should().BeOfType <EditCompanyProfileFormModel>();
            var form = model.As <EditCompanyProfileFormModel>();

            form.Email.Should().Be(CompanyEmail);
            form.CurrentLogo.Should().BeEquivalentTo(CompanyLogo);
            form.PhoneNumber.Should().Be(CompanyPhone);
            form.Username.Should().Be(UserUsername);
        }
        public async Task Index_ShouldReturnCorrectViewModelWhenNotAjaxRequest()
        {
            // Arrange
            var allMovies = new List <MovieBaseServiceModel>()
            {
                new MovieBaseServiceModel()
                {
                    Id = FirstMovieId, ProductionYear = FirstMovieProductionYear, Title = FirstMovieTitle
                },
                new MovieBaseServiceModel()
                {
                    Id = SecondMovieId, ProductionYear = SecondMovieProductionYear, Title = SecondMovieTitle
                },
                new MovieBaseServiceModel()
                {
                    Id = ThirdMovieId, ProductionYear = ThirdMovieProductionYear, Title = ThirdMovieTitle
                }
            };

            Mock <IMovieDbService> movieDbService = new Mock <IMovieDbService>();

            movieDbService
            .Setup(ms => ms.GetAllMoviesAsync())
            .ReturnsAsync(allMovies);

            movieDbService
            .Setup(ms => ms.GetMovieDetailsAsync(It.IsAny <int>()))
            .ReturnsAsync(new MovieDetailsServiceModel()
            {
                Id = FirstMovieId, Title = FirstMovieTitle, ProductionYear = FirstMovieProductionYear
            });

            HomeController controller = new HomeController(
                movieDbService.Object, null, null, null, null, null, null, null);

            controller.InjectAjaxRequest(false);

            // Act
            IActionResult actionResult = await controller.Index(FirstMovieId);

            // Assert
            actionResult.Should().BeOfType <ViewResult>();

            object model = actionResult.As <ViewResult>().Model;

            model.Should().BeOfType <MovieIndexViewModel>();

            MovieIndexViewModel returnedModel = model.As <MovieIndexViewModel>();

            returnedModel.AllMovies.Should().Match(m => m.As <List <MovieBaseServiceModel> >().Count() == 3);
            returnedModel.MovieDetails.Should().Match(m => m.As <MovieDetailsServiceModel>().Id == FirstMovieId);
        }
Пример #26
0
        private void AssertAddToRoleInvalidRequest(string msg, AddUserToRoleFormModel model, IActionResult result, string assertMsg)
        {
            msg.Should().Be(assertMsg);
            result.Should().BeOfType <RedirectToActionResult>();
            var redirect = result.As <RedirectToActionResult>();

            redirect.ActionName.Should().Be("UserDetails");
            redirect.ControllerName.Should().Be("Users");
            redirect.RouteValues.Keys.Should().Contain("area");
            redirect.RouteValues["area"].Should().Be(Administration);
            redirect.RouteValues.Keys.Should().Contain("id");
            redirect.RouteValues["id"].Should().Be(model.UserId);
        }
Пример #27
0
        private void AssertIndex(IActionResult result)
        {
            result.Should().BeOfType <ViewResult>();

            var model = result.As <ViewResult>().Model;

            model.Should().BeOfType <List <ChartServiceModel> >();

            var formModel = model.As <List <ChartServiceModel> >();

            formModel.First().Points.Should().Be(firstPoints);
            formModel.Last().Points.Should().Be(secondPoints);
        }
        public async Task ChangeUserRolesPost_ShouldReturnRedirectToActionWhenValidUserId()
        {
            // Arrange
            string tempDataSuccessMessage = null;

            ChangeUserRolesFormModel formModel = new ChangeUserRolesFormModel()
            {
                AvailableRoles = new List <string>(),
                SelectedRoles  = new List <string>()
                {
                    GlobalConstants.ModeratorRole
                },
                Username = FirstUserUsername
            };

            Mock <RoleManager <IdentityRole> > roleManager = this.GetAndSetRoleManagerMock();

            roleManager
            .Setup(rm => rm.RoleExistsAsync(It.IsAny <string>()))
            .ReturnsAsync(true);

            Mock <UserManager <User> > userManager = this.GetAndSetUserManagerMock();

            userManager
            .Setup(um => um.RemoveFromRolesAsync(It.IsAny <User>(), It.IsAny <List <string> >()))
            .ReturnsAsync(IdentityResult.Success);

            userManager
            .Setup(um => um.AddToRolesAsync(It.IsAny <User>(), It.IsAny <List <string> >()))
            .ReturnsAsync(IdentityResult.Success);

            Mock <ITempDataDictionary> tempData = new Mock <ITempDataDictionary>();

            tempData.SetupSet(t => t[WebConstants.TempDataSuccessMessageKey]        = It.IsAny <string>())
            .Callback((string key, object successMessage) => tempDataSuccessMessage = successMessage as string);

            UsersController controller = new UsersController(null, roleManager.Object, userManager.Object);

            controller.TempData = tempData.Object;

            // Act
            IActionResult actionResult = await controller.ChangeUserRoles(FirstUserId, formModel);

            // Assert
            actionResult.Should().BeOfType <RedirectToActionResult>();
            actionResult.As <RedirectToActionResult>().ActionName.Should().Be("Index");

            tempDataSuccessMessage.Should().Be(MessageUpdated);
        }
Пример #29
0
        public async Task GetProfileVariationPointers_Returns_Funding_Streams_Given_A_Successful_Request()
        {
            string aValidSpecificationId = "ABC";
            List <ProfileVariationPointer> aValidProfileVariationPointers = CreateTestProfileVariationPointers().ToList();

            _specificationsApiClient
            .GetProfileVariationPointers(aValidSpecificationId)
            .Returns(Task.FromResult(
                         new ApiResponse <IEnumerable <ProfileVariationPointer> >(HttpStatusCode.OK, aValidProfileVariationPointers)));

            IActionResult result = await _specificationController.GetProfileVariationPointers(aValidSpecificationId);

            result.As <OkObjectResult>().Value.As <List <ProfileVariationPointer> >().Should()
            .BeEquivalentTo(aValidProfileVariationPointers);
        }
Пример #30
0
        public async Task GetDistinctFundingStreamsForSpecifications_Returns_Funding_Streams_Given_A_Successful_Request()
        {
            List <string> expectedFundingStreams = new List <string>
            {
                "PSG",
                "DSG"
            };

            _specificationsApiClient
            .GetDistinctFundingStreamsForSpecifications()
            .Returns(Task.FromResult(new ApiResponse <IEnumerable <string> >(HttpStatusCode.OK, expectedFundingStreams)));

            IActionResult result = await _specificationController.GetDistinctFundingStreamsForSpecifications();

            result.As <OkObjectResult>().Value.As <List <string> >().Count.Should().Be(expectedFundingStreams.Count);
        }