public async Task InsertQuizSuccess() { const int userId = 54; const string title = "Quiz Title"; const string intro = "Quiz Intro"; const int passScore = 75; SaveQuizResult result = null; Quiz addedQuiz = null; using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = new QuizManager(context, Mock.Of <IQuizAttemptManager>(), Mock.Of <ILogManager>()); result = await sut.InsertQuiz(userId, new Quiz { Title = title, Intro = intro, PassScore = passScore }); addedQuiz = await context.Quizes.FindAsync(result.Result); } Assert.AreEqual(SaveQuizResultStatus.Success, result.Status); Assert.AreEqual(title, addedQuiz.Title); Assert.AreEqual(intro, addedQuiz.Intro); Assert.AreEqual(passScore, addedQuiz.PassScore); Assert.AreEqual(1, addedQuiz.Version); Assert.AreEqual(QuizStatus.Current, addedQuiz.Status); }
public async Task UpdateQuizNotValid() { const int userId = 54; SaveQuizResult result = null; using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = new QuizManager(context, Mock.Of <IQuizAttemptManager>(), Mock.Of <ILogManager>()); var insertResult = await sut.InsertQuizInternalAsync(userId, new Quiz { Title = "", Intro = "", Version = 1, Status = QuizStatus.Current }); result = await sut.UpdateQuiz(userId, insertResult.QuizId, new Quiz { Id = insertResult.QuizId, QuizIdentityId = insertResult.QuizIdentityId, Version = 1, Status = QuizStatus.Current, PassScore = -10 }); } Assert.AreEqual(SaveQuizResultStatus.GeneralError, result.Status); }
public async Task PostUpdateThrowsException() { const int userId = 56; const int quizId = 44; const int questionId = 154; var question = new Question { Id = questionId, Body = "Test", Level = 3, Type = QuestionType.MultiSelect }; var response = new SaveQuizResult { Result = 5, Status = SaveQuizResultStatus.Success }; var questionManager = new Mock <IQuestionManager>(); questionManager .Setup(c => c.UpdateQuestion(userId, quizId, questionId, question)) .Returns(Task.FromResult(response)); var sut = new QuestionsController(questionManager.Object); var result = await sut.PostUpdateQuestion(quizId, questionId, question); Assert.AreEqual(HttpStatusCode.OK, (HttpStatusCode)result.StatusCode); }
public async Task InsertQuizNull() { const int userId = 54; SaveQuizResult result = null; using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = new QuizManager(context, Mock.Of <IQuizAttemptManager>(), Mock.Of <ILogManager>()); result = await sut.InsertQuiz(userId, null); } Assert.AreEqual(SaveQuizResultStatus.GeneralError, result.Status); }
public async Task InsertQuizIdentityIdNotDefault() { const int userId = 54; SaveQuizResult result = null; using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = new QuizManager(context, Mock.Of <IQuizAttemptManager>(), Mock.Of <ILogManager>()); result = await sut.InsertQuiz(userId, new Quiz { QuizIdentityId = 5 }); } Assert.AreEqual(SaveQuizResultStatus.NotAuthorized, result.Status); }
public async Task UpdateQuizIdNotAuthorized() { const int userId = 54; const int quizId = 134; SaveQuizResult result = null; using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = new QuizManager(context, Mock.Of <IQuizAttemptManager>(), Mock.Of <ILogManager>()); result = await sut.UpdateQuiz(userId, quizId, new Quiz { Id = quizId }); } Assert.AreEqual(SaveQuizResultStatus.NotAuthorized, result.Status); }
public async Task PutInsertThrowsException() { const int userId = 56; var response = new SaveQuizResult { Result = 5, Status = SaveQuizResultStatus.Success }; var quizManager = new Mock <IQuizManager>(); quizManager.Setup(c => c.InsertQuiz(userId, It.IsAny <Quiz>())) .Returns(Task.FromResult(response)); var sut = new QuizzesController(quizManager.Object); var result = await sut.PutInsertQuiz(new Quiz()); Assert.AreEqual(HttpStatusCode.OK, (HttpStatusCode)result.StatusCode); }
public async Task UpdateQuizSuccess() { const int userId = 54; const string title = "Quiz Title"; const string intro = "Quiz Intro"; const int passScore = 75; SaveQuizResult result = null; Quiz updatedQuiz = null; using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = new QuizManager(context, Mock.Of <IQuizAttemptManager>(), Mock.Of <ILogManager>()); var insertResult = await sut.InsertQuizInternalAsync(userId, new Quiz { Title = "", Intro = "", Version = 1, Status = QuizStatus.Current, PassScore = 10 }); var quiz = await context.Quizes.FindAsync(insertResult.QuizId); quiz.Title = title; quiz.Intro = intro; quiz.PassScore = passScore; result = await sut.UpdateQuiz(userId, insertResult.QuizId, quiz); updatedQuiz = await context.Quizes.FindAsync(insertResult.QuizId); } Assert.AreEqual(SaveQuizResultStatus.Success, result.Status); Assert.AreEqual(title, updatedQuiz.Title); Assert.AreEqual(intro, updatedQuiz.Intro); Assert.AreEqual(passScore, updatedQuiz.PassScore); Assert.AreEqual(1, updatedQuiz.Version); Assert.AreEqual(QuizStatus.Current, updatedQuiz.Status); }
public async Task PostUpdate(int saveResult, SaveQuizResultStatus status, HttpStatusCode expectedResponse) { const int userId = 56; const int quizId = 44; const int questionId = 154; var question = new Question { Id = questionId, Body = "Test", Level = 3, Type = QuestionType.MultiSelect }; var response = new SaveQuizResult { Result = saveResult, Status = status }; var questionManager = new Mock <IQuestionManager>(); questionManager .Setup(c => c.UpdateQuestion(userId, quizId, questionId, question)) .Returns(Task.FromResult(response)); var sut = new QuestionsController(questionManager.Object); sut.Token = new AuthToken { Token = "token", UserId = userId, ValidUntil = DateTime.Now.AddDays(1), IsVerified = true }; var result = await sut.PostUpdateQuestion(quizId, questionId, question); Assert.AreEqual(expectedResponse, (HttpStatusCode)result.StatusCode); Assert.IsTrue((HttpStatusCode)result.StatusCode != HttpStatusCode.OK || ((GenericWrapper <int>)result.Value).Value == saveResult); }
public async Task PutInsert(int saveResult, SaveQuizResultStatus status, HttpStatusCode expectedResponse) { const int userId = 56; var quiz = new Quiz { Title = "Test", Intro = "Intro" }; var response = new SaveQuizResult { Result = saveResult, Status = status }; var quizManager = new Mock <IQuizManager>(); quizManager .Setup(c => c.InsertQuiz(userId, quiz)) .Returns(Task.FromResult(response)); var sut = new QuizzesController(quizManager.Object); sut.Token = new AuthToken { Token = "token", UserId = userId, ValidUntil = DateTime.Now.AddDays(1), IsVerified = true }; var result = await sut.PutInsertQuiz(quiz); Assert.AreEqual(expectedResponse, (HttpStatusCode)result.StatusCode); Assert.IsTrue((HttpStatusCode)result.StatusCode != HttpStatusCode.OK || ((GenericWrapper <int>)result.Value).Value == saveResult); }