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); }