示例#1
0
        public async Task ReturnsCorrectData_RatingAsync()
        {
            // Arrange
            var identity = new IdentityUser()
            {
                Id = "1"
            };
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, identity.Id),
            }, "mock"));

            var mockUserManager = new Mock <IUserService>();

            mockUserManager.Setup(x => x.GetApplicationUser(user)).Returns(Task.FromResult(new ApplicationUser()
            {
                Id = "1"
            }));
            var mockLogic = new Mock <IPersonalCabinetLogic>();
            var usrating  = new List <UserRating>()
            {
                new UserRating
                {
                    Id            = 1,
                    SemestrPoints = 32,
                    SumPoints     = 64,
                    Subject       = new Subject {
                        Name = "Math"
                    }
                }
            };
            var stud = new Student()
            {
                Id = 1
            };

            mockLogic.Setup(logic => logic.GetRateById(1)).Returns(Task.FromResult(usrating));
            mockLogic.Setup(logic => logic.GetStudentById("1")).Returns(Task.FromResult(stud));


            var controller = new PersonalCabinetController(mockUserManager.Object, mockLogic.Object);

            controller.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user
                }
            };

            //  Act
            var res = await controller.Rating();

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

            var model = Assert.IsAssignableFrom <List <RatingViewModel> >(
                viewResult.ViewData.Model);

            Assert.Equal(model[0].SemestrPoints, usrating[0].SemestrPoints);
            Assert.Equal(model[0].SumPoints, usrating[0].SumPoints);
            Assert.Equal(model[0].Subject, usrating[0].Subject.Name);
        }