public async Task GenerateTokenEmailFail() { const string password = "******"; const string email = "*****@*****.**"; AuthToken token; using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = ManagerTestHelper.GetAuthManager(context); var userManager = ManagerTestHelper.GetUserManager(context, sut); await userManager.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(0), true); await userManager.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(1, email, password), true); await userManager.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(2), true); await context.SaveChangesAsync(); token = await sut.GenerateTokenAsync(new TokenRequest { DeviceId = "deviceId", Email = "*****@*****.**", Password = password }); } Assert.IsNull(token); }
public async Task GetAdminQuizList() { List <Quiz> result; using (var context = new QuizContext(ManagerTestHelper.Options)) { var logManager = Mock.Of <ILogManager>(); var userManager = ManagerTestHelper.GetUserManager(context, Mock.Of <IAuthManager>(), logManager); 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 userId = await userManager.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(0), true); await sut.InsertQuizInternalAsync(userId, ManagerTestHelper.CreateQuiz(0)); await sut.InsertQuizInternalAsync(userId, ManagerTestHelper.CreateQuiz(1)); await context.SaveChangesAsync(); result = await sut.GetAdminQuizList(userId); } Assert.AreEqual(2, result.Count); }
public async Task SendAccountVerificationEmailUserNotFound() { bool result; const string password = "******"; const string email = "*****@*****.**"; const string nonExistingEmail = "*****@*****.**"; OneTimeToken token; using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = ManagerTestHelper.GetUserManager(context, Mock.Of <IAuthManager>()); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(0), true); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(1, email, password), false); await context.SaveChangesAsync(); result = await sut.SendAccountVerificationEmail(nonExistingEmail); token = await context.OneTimeTokens.FirstOrDefaultAsync(t => t.Email == nonExistingEmail && t.TokenType == (byte)OneTimeTokenType.AccountVerification); } Assert.IsFalse(result); Assert.IsNull(token); }
public async Task VerifyAccountAlreadyVerified() { AuthToken result; const string password = "******"; const string email = "*****@*****.**"; const string tokenString = "token"; using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = ManagerTestHelper.GetUserManager(context, Mock.Of <IAuthManager>()); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(0), true); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(1, email, password), true); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(2), true); await ManagerTestHelper.AddOneTimeTokenAsync(context, email, OneTimeTokenType.AccountVerification, tokenString, true); await context.SaveChangesAsync(); result = await sut.VerifyAccount(new OneTimeTokenRequest { Token = tokenString, DeviceId = "device" }); } Assert.IsNull(result); }
public async Task InsertUserInvalidPassword() { GenericManagerResponse <AuthToken, InsertUserResponse> result; const string password = "******"; const string email = "*****@*****.**"; using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = ManagerTestHelper.GetUserManager(context, Mock.Of <IAuthManager>()); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(0), true); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(1, email, password), false); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(2), true); await context.SaveChangesAsync(); result = await sut.InsertUserAsync(new Models.TransferObjects.User { DeviceId = "device", FirstName = "FirstName", LastName = "LastName", Email = "*****@*****.**", PictureUrl = "", Password = "******" }); } Assert.AreEqual(result.Response, InsertUserResponse.PasswordCriteriaNotSatisfied); }
public async Task SendPasswordResetEmailVerified() { bool result; OneTimeToken token; const string password = "******"; const string email = "*****@*****.**"; using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = ManagerTestHelper.GetUserManager(context, Mock.Of <IAuthManager>()); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(0), true); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(1, email, password), true); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(2), true); await context.SaveChangesAsync(); result = await sut.SendPasswordResetEmail(email); token = await context.OneTimeTokens.FirstOrDefaultAsync(u => u.Email == email); } Assert.IsFalse(result); Assert.IsNull(token); }
public async Task SendPasswordResetEmailCreatesToken() { const string password = "******"; const string email = "*****@*****.**"; bool result; OneTimeToken token; var isLogManagerCalled = false; var logManager = new Mock <ILogManager>(); logManager.Setup(c => c.AddLog(LogCategory.Email, It.IsAny <string>(), LogEventLevel.Information, It.IsAny <object[]>())) .Callback(() => { isLogManagerCalled = true; }); using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = ManagerTestHelper.GetUserManager(context, Mock.Of <IAuthManager>(), logManager.Object); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(0), true); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(1, email, password), false); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(2), true); await context.SaveChangesAsync(); result = await sut.SendPasswordResetEmail(email); token = await context.OneTimeTokens.FirstOrDefaultAsync(u => u.Email == email); } Assert.IsTrue(result); Assert.IsNotNull(token); Assert.IsTrue(isLogManagerCalled); }
public async Task GetUserNull() { var logManager = new Mock <ILogManager>(); int userId; Models.DbModels.User user = null; using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = ManagerTestHelper.GetUserManager(context, Mock.Of <IAuthManager>(), logManager.Object); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(0), true); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(1), true); userId = await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(2), true); await context.SaveChangesAsync(); user = await sut.GetUserAsync(userId + 1); } Assert.IsNull(user); }
public async Task UpdatePasswordWithTokenUserNotFound() { bool result; const string email = "*****@*****.**"; const string newPassword = "******"; const string tokenString = "token"; using (var context = new QuizContext(ManagerTestHelper.Options)) { var sut = ManagerTestHelper.GetUserManager(context, Mock.Of <IAuthManager>()); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(0), true); await sut.InsertUserInternalAsync(ManagerTestHelper.CreateUserTo(1), true); await ManagerTestHelper.AddOneTimeTokenAsync(context, email, OneTimeTokenType.ForgotPassword, tokenString, true); await context.SaveChangesAsync(); result = await sut.UpdatePassword(tokenString, newPassword); } Assert.IsFalse(result); }