public async Task GetUserQuizList() { List <Quiz> result; using (var context = new QuizContext(ManagerTestHelper.Options)) { var logManager = Mock.Of <ILogManager>(); var sut = new QuizManager(context, new QuizAttemptManager(context, Mock.Of <IQuestionManager>(), logManager), logManager); var quiz = new Quiz { Title = "title", Intro = "intro", TimeConstraint = true, TimeLimitInSeconds = 40, AvailableTo = DateTime.Now.AddDays(1) }; var testData = await ManagerTestHelper.CreateAndAssignQuizAsync(context, quiz, true); var attempt = await context.QuizAttempts.AddAsync( new QuizAttempt { QuizId = testData.QuizId, UserId = testData.UserId, Status = QuizAttemptStatus.Incomplete, StartDate = DateTime.Now }); await context.SaveChangesAsync(); result = await sut.GetUserQuizList(testData.UserId); } Assert.IsNotNull(result[0].LastAttempt); }
public async Task UpdateStatusAvailableIntervalPassed() { UpdateQuizAttemptResponse result; using (var context = new QuizContext(ManagerTestHelper.Options)) { var logManager = Mock.Of <ILogManager>(); var sut = new QuizAttemptManager(context, new QuestionManager(context, logManager), logManager); var quiz = new Quiz { Title = "title", Intro = "intro", TimeConstraint = true, TimeLimitInSeconds = 40, AvailableTo = DateTime.Now.AddDays(-1) }; var testData = await ManagerTestHelper.CreateAndAssignQuizAsync(context, quiz, true); var attempt = await context.QuizAttempts.AddAsync( new QuizAttempt { QuizId = testData.QuizId, UserId = testData.UserId, Status = QuizAttemptStatus.Incomplete, StartDate = DateTime.Now }); await context.SaveChangesAsync(); result = await sut.UpdateStatus(testData.UserId, attempt.Entity.Id, new UpdateQuizAttemptStatus { TimeSpent = 30, EndQuiz = false }); } Assert.AreEqual(UpdateQuizAttemptStatusResult.DateError, result.Result); Assert.AreNotEqual(QuizAttemptStatus.Incomplete, result.Attempt.Status); }
public async Task CreateAttemptQuizNotAssigned() { CreateAttemptResponse result; var quiz = new Quiz { Title = "title", Intro = "intro" }; using (var context = new QuizContext(ManagerTestHelper.Options)) { var logManager = Mock.Of <ILogManager>(); var testData = await ManagerTestHelper.CreateAndAssignQuizAsync(context, quiz, false); var sut = new QuizAttemptManager(context, new QuestionManager(context, logManager), logManager); result = await sut.CreateAttempt(testData.UserId, testData.QuizId); } Assert.AreEqual(CreateAttemptResult.NotAuthorized, result.Result); Assert.IsNull(result.Attempt); }
public async Task CreateAttemptQuizRepeatable() { CreateAttemptResponse result; QuizAttempt previousAttempt; var quiz = new Quiz { Title = "title", Intro = "intro", Repeatable = true }; using (var context = new QuizContext(ManagerTestHelper.Options)) { var logManager = Mock.Of <ILogManager>(); var testData = await ManagerTestHelper.CreateAndAssignQuizAsync(context, quiz, true); var attempt = await context.QuizAttempts.AddAsync( new QuizAttempt { QuizId = testData.QuizId, UserId = testData.UserId, StartDate = DateTime.Now, Status = QuizAttemptStatus.Incomplete, TimeSpent = 10 }); await context.SaveChangesAsync(); var sut = new QuizAttemptManager(context, new QuestionManager(context, logManager), logManager); result = await sut.CreateAttempt(testData.UserId, testData.QuizId); previousAttempt = await context.QuizAttempts.FindAsync(attempt.Entity.Id); } Assert.AreEqual(CreateAttemptResult.Success, result.Result); Assert.AreEqual(QuizAttemptStatus.Completed, previousAttempt.Status); Assert.AreEqual(QuizAttemptStatus.Incomplete, result.Attempt.Status); }
public async Task CreateAttemptQuizNotAvailable() { CreateAttemptResponse result; var quiz = new Quiz { Title = "title", Intro = "intro", AvailableTo = DateTime.Now.AddDays(-1) }; using (var context = new QuizContext(ManagerTestHelper.Options)) { var logManager = Mock.Of <ILogManager>(); var testData = await ManagerTestHelper.CreateAndAssignQuizAsync(context, quiz, true); var sut = new QuizAttemptManager(context, new QuestionManager(context, logManager), logManager); result = await sut.CreateAttempt(testData.UserId, testData.QuizId); } Assert.AreEqual(CreateAttemptResult.DateError, result.Result); Assert.IsNull(result.Attempt); }