public void DeleteUserTest()
 {
     // Arrange - create the controller
     Mock.Get(this.usersRepository).Setup(x => x.All()).Returns(new List<ApplicationUser>() { users[1], users[2] }.AsQueryable());
     UserAdministrationController target = new UserAdministrationController(UowData);
     target.ControllerContext = this.controllerContext;
     var user = new AccountViewModel() { Id = "1" };
     // Act - add a product to the cart
     var result = (target.DeleteUser(new DataSourceRequest(), user) as JsonResult).Data;
     // Assert
     Assert.AreEqual(2, (result as Kendo.Mvc.UI.DataSourceResult).Total);
 }
 public void ResetPasswordTest() 
 {
     //arrange
     UserAdministrationController target = new UserAdministrationController(UowData);
     target.ControllerContext = this.controllerContext;
     
     //act
     var result = target.ResetPassword("1", "/Home/Index","87654321");
     //assert
     Assert.AreEqual(1, 1);
 }
        public void UpdateUserWithInvalidEmailMustSendErrorMessageTest()
        {
            // Arrange - create the controller
            UserAdministrationController target = new UserAdministrationController(UowData);
            var user = new AccountViewModel() { Id = "1" };
            string newEmail = "test";
            RoleViewModel removeRole = new RoleViewModel() { Id = roles[0].Id, Name = roles[0].Name };
            string newPhone = "1234567";
            string newUserName = "******";

            user.Email = newEmail;
            user.PhoneNumber = newPhone;
            user.Roles = new List<RoleViewModel>() { new RoleViewModel(){ Id = "1", Name="Administrator" },
                                                     new RoleViewModel(){ Id = "2", Name="User" } };
            user.UserName = newUserName;

            // Act - add a product to the cart
            var result = (target.UpdateUser(user, new DataSourceRequest()) as JsonResult).Data;
            var errors = (result as Kendo.Mvc.UI.DataSourceResult).Errors;
            var count = (errors as Dictionary<string, Dictionary<string,object>>).Count;
            // Assert
            Assert.AreEqual(1,count);
        }
        public void UpdateUserTest()
        {
            // Arrange - create the controller
            UserAdministrationController target = new UserAdministrationController(UowData);
            var user = new AccountViewModel() { Id = "1" };
            string newEmail = "*****@*****.**";
            RoleViewModel removeRole = new RoleViewModel() { Id = roles[0].Id, Name = roles[0].Name };
            string newPhone = "1234567";
            string newUserName = "******";

            user.Email = newEmail;
            user.PhoneNumber = newPhone;
            user.Roles = new List<RoleViewModel>() { new RoleViewModel(){ Id = "1", Name="Administrator" },
                                                     new RoleViewModel(){ Id = "2", Name="User" } };
            user.UserName = newUserName;

            // Act - add a product to the cart
            var result = (target.UpdateUser(user, new DataSourceRequest()) as JsonResult).Data;
            user = (result as Kendo.Mvc.UI.DataSourceResult).Data.AsQueryable().Cast<AccountViewModel>().FirstOrDefault();
            // Assert
            Assert.AreEqual(newEmail, user.Email);
            Assert.AreEqual(newPhone, user.PhoneNumber);
            Assert.AreEqual(2, user.Roles.Count);
            Assert.AreEqual(newUserName, user.UserName);

        }
        public void GetRolesByUserTest()
        {
            // Arrange - create the controller
            UserAdministrationController target = new UserAdministrationController(UowData);

            // Act - add a product to the cart
            var result = target.GetRolesByUser("1", new DataSourceRequest()) as JsonResult;
            var records = (result.Data as Kendo.Mvc.UI.DataSourceResult).Data;

            // Assert
            int count = 0;

            foreach (var record in records)
            {
                Assert.AreEqual((record as RoleViewModel).Id, this.roles[count].Id);
                Assert.AreEqual((record as RoleViewModel).Name, this.roles[count].Name);
                count++;
            }

            Assert.AreEqual(3, count);
        }
        public void ReadAllUsersTestPagind()
        {
            // Arrange - create the controller
            UserAdministrationController target = new UserAdministrationController(UowData);

            // Act - add a product to the cart
            var result = target.ReadAllUsers(new DataSourceRequest() { PageSize = 2, Page = 1 });
            var records = (result.Data as Kendo.Mvc.UI.DataSourceResult).Data;

            // Assert
            int count = 0;

            foreach (var record in records)
            {
                Assert.AreEqual((record as AccountViewModel).Email, this.users[count].Email);
                Assert.AreEqual((record as AccountViewModel).UserName, this.users[count].UserName);
                count++;
            }

            Assert.AreEqual(2, count);
        }
 public void ResetPasswordTest() 
 {
     //arrange
     UserAdministrationController target = new UserAdministrationController(uowData);
     target.ControllerContext = this.controllerContext;
     //act
     RedirectResult result = target.ResetPassword(1, "/Home/Index","87654321") as RedirectResult;
     //assert
     
     Assert.AreEqual("/Home/Index",result.Url);
 }