public async void ShouldFailEditExamWithInvalidData() { var client = httpClientFactory.CreateClient(); var httpCallHelper = new HttpCallHelper(client); var tuple = await httpCallHelper.CreateExam(); var loggedUser = tuple.Item1; var examDto = tuple.Item3; var putLink = $"/exams/{examDto.Id}"; var examData = new Edit.ExamData() { Title = "", Description = "", TimeInMinutes = 0, PassPercentage = 0, IsPrivate = !examDto.IsPrivate, Tags = new string[] { } }; client.Authorize(loggedUser.Token); var problemDetails = await client.PutBadRequest(putLink, new Edit.Request() { Exam = examData }); problemDetails.Errors.Should().HaveCount(4); }
public async void ShouldEditExam() { var client = httpClientFactory.CreateClient(); var httpCallHelper = new HttpCallHelper(client); var dbContextHelper = new DbContextHelper(this.dbContextFactory); var tuple = await httpCallHelper.CreateExam(); var loggedUser = tuple.Item1; var examDto = tuple.Item3; var putLink = $"/exams/{examDto.Id}"; var newTags = new List <string>(); newTags.Add(examDto.Tags.First().Tag); newTags.AddRange(SampleExamContextHelper.SeededTags.Select(e => e.TagId).ToArray()); var uniqueString = Guid.NewGuid().ToGuidString(); newTags.AddRange(new string[] { $"{uniqueString}_Tag1", $"{uniqueString}_Tag2" }); var examData = new Edit.ExamData() { Title = $"{examDto.Title}_2", Description = $"{examDto.Description}_2", TimeInMinutes = examDto.TimeInMinutes + 1, PassPercentage = examDto.PassPercentage + 1, IsPrivate = !examDto.IsPrivate, Tags = newTags }; await client.PutUnauthorized(putLink, new Edit.Request() { Exam = examData }); client.Authorize(loggedUser.Token); var responseExam = await client.PutExamSuccesfully(putLink, new Edit.Request() { Exam = examData }); var exam = dbContextHelper.SelectExamWitTags(examDto.Id); var updatedAt1 = exam.UpdatedAt; AssertHelper.AssertExam(examData, responseExam, exam); AssertHelper.AssertExamTags(examData.Tags.ToArray(), responseExam, exam); responseExam = await client.PutExamSuccesfully(putLink, new Edit.Request() { Exam = examData }); exam = dbContextHelper.SelectExamWitTags(examDto.Id); var updatedAt2 = exam.UpdatedAt; AssertHelper.AssertExam(examData, responseExam, exam); AssertHelper.AssertExamTags(examData.Tags.ToArray(), responseExam, exam); Assert.Equal(updatedAt1, updatedAt2); responseExam = await client.PutExamSuccesfully(putLink, new Edit.Request() { Exam = new Edit.ExamData() }); exam = dbContextHelper.SelectExamWitTags(examDto.Id); var updatedAt3 = exam.UpdatedAt; AssertHelper.AssertExam(examData, responseExam, exam); AssertHelper.AssertExamTags(examData.Tags.ToArray(), responseExam, exam); Assert.Equal(updatedAt2, updatedAt3); }