示例#1
0
        public async Task CreateUserAnswerAsync_ExamAuthorRequest_ReturnsBadRequestResult()
        {
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, "1"),
            }));
            var exam = new Exam
            {
                AuthorId = 1
            };
            var userExam = new UserExam
            {
                Exam = exam
            };
            var mapperMock     = new Mock <IMapper>();
            var repositoryMock = new Mock <IRepositoryWrapper>();

            repositoryMock.Setup(r => r.UserExamRepository.GetUserWithExamAsync(It.IsAny <int>(), It.IsAny <int>())).ReturnsAsync(userExam);
            repositoryMock.Setup(r => r.UserExamRepository.Update(It.IsAny <UserExam>()));
            repositoryMock.Setup(r => r.UserAnswerRepository.Add(It.IsAny <UserAnswer>()));
            repositoryMock.Setup(r => r.SaveAllAsync()).ReturnsAsync(true);
            mapperMock.Setup(m => m.Map <IEnumerable <UserAnswer> >(It.IsAny <IEnumerable <UserAnswersForCreationDto> >())).Returns(new List <UserAnswer>());


            var controllerMock = new ExamsController(repositoryMock.Object, mapperMock.Object);

            controllerMock.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user
                }
            };
            var result = await controllerMock.CreateUserAnswersAsync(1, new List <UserAnswersForCreationDto>());

            Assert.IsType <BadRequestObjectResult>(result);
        }