Exemplo n.º 1
0
        public void Edit_ReturnsNotEmptyView()
        {
            service.GetView(role.Id).Returns(role);

            Object expected = NotEmptyView(controller, role);
            Object actual   = controller.Edit(role.Id);

            Assert.Same(expected, actual);
        }
Exemplo n.º 2
0
        public void CanInitEdit()
        {
            // Establish Context
            var viewModel = new RoleFormViewModel();

            _roleManagementService.Expect(r => r.CreateFormViewModelFor(1))
            .Return(viewModel);

            // Act
            ViewResult result = _rolesController.Edit(1).AssertViewRendered();

            // Assert
            result.ViewData.Model.ShouldNotBeNull();
            (result.ViewData.Model as RoleFormViewModel).ShouldNotBeNull();
        }
        public async Task EditExistingRole()
        {
            var role = new Assessment.Models.Role {
                Name = "Test", Id = Guid.NewGuid().ToString(),
            };
            var expectedRoleCount = applicationDbContext.Roles.Count() + 1;
            var actualRoleCount   = -1;

            await controller.Create(role);

            role.Name = "Updated Test";
            var view = await controller.Edit(role.Id, role);

            var result = view as RedirectToActionResult;

            var updatedRole = await applicationDbContext.Roles
                              .AsNoTracking()
                              .Where(x => x.Id == role.Id)
                              .FirstOrDefaultAsync();

            actualRoleCount = applicationDbContext.Roles.Count();

            Assert.IsNotNull(result);
            Assert.AreEqual(role.Name, updatedRole.Name);
            Assert.AreEqual(expectedRoleCount, actualRoleCount);
        }
Exemplo n.º 4
0
        public void Cannot_Save_Invalid_Changes()
        {
            //布置——创建模仿存储库
            Mock <IRoleInfoRepository> mock = new Mock <IRoleInfoRepository>();

            //布置——创建控制器
            RolesController controller = new RolesController(mock.Object);

            //布置——创建一个产品
            RoleInfo role = new RoleInfo {
                RoleID = Guid.NewGuid(), RoleName = "测试顾问"
            };

            //布置——把一个错误添加到模型状态
            controller.ModelState.AddModelError("error", "error");

            //动作——试着保存这个产品
            ActionResult result = controller.Edit(role);

            //断言——检查,调用了存储库
            mock.Verify(m => m.SaveRoleInfo(It.IsAny <RoleInfo>()), Times.Never());

            //断言——检查方法的结果类型
            Assert.IsInstanceOfType(result, typeof(ViewResult));
        }
Exemplo n.º 5
0
        public void Cannot_Edit_Nonexistent_Product()
        {
            //布置
            //——创建模仿存储库
            RoleInfo[] roles = new RoleInfo[] {
                new RoleInfo {
                    RoleID = Guid.NewGuid(), RoleName = "R1", RoleEN = "REN1"
                },
                new RoleInfo {
                    RoleID = Guid.NewGuid(), RoleName = "R2", RoleEN = "REN2"
                },
                new RoleInfo {
                    RoleID = Guid.NewGuid(), RoleName = "R3", RoleEN = "REN3"
                }
            };

            Mock <IRoleInfoRepository> mock = new Mock <IRoleInfoRepository>();

            mock.Setup(m => m.RolesInfo).Returns(roles.AsQueryable());

            //布置——创建控制器
            RolesController controller = new RolesController(mock.Object);

            //动作
            RoleInfo r1 = controller.Edit(Guid.NewGuid()).Model as RoleInfo;

            //断言
            Assert.IsNull(r1);
        }
Exemplo n.º 6
0
        public void Can_Edit_Role()
        {
            //布置
            //——创建模仿存储库
            RoleInfo[] roles = new RoleInfo[] {
                new RoleInfo {
                    RoleID = Guid.NewGuid(), RoleName = "R1", RoleEN = "REN1"
                },
                new RoleInfo {
                    RoleID = Guid.NewGuid(), RoleName = "R2", RoleEN = "REN2"
                },
                new RoleInfo {
                    RoleID = Guid.NewGuid(), RoleName = "R3", RoleEN = "REN3"
                },
                new RoleInfo {
                    RoleID = Guid.NewGuid(), RoleName = "R4", RoleEN = "REN4"
                },
                new RoleInfo {
                    RoleID = Guid.NewGuid(), RoleName = "R5", RoleEN = "REN5"
                },
                new RoleInfo {
                    RoleID = Guid.NewGuid(), RoleName = "R6", RoleEN = "REN6"
                }
            };

            Mock <IRoleInfoRepository> mock = new Mock <IRoleInfoRepository>();

            mock.Setup(m => m.RolesInfo).Returns(roles.AsQueryable());  //使用Setup更改RolesInfo的结果,不适用DI,而是用后续的Return返回结果

            //布置——创建控制器
            RolesController controller = new RolesController(mock.Object);

            //动作
            RoleInfo r1 = controller.Edit(roles[1].RoleID).Model as RoleInfo;
            RoleInfo r2 = controller.Edit(roles[2].RoleID).Model as RoleInfo;
            RoleInfo r3 = controller.Edit(roles[3].RoleID).Model as RoleInfo;

            //断言
            Assert.AreEqual(r1.RoleName, "R2");
            Assert.AreEqual(r2.RoleName, "R3");
            Assert.AreEqual(r3.RoleName, "R4");
        }
        public async void EditPostNullUserTest()
        {
            var umMock = GetUserManagerMock();
            var rmMock = GetRoleManagerMock();

            var  rolesController = new RolesController(rmMock.Object, umMock.Object);
            User usr             = null;

            umMock.Setup(item => item.FindByIdAsync(It.IsAny <string>()))
            .ReturnsAsync(usr);

            var result = await rolesController.Edit("invaliId", RolesList);

            Assert.IsType <NotFoundResult>(result);
        }
        public void Edit_OnModelNotFoundRedirectsToNotFound()
        {
            controller.When(sub => sub.RedirectToNotFound()).DoNotCallBase();
            controller.RedirectToNotFound().Returns(new RedirectToRouteResult(new RouteValueDictionary()));

            ActionResult expected = controller.RedirectToNotFound();
            ActionResult actual   = controller.Edit("");

            Assert.Same(expected, actual);
        }
Exemplo n.º 9
0
        public void Edit_OnNotFoundModelRedirectsToNotFound()
        {
            service.GetView(String.Empty).Returns((RoleView)null);
            controller.When(sub => sub.RedirectToNotFound()).DoNotCallBase();
            controller.RedirectToNotFound().Returns(new RedirectToRouteResult(new RouteValueDictionary()));

            ActionResult expected = controller.RedirectToNotFound();
            ActionResult actual   = controller.Edit(String.Empty);

            Assert.AreSame(expected, actual);
        }
Exemplo n.º 10
0
        public async void EditPostTest()
        {
            var umMock = GetUserManagerMock();
            var rmMock = GetRoleManagerMock();

            var rolesController = new RolesController(rmMock.Object, umMock.Object);

            umMock.Setup(item => item.FindByIdAsync(It.IsAny <string>()))
            .ReturnsAsync(TestObjects.User1);
            umMock.Setup(item => item.GetRolesAsync(It.IsAny <User>()))
            .ReturnsAsync(RolesList);
            rmMock.Setup(item => item.Roles)
            .Returns(TestRoles.AsQueryable());

            var result = await rolesController.Edit("invaliId", RolesList);

            Assert.IsAssignableFrom <RedirectToActionResult>(result);
        }
Exemplo n.º 11
0
        public async Task Edit_RedirectToUserList()
        {
            // Arrange
            List <string> listOfRoles = new List <string> {
            };

            UserData userData = new UserData
            {
                Id = "1"
            };

            _userManagerMock.Setup(m => m.FindByIdAsync("name")).ReturnsAsync(userData);
            _userManagerMock.Setup(m => m.GetRolesAsync(userData)).ReturnsAsync(listOfRoles);

            RolesController contr = new RolesController(_roleManagerMock.Object, _userManagerMock.Object);

            // Act
            var result = await contr.Edit("name", listOfRoles);

            // Assert
            Assert.AreEqual("UserList", (result as RedirectToActionResult).ActionName);
        }
Exemplo n.º 12
0
        public void Can_Save_Valid_Changes()
        {
            //布置——创建模仿存储库
            Mock <IRoleInfoRepository> mock = new Mock <IRoleInfoRepository>();

            //布置——创建控制器
            RolesController controller = new RolesController(mock.Object);

            //布置——创建一个产品
            RoleInfo role = new RoleInfo {
                RoleID = Guid.NewGuid(), RoleName = "测试顾问"
            };

            //动作——试着保存这个产品
            ActionResult result = controller.Edit(role);

            //断言——检查,调用了存储库
            mock.Verify(m => m.SaveRoleInfo(role));

            //断言——检查方法的结果类型
            Assert.IsNotInstanceOfType(result, typeof(ViewResult));
        }
Exemplo n.º 13
0
        public async void EditTest()
        {
            var umMock = GetUserManagerMock();
            var rmMock = GetRoleManagerMock();

            var rolesController = new RolesController(rmMock.Object, umMock.Object);

            umMock.Setup(item => item.FindByIdAsync(It.IsAny <string>()))
            .ReturnsAsync(TestObjects.User1);
            umMock.Setup(item => item.GetRolesAsync(It.IsAny <User>()))
            .ReturnsAsync(RolesList);
            rmMock.Setup(item => item.Roles)
            .Returns(TestRoles.AsQueryable());
            ChangeRoleViewModel mdl = new ChangeRoleViewModel();

            var result = await rolesController.Edit("1");

            Assert.NotNull(result);
            Assert.IsAssignableFrom <ViewResult>(result);
            var expected = mdl.ToString();
            var actual   = rolesController.ViewData.Model.ToString();

            Assert.Equal(expected, actual);
        }