public async Task TestCopyQuestion() { //Prepare TestingContext context = new TestingContext(); InitContext(context); ApplicationDbContext dbContext = context.GetSimple <ApplicationDbContext>(); Question question = dbContext.Questions.First(); context.AddPrincipalMock(question.User.UserId, Roles.User); IQuestionService questionService = context.GetService <QuestionService>(); context.DependencyMap[typeof(IQuestionService)] = questionService; IVersionService versionService = context.GetService <VersionService>(); //Act int newId = await versionService.CopyQuestionAsync(question.Id); //Assert Assert.True(question.Id != newId); Assert.True(newId > 0); QuestionDto newQuestion = await questionService.GetQuestionAsync(newId); Assert.Equal(question.Options.Count, newQuestion.Options.Count); Assert.Equal(question.QuestionType, newQuestion.QuestionType); for (int i = 0; i < question.Options.Count; i++) { QuestionOption optionSource = question.Options[i]; QuestionOptionDto optionDestination = newQuestion.Options[i]; Assert.NotEqual(optionSource.Id, optionDestination.Id); Assert.True(optionDestination.Id > 0); } }
public async Task <int> CopyQuestion([FromBody] int id) { return(await _versionService.CopyQuestionAsync(id)); }