Example #1
0
        public void Cannot_Delete_Invalid_Products()
        {
            //布置——创建模仿存储库
            Mock<IRoleInfoRepository> mock = new Mock<IRoleInfoRepository>();
            RoleInfo[] roles = new RoleInfo[]{
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R1",RoleEN="REN1"},
                new RoleInfo { RoleID = Guid.NewGuid(), RoleName = "R1" },
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R3",RoleEN="REN3"}
            };

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

            //动作——用一个不存在的ID进行删除
            controller.Delete(Guid.NewGuid());

            //断言
            mock.Verify(m => m.DeleteRoleInfo(It.IsAny<RoleInfo>()),Times.Never());
        }
Example #2
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));
        }
Example #3
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);
        }
Example #4
0
        public void Can_Send_Pagination_View_Model()
        {
            //布置——创建模仿存储库
            Mock<IRoleInfoRepository> mock = new Mock<IRoleInfoRepository>();
            mock.Setup(m => m.RolesInfo).Returns(new RoleInfo[]{    //使用Setup更改RolesInfo的结果,不适用DI,而是用后续的Return返回结果
                new RoleInfo{RoleID = new Guid(), RoleName = "R1",RoleEN="REN1"},
                new RoleInfo{RoleID = new Guid(), RoleName = "R2",RoleEN="REN2"},
                new RoleInfo{RoleID = new Guid(), RoleName = "R3",RoleEN="REN3"},
                new RoleInfo{RoleID = new Guid(), RoleName = "R4",RoleEN="REN4"},
                new RoleInfo{RoleID = new Guid(), RoleName = "R5",RoleEN="REN5"},
                new RoleInfo{RoleID = new Guid(), RoleName = "R6",RoleEN="REN6"}
            }.AsQueryable());

            //布置——创建一个控制器,设置页面大小为3
            RolesController controller = new RolesController(mock.Object) { PageSize = 3 };

            //动作
            RolesInfoViewModel result = (RolesInfoViewModel)controller.List(2).Model;

            //断言
            PagingInfo pageInfo = result.pagingInfo;
            Assert.AreEqual(pageInfo.CurrentPage, 2);
            Assert.AreEqual(pageInfo.ItemsPerPage, 3);
            Assert.AreEqual(pageInfo.TotalItems, 6);
            Assert.AreEqual(pageInfo.TotalPage, 2);
        }
Example #5
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));
        }
Example #6
0
        public void Can_Paginate()
        {
            //布置
            //——创建模仿存储库
            Mock<IRoleInfoRepository> mock = new Mock<IRoleInfoRepository>();
            mock.Setup(m => m.RolesInfo).Returns(new RoleInfo[]{    //使用Setup更改RolesInfo的结果,不适用DI,而是用后续的Return返回结果
                new RoleInfo{RoleID = new Guid(), RoleName = "R1",RoleEN="REN1"},
                new RoleInfo{RoleID = new Guid(), RoleName = "R2",RoleEN="REN2"},
                new RoleInfo{RoleID = new Guid(), RoleName = "R3",RoleEN="REN3"},
                new RoleInfo{RoleID = new Guid(), RoleName = "R4",RoleEN="REN4"},
                new RoleInfo{RoleID = new Guid(), RoleName = "R5",RoleEN="REN5"},
                new RoleInfo{RoleID = new Guid(), RoleName = "R6",RoleEN="REN6"}
            }.AsQueryable());

            RolesController controller = new RolesController(mock.Object);
            controller.PageSize = 3;

            //动作
            RolesInfoViewModel result = (RolesInfoViewModel)controller.List(2).Model;

            //断言
            RoleInfo[] roleArray = result.RolesInfo.ToArray();
            Assert.IsTrue(roleArray.Length == 3);
            Assert.AreEqual(roleArray[0].RoleName, "R4");
            Assert.AreEqual(roleArray[1].RoleName, "R5");
        }
Example #7
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");
        }
Example #8
0
        public void Can_Delete_Valid_Roles()
        {
            //布置——创建一个角色
            RoleInfo role = new RoleInfo { RoleID = Guid.NewGuid(), RoleName = "R1" };

            //布置——创建模仿存储库
            Mock<IRoleInfoRepository> mock = new Mock<IRoleInfoRepository>();
            RoleInfo[] roles = new RoleInfo[]{
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R1",RoleEN="REN1"},
                role,
                new RoleInfo{RoleID = Guid.NewGuid(), RoleName = "R3",RoleEN="REN3"}
            };
            mock.Setup(m => m.RolesInfo).Returns(roles.AsQueryable());

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

            //动作——删除产品
            controller.Delete(role.RoleID);

            //断言
            mock.Verify(m => m.DeleteRoleInfo(role));
        }