public void MapToTestQuestionDto_QuestionWithWrittenAnswer_ValidDto() { //arrange var expectedDto = new QuestionWithWrittenAnswerDto { Id = questionWithWrittenAnswer.Id, Question = questionWithWrittenAnswer.Content }; //act var mapper = new QuestionServiceMapper(); var dto = mapper.MapToTestQuestionDto(questionWithWrittenAnswer); //assert dto.Should().BeEquivalentTo(expectedDto); }
public async Task ShouldNotUpdateQuestionUsedInTestThatHasStarted() { var authorId = fixture.UserId; var writtenAnswer = new WrittenAnswer("answer", 1f); var question = new Question("Question?", writtenAnswer, authorId); await fixture.ExecuteDbContext(db => { db.Questions.Add(question); return(db.SaveChangesAsync()); }); var testTemplate = new TestTemplateBuilder(authorId, new[] { question.Id }).Build(); await fixture.ExecuteDbContext(db => { db.TestTemplates.Add(testTemplate); return(db.SaveChangesAsync()); }); var scheduledTest = new ScheduledTestBuilder( testTemplate.Id, IntegrationTestsDateTimeProvider.utcNow) .SetAsCurrentlyAvailable() .WithUsers(new[] { 2, 3, 4 }) .Build(); await fixture.ExecuteDbContext(db => { db.ScheduledTests.Add(scheduledTest); return(db.SaveChangesAsync()); }); var updateQuestionDto = new QuestionWithWrittenAnswerDto { Answer = "new answer", Question = "new question", Score = 1f, Categories = new List <int>(), }; var json = fixture.Serialize(updateQuestionDto); var response = await fixture.RequestSender.PostAsync($"questions/{question.Id}", json); response.StatusCode.Should().Be(HttpStatusCode.BadRequest); }