private async Task UserUpdateQuestionAnswersTest(UserQuestionAnswerData user, System.Net.Http.HttpClient client)
        {
            //radio
            var request        = user.CreateRadioQuestion1AnswerRequest();
            var questionAnswer = await client.PostQuestionAnswerSuccesfully(link, request);

            AssertHelper.AssertEqual(questionAnswer, request.UserExamQuestionAnswer);
            var questionAnswerOld = questionAnswer;

            questionAnswer = await client.PostQuestionAnswerSuccesfully(link, request);

            AssertHelper.AssertEqual(questionAnswer, request.UserExamQuestionAnswer);
            AssertHelper.AssertEqual(questionAnswer, questionAnswerOld);
            questionAnswerOld = questionAnswer;

            request        = user.CreateRadioQuestion1AnswerRequest(questionAnswerOld.AnswerOptions.First().AnswerOptionId);
            questionAnswer = await client.PostQuestionAnswerSuccesfully(link, request);

            AssertHelper.AssertEqual(questionAnswer, request.UserExamQuestionAnswer);
            AssertHelper.AssertNotEqual(questionAnswer, questionAnswerOld);
            questionAnswerOld = questionAnswer;

            request        = user.CreateRadioQuestion1AnswerRequest(questionAnswerOld.AnswerOptions.First().AnswerOptionId);
            questionAnswer = await client.PostQuestionAnswerSuccesfully(link, request);

            AssertHelper.AssertEqual(questionAnswer, request.UserExamQuestionAnswer);
            AssertHelper.AssertNotEqual(questionAnswer, questionAnswerOld);
            questionAnswerOld = questionAnswer;

            //checkbox
            request        = user.CreateCheckboxQuestion1AnswerRequest();
            questionAnswer = await client.PostQuestionAnswerSuccesfully(link, request);

            AssertHelper.AssertEqual(questionAnswer, request.UserExamQuestionAnswer);
            questionAnswerOld = questionAnswer;

            questionAnswer = await client.PostQuestionAnswerSuccesfully(link, request);

            AssertHelper.AssertEqual(questionAnswer, request.UserExamQuestionAnswer);
            AssertHelper.AssertEqual(questionAnswer, questionAnswerOld);
            questionAnswerOld = questionAnswer;

            request        = user.CreateCheckboxQuestion1AnswerRequest(questionAnswerOld.AnswerOptions.First().AnswerOptionId);
            questionAnswer = await client.PostQuestionAnswerSuccesfully(link, request);

            AssertHelper.AssertEqual(questionAnswer, request.UserExamQuestionAnswer);
            AssertHelper.AssertNotEqual(questionAnswer, questionAnswerOld);
            questionAnswerOld = questionAnswer;

            request        = user.CreateCheckboxQuestion1AnswerRequest(questionAnswerOld.AnswerOptions.First().AnswerOptionId);
            questionAnswer = await client.PostQuestionAnswerSuccesfully(link, request);

            AssertHelper.AssertEqual(questionAnswer, request.UserExamQuestionAnswer);
            AssertHelper.AssertNotEqual(questionAnswer, questionAnswerOld);
            questionAnswerOld = questionAnswer;
        }
Ejemplo n.º 2
0
        public void TestLineCreateSprite2()
        {
            Point point1 = new Point(X1, Y1);
            Point point2 = new Point(X2, Y2);
            Line  sprite = Line.CreateSprite(point1, point2, Canvas);

            AssertHelper.AssertEqual(point1, sprite.Point1);
            AssertHelper.AssertEqual(point2, sprite.Point2);
            Assert.AreEqual(C, sprite.C);
        }
        public void TestRectangleCreateSprite1()
        {
            SpriteCommand command = new RectangleCommand(X1, Y1, X2, Y2);
            Rectangle     sprite  = Rectangle.CreateSprite(command, Canvas);

            AssertHelper.AssertEqual(Top, sprite.Top);
            AssertHelper.AssertEqual(Right, sprite.Right);
            AssertHelper.AssertEqual(Bottom, sprite.Bottom);
            AssertHelper.AssertEqual(Left, sprite.Left);
        }
Ejemplo n.º 4
0
        public void TestLineCreateSprite1()
        {
            SpriteCommand command = new LineCommand(X1, Y1, X2, Y2);

            Line sprite = Line.CreateSprite(command, Canvas);

            Point point1 = new Point(X1, Y1);
            Point point2 = new Point(X2, Y2);

            AssertHelper.AssertEqual(point1, sprite.Point1);
            AssertHelper.AssertEqual(point2, sprite.Point2);
            Assert.AreEqual(C, sprite.C);
        }
Ejemplo n.º 5
0
        public async void ShouldEditTests()
        {
            var client         = httpClientFactory.CreateClient();
            var httpCallHelper = new HttpCallHelper(client);
            var questionItems  = await httpCallHelper.CreateQuestion();

            var questionItemsPublished = await httpCallHelper.CreateQuestion(loggedUser : questionItems.Item1);

            var questionItems2 = await httpCallHelper.CreateQuestion();

            var question1            = questionItems.Item5;
            var question2            = questionItems2.Item5;
            var questionPublished    = questionItemsPublished.Item5;
            var examPublished        = questionItemsPublished.Item3;
            var user1                = questionItems.Item1;
            var radioQuestionData    = TestData.Question.Edit.NewQuestionData();
            var checkboxQuestionData = TestData.Question.Edit.NewQuestionData(false);

            var link1         = $"/questions/{question1.Id}";
            var link2         = $"/questions/{question2.Id}";
            var linkPublished = $"/questions/{questionPublished.Id}";

            await client.PutUnauthorized(link1, new Edit.Request()
            {
                Question = radioQuestionData
            });

            client.Authorize(user1.Token);

            var tempQuestion = TestData.Question.Edit.NewQuestionDataWithEmptyText();
            await client.PutBadRequest(link1, new Edit.Request()
            {
                Question = tempQuestion
            });

            tempQuestion = TestData.Question.Edit.NewQuestionDataWithTooLongText();
            await client.PutBadRequest(link1, new Edit.Request()
            {
                Question = tempQuestion
            });

            tempQuestion = TestData.Question.Edit.NewQuestionDataWithFewerAnswerOption();
            await client.PutBadRequest(link1, new Edit.Request()
            {
                Question = tempQuestion
            });

            tempQuestion = TestData.Question.Edit.NewQuestionDataWithMoreAnswerOption();
            await client.PutBadRequest(link1, new Edit.Request()
            {
                Question = tempQuestion
            });

            tempQuestion = TestData.Question.Edit.NewQuestionDataRadioWithTwoRight();
            await client.PutBadRequest(link1, new Edit.Request()
            {
                Question = tempQuestion
            });

            tempQuestion = TestData.Question.Edit.NewQuestionDataCheckboxWithSingleRight();
            await client.PutBadRequest(link1, new Edit.Request()
            {
                Question = tempQuestion
            });

            tempQuestion = TestData.Question.Edit.NewQuestionDataWithAllRight();
            await client.PutBadRequest(link1, new Edit.Request()
            {
                Question = tempQuestion
            });

            tempQuestion = TestData.Question.Edit.NewQuestionDataWithAllWrong();
            await client.PutBadRequest(link1, new Edit.Request()
            {
                Question = tempQuestion
            });

            tempQuestion = TestData.Question.Edit.NewQuestionDataWithAllRight(false);
            await client.PutBadRequest(link1, new Edit.Request()
            {
                Question = tempQuestion
            });

            tempQuestion = TestData.Question.Edit.NewQuestionDataWithAllWrong(false);
            await client.PutBadRequest(link1, new Edit.Request()
            {
                Question = tempQuestion
            });

            tempQuestion = TestData.Question.Edit.NewQuestionDataWithEmptyAnswerText();
            await client.PutBadRequest(link1, new Edit.Request()
            {
                Question = tempQuestion
            });


            tempQuestion = TestData.Question.Edit.NewQuestionDataWithTooLongAnswerText();
            await client.PutBadRequest(link1, new Edit.Request()
            {
                Question = tempQuestion
            });

            //other user's exam
            await client.PutNotFound(link2, new Edit.Request()
            {
                Question = radioQuestionData
            });

            //edit published exam question
            await client.PutSucessfully(linkPublished, new Edit.Request()
            {
                Question = radioQuestionData
            });

            await httpCallHelper.PublishExam(examPublished.Id);

            await client.PutNotFound(linkPublished, new Edit.Request()
            {
                Question = radioQuestionData
            });

            //sucess
            //null text and null answer
            var questionData = TestData.Question.Edit.NewQuestionDataWithNullTextAndAnswer();
            var resultDto    = await client.PutQuestionSucessfully(link1, new Edit.Request()
            {
                Question = questionData
            });

            AssertHelper.AssertEqual(question1, resultDto);

            //null text and same answers
            questionData      = mapper.Mapper.Map <Edit.QuestionData>(resultDto);
            questionData.Text = null;
            resultDto         = await client.PutQuestionSucessfully(link1, new Edit.Request()
            {
                Question = questionData
            });

            AssertHelper.AssertEqual(question1, resultDto);

            //same text and null answers
            questionData         = mapper.Mapper.Map <Edit.QuestionData>(resultDto);
            questionData.Answers = null;
            resultDto            = await client.PutQuestionSucessfully(link1, new Edit.Request()
            {
                Question = questionData
            });

            AssertHelper.AssertEqual(question1, resultDto);

            //with new answer
            questionData = mapper.Mapper.Map <Edit.QuestionData>(resultDto);
            var count              = questionData.Answers.Count();
            var answers            = new List <Edit.AnswerData>(questionData.Answers);
            var newAnserOptionData = TestData.Question.Edit.GenerateAnswerOption(count);

            answers.Add(newAnserOptionData);
            questionData.Answers = answers;
            resultDto            = await client.PutQuestionSucessfully(link1, new Edit.Request()
            {
                Question = questionData
            });

            AssertHelper.AssertNotEqual(question1, resultDto);
            Assert.True(question1.UpdatedAt < resultDto.UpdatedAt);
            Assert.True(resultDto.AnswerOptions.Count() == count + 1);
            var answerOptions     = resultDto.AnswerOptions.OrderByDescending(e => e.Id).ToArray();
            var answerOptionAdded = answerOptions[0];

            AssertHelper.AssertEqual(answerOptionAdded, newAnserOptionData);

            //only added anser changed.
            for (int i = 1; i < answerOptions.Length; i++)
            {
                var ao = answerOptions[i];
                Assert.True(ao.UpdatedAt < answerOptionAdded.UpdatedAt);
            }
            question1 = resultDto;

            //with new text
            questionData      = mapper.Mapper.Map <Edit.QuestionData>(resultDto);
            questionData.Text = questionData.Text + "_NewOne";
            resultDto         = await client.PutQuestionSucessfully(link1, new Edit.Request()
            {
                Question = questionData
            });

            AssertHelper.AssertNotEqual(question1, resultDto);
            Assert.True(question1.Text != resultDto.Text);
            Assert.True(question1.UpdatedAt < resultDto.UpdatedAt);
            foreach (var ao in resultDto.AnswerOptions)
            {
                Assert.True(ao.UpdatedAt < resultDto.UpdatedAt);
            }
            question1 = resultDto;
            //with new answer and deleted and edited
            questionData       = mapper.Mapper.Map <Edit.QuestionData>(resultDto);
            count              = questionData.Answers.Count();
            answers            = new List <Edit.AnswerData>(questionData.Answers);
            newAnserOptionData = TestData.Question.Edit.GenerateAnswerOption(count);
            var answerEdited = answers.First();

            answerEdited.Text = answerEdited.Text + "_Edited";
            var answerDeleted   = answers.Where(e => e.Id != answerEdited.Id && !e.IsRight).Last();
            var answerUnchanged = answers.Where(e => e.Id != answerEdited.Id && e.Id != answerDeleted.Id && !e.IsRight).Last();

            answerUnchanged.Text = null;
            answers.Add(newAnserOptionData);
            answers.Remove(answerDeleted);
            questionData.Answers = answers;
            resultDto            = await client.PutQuestionSucessfully(link1, new Edit.Request()
            {
                Question = questionData
            });

            AssertHelper.AssertNotEqual(question1, resultDto);
            Assert.True(question1.UpdatedAt < resultDto.UpdatedAt);
            Assert.True(resultDto.AnswerOptions.Count() == count);
            answerOptions     = resultDto.AnswerOptions.OrderByDescending(e => e.Id).ToArray();
            answerOptionAdded = answerOptions[0];
            var answerOptionEdited    = answerOptions.Where(e => e.Id == answerEdited.Id).First();
            var answerOptionUnchanged = answerOptions.Where(e => e.Id == answerUnchanged.Id).First();

            AssertHelper.AssertEqual(answerOptionAdded, newAnserOptionData);
            AssertHelper.AssertEqual(answerOptionEdited, answerEdited);
            Assert.True(resultDto.UpdatedAt == answerOptionEdited.UpdatedAt);
            Assert.True(answerOptionAdded.UpdatedAt == answerOptionEdited.UpdatedAt);
            Assert.True(answerOptionUnchanged.Text.Length > 1);
            Assert.True(answerOptionUnchanged.UpdatedAt < answerOptionEdited.UpdatedAt);
            foreach (var ao in resultDto.AnswerOptions)
            {
                Assert.True(ao.Id != answerDeleted.Id);
                if (ao.Id != answerOptionAdded.Id && ao.Id != answerOptionEdited.Id)
                {
                    Assert.True(ao.UpdatedAt < answerOptionEdited.UpdatedAt);
                }
            }
            question1 = resultDto;

            // some ok cases
            tempQuestion = TestData.Question.Edit.NewQuestionDataWithNullAnswerOption();
            await client.PutSucessfully(link1, new Edit.Request()
            {
                Question = tempQuestion
            });

            tempQuestion = TestData.Question.Edit.NewQuestionDataWithNullText();
            await client.PutSucessfully(link1, new Edit.Request()
            {
                Question = tempQuestion
            });

            tempQuestion = TestData.Question.Edit.NewQuestionDataWithEmptyAnswerOption();
            await client.PutSucessfully(link1, new Edit.Request()
            {
                Question = tempQuestion
            });
        }
Ejemplo n.º 6
0
 public void ThenUserShouldBeAtEnterBugPage()
 {
     AssertHelper.AssertEqual("Enter Bug: TestProduct", epage.Title);
 }
Ejemplo n.º 7
0
        public async void UserExamDetailsTests()
        {
            var client = httpClientFactory.CreateClient();
            var data   = new UserExamData(client);

            client.Unauthorize();
            var linkUser1PrivateUserExam = $"/userexams/{data.User1PrivateUserExam.Item3.Id}";
            var linkUser1PublicUserExam  = $"/userexams/{data.User1PublicUserExam.Item3.Id}";
            var linkUser1PublicUserExam2 = $"/userexams/{data.User1PublicUserExam2.Item3.Id}";
            var linkUser2PrivateUserExam = $"/userexams/{data.User2PrivateUserExam.Item3.Id}";
            var linkUser2PublicUserExam  = $"/userexams/{data.User2PublicUserExam.Item3.Id}";
            var linkUser2PublicUserExam2 = $"/userexams/{data.User2PublicUserExam2.Item3.Id}";

            await client.GetUnauthorized(linkUser1PrivateUserExam);

            client.Authorize(data.User1PrivateUserExam.Item1.Token);

            var userExam = await client.GetUserExamSuccesfully(linkUser1PrivateUserExam);

            AssertHelper.AssertEqual(userExam, data.User1PrivateUserExam.Item3);

            userExam = await client.GetUserExamSuccesfully(linkUser1PublicUserExam);

            AssertHelper.AssertEqual(userExam, data.User1PublicUserExam.Item3);

            userExam = await client.GetUserExamSuccesfully(linkUser1PublicUserExam2);

            AssertHelper.AssertEqual(userExam, data.User1PublicUserExam2.Item3);

            await client.GetNotFound(linkUser2PrivateUserExam);

            await client.GetNotFound(linkUser2PublicUserExam);

            await client.GetNotFound(linkUser2PublicUserExam2);

            client.Authorize(data.User2PrivateUserExam.Item1.Token);

            await client.GetNotFound(linkUser1PrivateUserExam);

            await client.GetNotFound(linkUser1PublicUserExam);

            await client.GetNotFound(linkUser1PublicUserExam2);

            userExam = await client.GetUserExamSuccesfully(linkUser2PrivateUserExam);

            AssertHelper.AssertEqual(userExam, data.User2PrivateUserExam.Item3);

            userExam = await client.GetUserExamSuccesfully(linkUser2PublicUserExam);

            AssertHelper.AssertEqual(userExam, data.User2PublicUserExam.Item3);

            userExam = await client.GetUserExamSuccesfully(linkUser2PublicUserExam2);

            AssertHelper.AssertEqual(userExam, data.User2PublicUserExam2.Item3);

            //include exam
            var includeExams = "?includeExams=true";

            userExam = await client.GetUserExamSuccesfully($"{linkUser2PrivateUserExam}{includeExams}");

            AssertHelper.AssertEqual(userExam, data.User2PrivateUserExam.Item3, true);

            userExam = await client.GetUserExamSuccesfully($"{linkUser2PublicUserExam}{includeExams}");

            AssertHelper.AssertEqual(userExam, data.User2PublicUserExam.Item3, true);

            userExam = await client.GetUserExamSuccesfully($"{linkUser2PublicUserExam2}{includeExams}");

            AssertHelper.AssertEqual(userExam, data.User2PublicUserExam2.Item3, true);
        }