Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }