Exemple #1
0
 public ShowViewsController(Helpers helpers, MovieGameContext context, SessionUser sessionUser, ManageUsersController manageUsers)
 {
     _helpers     = helpers;
     _context     = context;
     _sessionUser = sessionUser;
     _manageUsers = manageUsers;
 }
Exemple #2
0
        public void ListUsers()
        {
            //Arrange
            var users = new List <ApplicationUser>
            {
                new ApplicationUser {
                    FirstName = "John", LastName = "Dianala"
                },
                new ApplicationUser {
                    FirstName = "Joleo", LastName = "Dianala"
                }
            };

            var mocRepo = new Mock <IRepository>();

            mocRepo.Setup(Mock => Mock.Query <ApplicationUser>()).Returns(users.AsQueryable());
            ManageUsersController myController = new ManageUsersController();

            //Act
            var results = myController.Index() as ViewResult;
            var model   = results.Model as IList <ApplicationUser>;

            // Assert
            Assert.AreEqual("John", model.First().UserName);
        }
Exemple #3
0
        public void TestListUsers()
        {
            //Arrange
            var users = new List <ApplicationUser> {
                new ApplicationUser {
                    FirstName = "Bob", LastName = "Bobson"
                },
                new ApplicationUser {
                    FirstName = "Andrew", LastName = "Anderson"
                },
                new ApplicationUser {
                    FirstName = "Carl", LastName = "Caaaaarrrllllllll"
                }
            };
            var mockRepo = new Mock <IRepository>();

            mockRepo.Setup(mock => mock.Query <ApplicationUser>()).Returns(users.AsQueryable());

            var manageUsersController = new ManageUsersController(mockRepo.Object);
            //Act
            var results = manageUsersController.Index() as ViewResult;
            var model   = results.Model as IList <ApplicationUser>;

            //Assert
            Assert.AreEqual("Andrew", model.First().FirstName);
        }
Exemple #4
0
        public void UpdateUserInfo_ShouldReturnOkResult_WhenCreateAsyncSucceded()
        {
            mapper.Execute();
            string testId = "testId";

            var users = new Mock <IUsersService>();

            users.Setup(x => x.IsCompanyAndBulstatCompatibiltyValid(It.IsAny <User>())).Returns(() => true);
            users.Setup(x => x.Update(It.IsAny <User>())).Returns(() => new User()
            {
                Id = testId
            });

            UserUpdateModel request = new UserUpdateModel()
            {
                Id = testId
            };
            var controller = new ManageUsersController(users.Object, null, null);

            var result = controller.UpdateUserInfo(request);

            Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <UserResponseModel>));
            var responseContent = ((OkNegotiatedContentResult <UserResponseModel>)result).Content;

            Assert.AreEqual(responseContent.Id, testId);
            users.VerifyAll();
        }
        public void TestIndexView()
        {
            ManageUsersController manageControllerTest = new ManageUsersController();
            var result = manageControllerTest.Index() as ViewResult;

            Assert.AreEqual("", result.ViewName);
        }
Exemple #6
0
        public ManageUsersControllerTest()
        {
            _userManagerMock       = new Mock <FakeUserManager>();
            _manageUsersController = new ManageUsersController(_userManagerMock.Object);

            _manageUsersController.ControllerContext             = new ControllerContext();
            _manageUsersController.ControllerContext.HttpContext = new DefaultHttpContext();
        }
Exemple #7
0
        public async Task SendEmailConfirmation_ShouldReturnInternalServerErrorAndLogError_WhenUsersServiceIsNull()
        {
            var controller = new ManageUsersController(null, null, null, mockedLogger.Object);

            var result = await controller.SendEmailConfirmation(null);

            Assert.IsInstanceOfType(result, typeof(InternalServerErrorResult));
            mockedLogger.Verify(x => x.LogError(It.IsAny <Exception>(), "", controllerName, "SendEmailConfirmation"));
        }
Exemple #8
0
        public void UpdateUserInfo_ShouldReturnInternalServerErrorAndLogError_WhenUsersServiceIsNull()
        {
            var controller = new ManageUsersController(null, null, null, mockedLogger.Object);

            var result = controller.UpdateUserInfo(null);

            Assert.IsInstanceOfType(result, typeof(InternalServerErrorResult));
            mockedLogger.Verify(x => x.LogError(It.IsAny <Exception>(), "", controllerName, "UpdateUserInfo"));
        }
Exemple #9
0
        public void Get_ShouldReturnUsersInCorrectSequence()
        {
            mapper.Execute();
            string testUserId1 = "testId1";
            string testUserId2 = "testId2";
            string testUserId3 = "testId3";
            string testUserId4 = "testId4";
            string testUserId5 = "testId5";

            var users = new List <User>()
            {
                new User()
                {
                    Id = testUserId1, CreatedOn = DateTime.Now
                },
                new User()
                {
                    Id = testUserId2, CreatedOn = DateTime.MinValue
                },
                new User()
                {
                    Id = testUserId3, CreatedOn = DateTime.MinValue
                },
                new User()
                {
                    Id = testUserId4, CreatedOn = DateTime.MinValue
                },
                new User()
                {
                    Id = testUserId5, CreatedOn = DateTime.MinValue
                },
            }.AsQueryable();
            var usersMock = new Mock <IUsersService>();

            usersMock.Setup(x => x.GetAll()).Returns(users);

            var controller = new ManageUsersController(usersMock.Object, null, null);

            var result = controller.Get();

            Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <List <UserResponseModel> >));
            var responseContent = ((OkNegotiatedContentResult <List <UserResponseModel> >)result).Content;

            Assert.AreEqual(responseContent[0].Id, testUserId1);
            Assert.AreEqual(responseContent[1].Id, testUserId2);
            Assert.AreEqual(responseContent[2].Id, testUserId3);
            Assert.AreEqual(responseContent[3].Id, testUserId4);
            Assert.AreEqual(responseContent[4].Id, testUserId5);
            usersMock.VerifyAll();
        }
        public async Task EnableAuthenticator_ReturnsViewResult_WhenSucceeded()
        {
            SetGetUserAsyncMethod();

            _userManagerMock
            .Setup(ManageUsersController => ManageUsersController.GetAuthenticatorKeyAsync(It.IsAny <ApplicationUser>()))
            .ReturnsAsync("test_string");

            var result = await _manageController.EnableAuthenticator();

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

            Assert.IsAssignableFrom <EnableAuthenticatorViewModel>(viewResult.Model);
        }
Exemple #11
0
        public async Task SendEmailConfirmation_ShouldReturnOkResult()
        {
            mapper.Execute();
            string testEmail       = "testEmail";
            string testId          = "testId";
            string testCode        = "testCode";
            string testRoute       = "/testRoute";
            string fullCallbackUrl = $"{GlobalConstants.AppDomainPath}/confirmemail?userid={testId}&code={testCode}";

            var usersMock = new Mock <IUsersService>();

            usersMock.Setup(x => x.GetByEmail(testEmail)).Returns(() => new User()
            {
                Id = testId, Email = testEmail
            });

            var userStore       = new Mock <IUserStore <User> >();
            var userManagerMock = new Mock <ApplicationUserManager>(userStore.Object);

            userManagerMock.Setup(x => x.GenerateEmailConfirmationTokenAsync(testId)).ReturnsAsync(testCode);

            var emailsMock = new Mock <IEmailsService>();

            emailsMock.Setup(x => x.SendEmail(testEmail, GlobalConstants.ConfirmEmailSubject,
                                              string.Format(GlobalConstants.ConfirmEmailBody, fullCallbackUrl), GlobalConstants.SMTPServer,
                                              GlobalConstants.EmailPrimary, GlobalConstants.EmailPrimaryPassword));

            var urlMock = new Mock <UrlHelper>();

            urlMock.Setup(m => m.Route(It.IsAny <string>(), It.IsAny <object>())).Returns(testRoute);

            AccountEmailRequestModel request = new AccountEmailRequestModel()
            {
                Email = testEmail
            };
            var controller = new ManageUsersController(usersMock.Object, emailsMock.Object, userManagerMock.Object, null)
            {
                Url = urlMock.Object
            };

            var result = await controller.SendEmailConfirmation(request);

            Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <string>));
            var responseContent = ((OkNegotiatedContentResult <string>)result).Content;

            Assert.AreEqual(fullCallbackUrl, responseContent);
            usersMock.VerifyAll();
            userManagerMock.VerifyAll();
            emailsMock.VerifyAll();
        }
Exemple #12
0
        public async Task RedirectToAction_UserDetails()
        {
            var userService     = new Mock <IUsersService>();
            var mockUserManager = GetUserManagerMock();
            var mockRoleManager = GetRoleManagerMock();
            var user            = GetUser();

            userService.Setup(u => u.DeleteUserAsync(It.IsAny <string>()))
            .ReturnsAsync(user);

            var controller = new ManageUsersController(mockUserManager.Object, mockRoleManager.Object, userService.Object);

            var result = await controller.DeleteUser(user.Id) as RedirectToActionResult;

            Assert.AreEqual("UserDetails", result.ActionName);
        }
Exemple #13
0
        public void UpdateUserInfo_ShouldReturnBadRequest_WhenIsValidUserIsFalse()
        {
            mapper.Execute();

            var users = new Mock <IUsersService>();

            users.Setup(x => x.IsCompanyAndBulstatCompatibiltyValid(It.IsAny <User>())).Returns(() => false);

            var controller = new ManageUsersController(users.Object, null, null);

            var result = controller.UpdateUserInfo(null);

            Assert.IsInstanceOfType(result, typeof(BadRequestErrorMessageResult));
            string responseMessage = ((BadRequestErrorMessageResult)result).Message;

            Assert.IsTrue(responseMessage.Contains(GlobalConstants.InvalidCompanyBulstatCombination));
            users.VerifyAll();
        }
        public void TestHandleAdminAction()
        {
            var USER = _helper.testUsers[0];
            ManageUsersController manageControllerTest = new ManageUsersController();

            AdminActionRequestModel model = new AdminActionRequestModel()
            {
                Username = USER.Username,
                Action   = "MakeAdmin"
            };

            //Test make admin
            var result = manageControllerTest.HandleAdminAction(model) as JsonResult;

            Assert.AreEqual(0, ((AdminActionResponseModel)result.Data).Errors.Count);
            Assert.AreEqual("Action Succesfully Completed.", ((AdminActionResponseModel)result.Data).Message);
            UserDTO user = UserService.GetUser(USER.Username);

            Assert.AreEqual(RoleLevel.Admin, user.Role);

            //Test blocking user
            model.Action = "Block";
            result       = manageControllerTest.HandleAdminAction(model) as JsonResult;
            Assert.AreEqual(0, ((AdminActionResponseModel)result.Data).Errors.Count);
            Assert.AreEqual("Action Succesfully Completed.", ((AdminActionResponseModel)result.Data).Message);
            user = UserService.GetUser(USER.Username);
            Assert.AreEqual(RoleLevel.Blocked, user.Role);

            //Test unblocking user
            model.Action = "Unblock";
            result       = manageControllerTest.HandleAdminAction(model) as JsonResult;
            Assert.AreEqual(0, ((AdminActionResponseModel)result.Data).Errors.Count);
            Assert.AreEqual("Action Succesfully Completed.", ((AdminActionResponseModel)result.Data).Message);
            user = UserService.GetUser(USER.Username);
            Assert.AreEqual(RoleLevel.User, user.Role);

            //Test deleting user
            model.Action = "Delete";
            result       = manageControllerTest.HandleAdminAction(model) as JsonResult;
            Assert.AreEqual(0, ((AdminActionResponseModel)result.Data).Errors.Count);
            Assert.AreEqual("Action Succesfully Completed.", ((AdminActionResponseModel)result.Data).Message);
            user = UserService.GetUser(USER.Username);
            Assert.AreEqual(null, user);
        }
        public async Task PostEnableAuthenticator_ReturnsViewResult_WithErrors_WhenCanNotVerifyTwoFactorToken()
        {
            SetGetUserAsyncMethod();

            _userManagerMock
            .Setup(ManageUsersController => ManageUsersController.GetAuthenticatorKeyAsync(It.IsAny <ApplicationUser>()))
            .ReturnsAsync("test_string");

            _userManagerMock
            .Setup(ManageUsersController =>
                   ManageUsersController.VerifyTwoFactorTokenAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>(), It.IsAny <string>()))
            .ReturnsAsync(false);

            var result = await _manageController.EnableAuthenticator(new EnableAuthenticatorViewModel { Code = "test code" });

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

            Assert.IsAssignableFrom <EnableAuthenticatorViewModel>(viewResult.Model);
            Assert.Single(_manageController.ModelState);
        }
        public async Task GenerateRecoveryCodes_ReturnsViewResult_WhenSucceeded()
        {
            _userManagerMock
            .Setup(manager => manager.GetUserAsync(It.IsAny <ClaimsPrincipal>()))
            .ReturnsAsync(new ApplicationUser {
                TwoFactorEnabled = true
            });

            _userManagerMock
            .Setup(ManageUsersController =>
                   ManageUsersController.GenerateNewTwoFactorRecoveryCodesAsync(It.IsAny <ApplicationUser>(), It.IsAny <int>()))
            .ReturnsAsync(new List <string>());

            var result = await _manageController.GenerateRecoveryCodes();

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

            Assert.IsAssignableFrom <ShowRecoveryCodesViewModel>(viewResult.Model);
            Assert.Equal("ShowRecoveryCodes", viewResult.ViewName);
        }
        public async Task Return_UserDetailsView()
        {
            var userService     = new Mock <IUsersService>();
            var mockUserManager = GetUserManagerMock();
            var mockRoleManager = GetRoleManagerMock();
            var user            = GetUser();

            userService.Setup(u => u.GetUserWithSensorsAsync(It.IsAny <string>()))
            .ReturnsAsync(user);
            mockUserManager.Setup(u => u.GetRolesAsync(It.IsAny <User>()))
            .ReturnsAsync(new List <string>()
            {
                "User"
            });

            var controller = new ManageUsersController(mockUserManager.Object, mockRoleManager.Object, userService.Object);

            var result = await controller.UserDetails(user.Id) as ViewResult;

            Assert.AreEqual("UserDetails", result.ViewName);
        }
        public async Task ReturnUser_AsUserWithRolesViewModel()
        {
            var userService     = new Mock <IUsersService>();
            var mockUserManager = GetUserManagerMock();
            var mockRoleManager = GetRoleManagerMock();
            var user            = GetUser();

            mockUserManager.Setup(u => u.FindByIdAsync(It.IsAny <string>()))
            .ReturnsAsync(user);
            mockUserManager.Setup(u => u.GetRolesAsync(It.IsAny <User>()))
            .ReturnsAsync(new List <string>()
            {
                "User"
            });

            var controller = new ManageUsersController(mockUserManager.Object, mockRoleManager.Object, userService.Object);

            var result = await controller.Roles(user.Id) as ViewResult;

            var viewModel = (UserWithRolesModel)result.ViewData.Model;

            Assert.AreEqual(user.Id, viewModel.Id);
        }
        public async Task PostEnableAuthenticator_ReturnsRedirectToActionResult_WhenSucceeded()
        {
            SetGetUserAsyncMethod();

            _userManagerMock
            .Setup(ManageUsersController => ManageUsersController.GetAuthenticatorKeyAsync(It.IsAny <ApplicationUser>()))
            .ReturnsAsync("test_string");

            _userManagerMock
            .Setup(ManageUsersController =>
                   ManageUsersController.VerifyTwoFactorTokenAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>(), It.IsAny <string>()))
            .ReturnsAsync(true);

            _userManagerMock
            .Setup(ManageUsersController =>
                   ManageUsersController.GenerateNewTwoFactorRecoveryCodesAsync(It.IsAny <ApplicationUser>(), It.IsAny <int>()))
            .ReturnsAsync(new List <string>());

            var result = await _manageController.EnableAuthenticator(new EnableAuthenticatorViewModel { Code = "Test code" });

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

            Assert.Equal("ShowRecoveryCodes", redirectToActionResult.ActionName);
        }
Exemple #20
0
 public void Setup()
 {
     mockManageUsers       = new Mock <IManageUsers>();
     manageUsersController = new ManageUsersController(mockManageUsers.Object);
 }