示例#1
0
        public async Task CreateQuestionAsync_ValidExamIdPassed_ReturnsCreatedAtRouteResult()
        {
            var user = new ClaimsPrincipal(new ClaimsIdentity(new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, "1"),
            }));
            var exam = new Exam()
            {
                AuthorId = 1
            };


            var mapperMock     = new Mock <IMapper>();
            var repositoryMock = new Mock <IRepositoryWrapper>();

            repositoryMock.Setup(r => r.ExamRepository.GetExamAsync(It.IsAny <int>())).ReturnsAsync(exam);
            repositoryMock.Setup(r => r.QuestionRepository.Add(It.IsAny <Question>()));
            repositoryMock.Setup(r => r.SaveAllAsync()).ReturnsAsync(true);
            mapperMock.Setup(m => m.Map <Question>(It.IsAny <QuestionForCreationDto>())).Returns(new Question());
            mapperMock.Setup(m => m.Map <QuestionForReturnDto>(It.IsAny <Question>())).Returns(new QuestionForReturnDto());

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

            controllerMock.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user
                }
            };
            var result = await controllerMock.CreateQuestionAsync(1, new QuestionForCreationDto());

            Assert.IsType <CreatedAtRouteResult>(result);
        }