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; }
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); }
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); }
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 }); }
public void ThenUserShouldBeAtEnterBugPage() { AssertHelper.AssertEqual("Enter Bug: TestProduct", epage.Title); }
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); }