public async Task TakeExamAndAssertResult( HttpCallHelper httpCallHelper, int userExamId, bool fail, bool skipSomeQuestions = false) { var testResult = await TakeExam(userExamId, fail, skipSomeQuestions); var userExamDto = await httpCallHelper.EndUserExam(userExamId); var userExamResult = await httpCallHelper.PostUserExamResult(userExamId); Assert.True(userExamResult.IsPassed == !fail); Assert.True(userExamResult.RightAnswerCount == testResult.Item1); Assert.True(userExamResult.AnsweredQuestionCount == testResult.Item2); var passed = ((float)userExamResult.RightAnswerCount / (float)userExamResult.QuestionCount * 100) >= userExamDto.Exam.PassPercentage; Assert.True(passed == userExamResult.IsPassed); Assert.True(userExamResult.AnsweredQuestionCount == userExamResult.WrongAnswerCount + userExamResult.RightAnswerCount); Assert.True(userExamResult.QuestionCount >= userExamResult.AnsweredQuestionCount); Assert.True(userExamResult.QuestionCount == userExamResult.AnsweredQuestionCount + userExamResult.NotAnsweredQuestionCount); }