protected override void LoadTestData() { var username1 = $"*****@*****.**"; var username2 = $"*****@*****.**"; _user1 = new ApplicationUser { UserName = username1, Email = username1, EmailConfirmed = true, NormalizedUserName = username1.ToUpperInvariant() }; _user2 = new ApplicationUser { UserName = username2, Email = username2, EmailConfirmed = true, NormalizedUserName = username2.ToUpperInvariant() }; Context.Users.Add(_user1); Context.Users.Add(_user2); var claimForUser1 = new IdentityUserClaim<string> { UserId = _user1.Id, ClaimType = ClaimTypes.ProfileIncomplete, ClaimValue = "NewUser" }; Context.UserClaims.Add(claimForUser1); var claimForUser2 = new IdentityUserClaim<string> { UserId = _user2.Id, ClaimType = "SomeOtherClaim", ClaimValue = "Blah" }; Context.UserClaims.Add(claimForUser2); Context.SaveChanges(); }
public async Task InvokeUpdateTaskSignupAsyncWithTheCorrectParametersForEachTaskSignupViewModelOnCommand() { var options = CreateNewContextOptions(); const string userId = "1"; const int taskSignupId = 1; var user = new ApplicationUser {Id = userId}; var dateTimeUtcNow = DateTime.UtcNow; var taskSignupViewModels = new List<TaskSignupViewModel> { new TaskSignupViewModel { Id = taskSignupId, StatusDescription = "statusDescription1", Status = "Status1", TaskId = 1, } }; var message = new UpdateMyTasksCommand { TaskSignups = taskSignupViewModels, UserId = userId}; using (var context = new AllReadyContext(options)) { context.Users.Add(user); context.TaskSignups.Add(new TaskSignup { Id = taskSignupId }); context.Tasks.Add(new AllReadyTask { Id = 1 }); await context.SaveChangesAsync(); } using (var context = new AllReadyContext(options)) { var sut = new UpdateMyTasksCommandHandler(context) { DateTimeUtcNow = () => dateTimeUtcNow }; await sut.Handle(message); } using (var context = new AllReadyContext(options)) { var signup = context.TaskSignups.FirstOrDefault(x => x.Id == taskSignupId); Assert.Equal(signup != null, true); } }
protected override void LoadTestData() { var context = ServiceProvider.GetService<AllReadyContext>(); var htb = new Organization { Name = "Humanitarian Toolbox", LogoUrl = "http://www.htbox.org/upload/home/ht-hero.png", WebUrl = "http://www.htbox.org", Campaigns = new List<Campaign>() }; var firePrev = new Campaign { Name = "Neighborhood Fire Prevention Days", ManagingOrganization = htb }; var queenAnne = new Event { Id = 1, Name = "Queen Anne Fire Prevention Day", Campaign = firePrev, CampaignId = firePrev.Id, StartDateTime = new DateTime(2015, 7, 4, 10, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 31, 15, 0, 0).ToUniversalTime(), Location = new Location { Id = 1 }, RequiredSkills = new List<EventSkill>(), }; var username1 = $"*****@*****.**"; var username2 = $"*****@*****.**"; var user1 = new ApplicationUser { UserName = username1, Email = username1, EmailConfirmed = true }; context.Users.Add(user1); var user2 = new ApplicationUser { UserName = username2, Email = username2, EmailConfirmed = true }; context.Users.Add(user2); htb.Campaigns.Add(firePrev); context.Organizations.Add(htb); var task = new AllReadyTask { Event = queenAnne, Description = "Description of a very important task", Name = "Task # ", EndDateTime = DateTime.Now.AddDays(1), StartDateTime = DateTime.Now.AddDays(-3) }; queenAnne.Tasks.Add(task); context.Events.Add(queenAnne); var taskSignups = new List<TaskSignup> { new TaskSignup { Task = task, User = user1 }, new TaskSignup { Task = task, User = user2 } }; context.TaskSignups.AddRange(taskSignups); context.SaveChanges(); }
protected override void LoadTestData() { var context = ServiceProvider.GetService<AllReadyContext>(); Tenant htb = new Tenant() { Name = "Humanitarian Toolbox", LogoUrl = "http://www.htbox.org/upload/home/ht-hero.png", WebUrl = "http://www.htbox.org", Campaigns = new List<Campaign>() }; Campaign firePrev = new Campaign() { Name = "Neighborhood Fire Prevention Days", ManagingTenant = htb }; Activity queenAnne = new Activity() { Id = 1, Name = "Queen Anne Fire Prevention Day", Campaign = firePrev, CampaignId = firePrev.Id, StartDateTimeUtc = new DateTime(2015, 7, 4, 10, 0, 0).ToUniversalTime(), EndDateTimeUtc = new DateTime(2015, 12, 31, 15, 0, 0).ToUniversalTime(), Location = new Location { Id = 1 }, RequiredSkills = new List<ActivitySkill>(), }; var username1 = $"*****@*****.**"; var username2 = $"*****@*****.**"; var user1 = new ApplicationUser { UserName = username1, Email = username1, EmailConfirmed = true }; context.Users.Add(user1); htb.Campaigns.Add(firePrev); context.Tenants.Add(htb); context.Activities.Add(queenAnne); var activitySignups = new List<ActivitySignup>(); activitySignups.Add(new ActivitySignup { Activity = queenAnne, User = user1, SignupDateTime = DateTime.UtcNow }); context.ActivitySignup.AddRange(activitySignups); var newTask = new AllReadyTask() { Activity = queenAnne, Description = "Description of a very important task", Name = "Task # 1", EndDateTimeUtc = DateTime.Now.AddDays(5), StartDateTimeUtc = DateTime.Now.AddDays(3), Tenant = htb }; newTask.AssignedVolunteers.Add(new TaskSignup() { Task = newTask, User = user1 }); context.Tasks.Add(newTask); context.SaveChanges(); }
public async Task CanSaveZeroTasks() { var options = CreateNewContextOptions(); const string userId = "1"; var user = new ApplicationUser {Id = userId}; using (var context = new AllReadyContext(options)) { context.Users.Add(user); await context.SaveChangesAsync(); } var message = new UpdateMyTasksCommand { UserId =userId, TaskSignups = new List<TaskSignupViewModel>() }; using (var context = new AllReadyContext(options)) { var sut = new UpdateMyTasksCommandHandler(context); await sut.Handle(message); } using (var context = new AllReadyContext(options)) { var taskSignups = context.TaskSignups.Count(); Assert.Equal(taskSignups, 0); } }
public async Task InvokeUpdateTaskSignupAsyncWithTheCorrectParametersForEachTaskSignupViewModelOnCommand() { var user = new ApplicationUser(); var dateTimeUtcNow = DateTime.UtcNow; var taskSignupViewModels = new List<TaskSignupViewModel> { new TaskSignupViewModel { Id = 1, StatusDescription = "statusDescription1", Status = "Status1", TaskId = 1, } }; var message = new UpdateMyTasksCommandAsync { TaskSignups = taskSignupViewModels }; var dataAccess = new Mock<IAllReadyDataAccess>(); dataAccess.Setup(x => x.GetUser(It.IsAny<string>())).Returns(user); var sut = new UpdateMyTasksHandlerAsync(dataAccess.Object) { DateTimeUtcNow = () => dateTimeUtcNow }; await sut.Handle(message); dataAccess.Verify(x => x.UpdateTaskSignupAsync(It.Is<TaskSignup>(y => y.Id == taskSignupViewModels[0].Id && y.StatusDateTimeUtc == dateTimeUtcNow && y.StatusDescription == taskSignupViewModels[0].StatusDescription && y.Status == taskSignupViewModels[0].Status && y.Task.Id == taskSignupViewModels[0].TaskId && y.User == user))); }
public async Task<IActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, TimeZoneId = _generalSettings.Value.DefaultTimeZone }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { var token = await _userManager.GenerateEmailConfirmationTokenAsync(user); //note: had to change Url.Action to take a UrlActionContext b/c "Url.Action" is really an extension method that eventually uses UrlActionContext, and extension methods are not mockable var callbackUrl = Url.Action(new UrlActionContext { Action = nameof(ConfirmEmail), Controller = "Admin", Values = new { userId = user.Id, token = token }, Protocol = Request.Scheme }); await _emailSender.SendEmailAsync(model.Email, "Confirm your account", $"Please confirm your account by clicking this <a href=\"{callbackUrl}\">link</a>"); return RedirectToAction(nameof(DisplayEmail), "Admin"); } AddErrors(result); } // If we got this far, something failed, redisplay form return View(model); }
public async Task SendNotificationToVolunteersWithCorrectMessage() { const string expectedMessage = "You've been assigned a task from AllReady."; var @task = new AllReadyTask { Id = 1 }; var volunteer = new ApplicationUser { Id = "user1", Email = "*****@*****.**", PhoneNumber = "1234", EmailConfirmed = true, PhoneNumberConfirmed = true }; Context.Add(volunteer); Context.Add(@task); Context.SaveChanges(); var message = new TaskAssignedToVolunteersNotification { TaskId = @task.Id, NewlyAssignedVolunteers = new List<string> { volunteer.Id } }; await sut.Handle(message); mediator.Verify(b => b.SendAsync(It.Is<NotifyVolunteersCommand>(notifyCommand => notifyCommand.ViewModel.EmailMessage == expectedMessage && notifyCommand.ViewModel.Subject == expectedMessage && notifyCommand.ViewModel.EmailRecipients.Contains(volunteer.Email) && notifyCommand.ViewModel.SmsRecipients.Contains(volunteer.PhoneNumber) && notifyCommand.ViewModel.SmsMessage == expectedMessage )), Times.Once()); }
public async Task<IActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, TimeZoneId = _generalSettings.Value.DefaultTimeZone }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { var token = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Action(new UrlActionContext { Action = nameof(ConfirmEmail), Controller = "Admin", Values = new { userId = user.Id, token = token }, Protocol = Request.Scheme }); await _mediator.SendAsync(new SendConfirmAccountEmail { Email = model.Email, CallbackUrl = callbackUrl }); return RedirectToAction(nameof(DisplayEmail), "Admin"); } AddErrors(result); } // If we got this far, something failed, redisplay form return View(model); }
public async Task SetsTaskSignupViewModel_WithTheCorrectData() { var options = CreateNewContextOptions(); var appUser = new ApplicationUser { Id = "asdfasasdfaf", Email = "*****@*****.**", FirstName = "Foo", LastName = "Bar", PhoneNumber = "555-555-5555", }; var message = new ShowEventQuery { EventId = 1, UserId = appUser.Id }; using (var context = new AllReadyContext(options)) { context.Users.Add(appUser); context.Events.Add(CreateAllReadyEventWithTasks(message.EventId, appUser)); await context.SaveChangesAsync(); } using (var context = new AllReadyContext(options)) { var sut = new ShowEventQueryHandler(context); var eventViewModel = await sut.Handle(message); Assert.Equal(message.EventId, eventViewModel.SignupModel.EventId); Assert.Equal(appUser.Id, eventViewModel.SignupModel.UserId); Assert.Equal($"{appUser.FirstName} {appUser.LastName}", eventViewModel.SignupModel.Name); } }
public void RedirectToCorrectActionResultWithCorrectRouteValues_WhenReturnUrlIsNotALocalUrl_AndUserIsOrgAdmin() { var applicationUser = new ApplicationUser(); applicationUser.MakeOrgAdmin(); //applicationUser.Claims.Add(new IdentityUserClaim<string> //{ // ClaimType = AllReady.Security.ClaimTypes.UserType, // ClaimValue = Enum.GetName(typeof(UserType), UserType.OrgAdmin) //}); var urlHelper = new Mock<IUrlHelper>(); urlHelper.Setup(x => x.IsLocalUrl(It.IsAny<string>())).Returns(false); var routeValueDictionary = new RouteValueDictionary { ["area"] = "Admin" }; var sut = new RedirectAccountControllerRequests(); var result = sut.RedirectToLocal(It.IsAny<string>(), applicationUser, urlHelper.Object) as RedirectToActionResult; Assert.Equal(result.ActionName, nameof(AllReady.Areas.Admin.Controllers.CampaignController.Index)); Assert.Equal(result.ControllerName, "Campaign"); Assert.Equal(result.RouteValues, routeValueDictionary); }
public async Task InvokeUpdateTaskSignupAsyncForEachTaskSignupViewModelOnCommand() { var options = CreateNewContextOptions(); const string userId = "1"; const int firstId = 1; const int secondId = 2; var user = new ApplicationUser {Id = userId}; var taskSignupViewModels = new List<TaskSignupViewModel> {new TaskSignupViewModel {Id = firstId}, new TaskSignupViewModel {Id = secondId}}; using (var context = new AllReadyContext(options)) { context.Users.Add(user); context.TaskSignups.Add(new TaskSignup { Id = firstId }); context.TaskSignups.Add(new TaskSignup { Id = secondId }); await context.SaveChangesAsync(); } using (var context = new AllReadyContext(options)) { var sut = new UpdateMyTasksCommandHandler(context) { DateTimeUtcNow = () => DateTime.UtcNow }; await sut.Handle(new UpdateMyTasksCommand { TaskSignups = taskSignupViewModels }); } using (var context = new AllReadyContext(options)) { var signup1 = context.TaskSignups.FirstOrDefault(x => x.Id == firstId); Assert.Equal(signup1 != null, true); var signup2 = context.TaskSignups.FirstOrDefault(x => x.Id == secondId); Assert.Equal(signup2 != null, true); } }
public void SetsEventSignupViewModel_WithTheCorrectData() { var appUser = new ApplicationUser() { Id = "asdfasasdfaf", Email = "*****@*****.**", FirstName = "Foo", LastName = "Bar", PhoneNumber = "555-555-5555", }; var message = new ShowEventQuery() { EventId = 1, User = new ClaimsPrincipal() }; var dataAccess = new Mock<IAllReadyDataAccess>(); var userManager = CreateUserManagerMock(); userManager.Setup(x => x.GetUserId(message.User)).Returns(appUser.Id); dataAccess.Setup(x => x.GetUser(appUser.Id)).Returns(appUser); dataAccess.Setup(x => x.GetEvent(message.EventId)).Returns(CreateAllReadyEventWithTasks(message.EventId, appUser)); var sut = new ShowEventQueryHandler(dataAccess.Object, userManager.Object); var eventViewModel = sut.Handle(message); Assert.Equal(message.EventId, eventViewModel.SignupModel.EventId); Assert.Equal(appUser.Id, eventViewModel.SignupModel.UserId); Assert.Equal($"{appUser.FirstName} {appUser.LastName}", eventViewModel.SignupModel.Name); Assert.Equal(appUser.Email, eventViewModel.SignupModel.PreferredEmail); Assert.Equal(appUser.PhoneNumber, eventViewModel.SignupModel.PreferredPhoneNumber); }
protected override async Task LoadTestData() { var userId = "foo_id"; var userName = "******"; var testuser = new ApplicationUser() { UserName = userName, Email = userName, Id = userId }; var createResult = await UserManager.CreateAsync(testuser); }
protected override void LoadTestData() { var htb = new Organization() { Name = "Humanitarian Toolbox", LogoUrl = "http://www.htbox.org/upload/home/ht-hero.png", WebUrl = "http://www.htbox.org", Campaigns = new List<Campaign>() }; var firePrev = new Campaign() { Name = "Neighborhood Fire Prevention Days", ManagingOrganization = htb }; var queenAnne = new Event() { Id = 1, Name = "Queen Anne Fire Prevention Day", Campaign = firePrev, CampaignId = firePrev.Id, StartDateTime = new DateTime(2015, 7, 4, 10, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 31, 15, 0, 0).ToUniversalTime(), Location = new Location { Id = 1 }, RequiredSkills = new List<EventSkill>(), }; var username1 = $"*****@*****.**"; var username2 = $"*****@*****.**"; var user1 = new ApplicationUser { UserName = username1, Email = username1, EmailConfirmed = true }; Context.Users.Add(user1); var user2 = new ApplicationUser { UserName = username2, Email = username2, EmailConfirmed = true }; Context.Users.Add(user2); var task = new AllReadyTask { Id = 1, Name = "Task 1", Event = queenAnne, }; var taskSignup = new TaskSignup { Id = 1, User = user1, Task = task }; htb.Campaigns.Add(firePrev); Context.Organizations.Add(htb); Context.Events.Add(queenAnne); Context.Tasks.Add(task); Context.TaskSignups.Add(taskSignup); Context.SaveChanges(); }
Task IAllReadyDataAccess.UpdateUser(ApplicationUser value) { //First remove any skills that are no longer associated with this user var usksToRemove = _dbContext.UserSkills.Where(usk => usk.UserId == value.Id && (value.AssociatedSkills == null || !value.AssociatedSkills.Any(usk1 => usk1.SkillId == usk.SkillId))); _dbContext.UserSkills.RemoveRange(usksToRemove); _dbContext.Users.Update(value); return _dbContext.SaveChangesAsync(); }
protected override void LoadTestData() { var username1 = $"*****@*****.**"; var username2 = $"*****@*****.**"; var user1 = new ApplicationUser { UserName = username1, Email = username1, EmailConfirmed = true, NormalizedUserName = username1.ToUpperInvariant() }; var user2 = new ApplicationUser { UserName = username2, Email = username2, EmailConfirmed = true, NormalizedUserName = username2.ToUpperInvariant() }; Context.Users.Add(user1); Context.Users.Add(user2); Context.SaveChanges(); }
protected override void LoadTestData() { var context = ServiceProvider.GetService<AllReadyContext>(); var htb = new Organization() { Name = "Humanitarian Toolbox", LogoUrl = "http://www.htbox.org/upload/home/ht-hero.png", WebUrl = "http://www.htbox.org", Campaigns = new List<Campaign>() }; var firePrev = new Campaign() { Name = "Neighborhood Fire Prevention Days", ManagingOrganization = htb }; var queenAnne = new Activity() { Id = 1, Name = "Queen Anne Fire Prevention Day", Campaign = firePrev, CampaignId = firePrev.Id, StartDateTime = new DateTime(2015, 7, 4, 10, 0, 0).ToUniversalTime(), EndDateTime = new DateTime(2015, 12, 31, 15, 0, 0).ToUniversalTime(), Location = new Location { Id = 1 }, RequiredSkills = new List<ActivitySkill>(), }; var username1 = $"*****@*****.**"; var username2 = $"*****@*****.**"; var user1 = new ApplicationUser { UserName = username1, Email = username1, EmailConfirmed = true }; context.Users.Add(user1); var user2 = new ApplicationUser { UserName = username2, Email = username2, EmailConfirmed = true }; context.Users.Add(user2); htb.Campaigns.Add(firePrev); context.Organizations.Add(htb); context.Activities.Add(queenAnne); var activitySignups = new List<ActivitySignup> { new ActivitySignup { Activity = queenAnne, User = user1, SignupDateTime = DateTime.UtcNow }, new ActivitySignup { Activity = queenAnne, User = user2, SignupDateTime = DateTime.UtcNow } }; context.ActivitySignup.AddRange(activitySignups); context.SaveChanges(); }
public async Task ReturnTheCorrectData() { var applicationUser = new ApplicationUser { Id = "1", UserName = "******", EmailConfirmed = true }; Context.Add(new ApplicationUser { Id = "1", UserName = "******", EmailConfirmed = true }); Context.SaveChanges(); var sut = new IndexQueryHandler(Context); var result = await sut.Handle(new IndexQuery()); Assert.Equal(result.Users[0].Id, applicationUser.Id); Assert.Equal(result.Users[0].UserName, applicationUser.UserName); Assert.Equal(result.Users[0].EmailConfirmed, applicationUser.EmailConfirmed); }
public async Task AssignsVolunteersToTask() { var newVolunteer = new ApplicationUser { Id = "user1", Email = "*****@*****.**", PhoneNumber = "1234"}; var task = new AllReadyTask { Id = 1 }; Context.Add(newVolunteer); Context.Add(task); Context.SaveChanges(); var message = new AssignTaskCommand { TaskId = task.Id, UserIds = new List<string> { newVolunteer.Id } }; await sut.Handle(message); var taskSignup = Context.Tasks.Single(x => x.Id == task.Id).AssignedVolunteers.Single(); Assert.Equal(taskSignup.User.Id, newVolunteer.Id); Assert.Equal(taskSignup.Status, TaskStatus.Assigned.ToString()); }
protected override void LoadTestData() { var user = new ApplicationUser { Id = "abc" }; Context.Users.Add(user); var campaignEvent = new Event { Id = 1, Name = "Some Event" }; Context.Events.Add(campaignEvent); var @task = new AllReadyTask { Id = 1, Name = "Some Task", EndDateTime = DateTime.UtcNow.AddDays(100), Event = campaignEvent }; Context.Tasks.Add(@task); Context.TaskSignups.Add(new TaskSignup { Task = @task, User = user }); Context.SaveChanges(); }
private async static Task<bool> CheckUserType(UserManager<ApplicationUser> userManager, ApplicationUser user, params string [] types) { var claims = await userManager.GetClaimsAsync(user); if (claims.Count > 0) { var claimValue = claims.FirstOrDefault(c => c.Type.Equals("UserType")).Value; foreach (string type in types) { if (claimValue.Equals(type)) { return true; } } } return false; }
protected override void LoadTestData() { var organization = new Organization { Id = 1, Name = "Org 1", WebUrl = "http://www.org1.org", LogoUrl = "http://www.org1Logo.org", Location = new Location { Id = 1, Country="USA" }, Campaigns = new List<Campaign>(), Users = new List<ApplicationUser>(), OrganizationContacts = new List<OrganizationContact>() }; var campaign = new Campaign { Id = 1, Name = "Campaign 1", ManagingOrganizationId = 1 }; var user = new ApplicationUser { Id = Guid.NewGuid().ToString(), Email = "*****@*****.**" }; var organizationContact = new OrganizationContact { OrganizationId = 1, ContactType = (int)ContactTypes.Primary, Contact = new Contact { Id = 1, Email = "*****@*****.**", FirstName = "firstName", LastName = "lastName", PhoneNumber = "123" } }; Context.Organizations.Add(organization); Context.Campaigns.Add(campaign); Context.Users.Add(user); Context.OrganizationContacts.Add(organizationContact); Context.SaveChanges(); }
public async Task RemoveUsersThatAreNotInTheCurrentSignUpList() { var @task = new AllReadyTask { Id = 1 }; Context.Add(new ApplicationUser {Id = "user2"}); var previouslySignedupUser = new ApplicationUser { Id = "user1", Email = "*****@*****.**", PhoneNumber = "1234" }; @task.AssignedVolunteers = new List<TaskSignup> { new TaskSignup { User = previouslySignedupUser} }; Context.Add(@task); Context.SaveChanges(); var message = new AssignTaskCommand { TaskId = @task.Id, UserIds = new List<string> { "user2" } }; await sut.Handle(message); Assert.True(Context.Tasks.Single(x => x.Id == @task.Id).AssignedVolunteers.Any(x => x.User.Id != previouslySignedupUser.Id )); }
protected override void LoadTestData() { _user = new ApplicationUser { PhoneNumber = "123", Email = "*****@*****.**" }; _taskSignup = new TaskSignup { Id = 1, PreferredEmail = "*****@*****.**", PreferredPhoneNumber = "456", User = _user }; _taskSignupNoContactPreferences = new TaskSignup { Id = 2, User = _user }; _taskSignupNoContacts = new TaskSignup { Id = 3, User = new ApplicationUser() }; _itinerary = new Itinerary { Id = 1, Date = _itineraryDate = new DateTime(2016, 1, 1, 10, 30, 0) }; Context.Users.Add(_user); Context.TaskSignups.Add(_taskSignup); Context.TaskSignups.Add(_taskSignupNoContactPreferences); Context.TaskSignups.Add(_taskSignupNoContacts); Context.Itineraries.Add(_itinerary); Context.SaveChanges(); }
public async Task DoesNotSendNotificationToUsersWhoHasntVerifiedEmail() { var @task = new AllReadyTask { Id = 1 }; var volunteer = new ApplicationUser { Id = "user1", Email = "*****@*****.**", PhoneNumber = "1234", EmailConfirmed = false }; Context.Add(volunteer); Context.Add(@task); Context.SaveChanges(); var message = new TaskAssignedToVolunteersNotification { TaskId = @task.Id, NewlyAssignedVolunteers = new List<string> { volunteer.Id } }; await sut.Handle(message); mediator.Verify(b => b.SendAsync(It.Is<NotifyVolunteersCommand>(notifyCommand => !notifyCommand.ViewModel.EmailRecipients.Contains(volunteer.Email) )), Times.Once()); }
public async Task PublishTaskAssignedToVolunteersNotification() { var @task = new AllReadyTask { Id = 1 }; var volunteer = new ApplicationUser { Id = "user1", Email = "*****@*****.**", PhoneNumber = "1234", EmailConfirmed = true, PhoneNumberConfirmed = true }; Context.Add(volunteer); Context.Add(@task); Context.SaveChanges(); var message = new AssignTaskCommand { TaskId = @task.Id, UserIds = new List<string> { volunteer.Id } }; await sut.Handle(message); mediator.Verify(b => b.PublishAsync(It.Is<TaskAssignedToVolunteersNotification>(notification => notification.TaskId == message.TaskId && notification.NewlyAssignedVolunteers.Contains(volunteer.Id) )), Times.Once()); }
public async Task<IActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email, TimeZoneId = _generalSettings.DefaultTimeZone }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Action("ConfirmEmail", "Admin", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme); await _emailSender.SendEmailAsync(model.Email, "Confirm your account", "Please confirm your account by clicking this <a href=\"" + callbackUrl + "\">link</a>"); return RedirectToAction(nameof(AdminController.DisplayEmail), "Admin"); } AddErrors(result); } // If we got this far, something failed, redisplay form return View(model); }
public async Task ResetPasswordPostRedirectsToCorrectAction_WhenUsersPasswordResetSucceeded_AndUserIsNotNull_AndModelStateIsValid() { const string email = "*****@*****.**"; var vm = new ResetPasswordViewModel { Email = email }; var userManager = CreateUserManagerMock(); var user = new ApplicationUser(); userManager.Setup(x => x.FindByNameAsync(email)).Returns(() => Task.FromResult(user)); userManager.Setup(x => x.ResetPasswordAsync(user, It.IsAny<string>(), It.IsAny<string>())).Returns(() => Task.FromResult(IdentityResult.Success)); var sut = new AccountController(userManager.Object, null, null, null, null); var result = await sut.ResetPassword(vm) as RedirectToActionResult; Assert.Equal("ResetPasswordConfirmation", result.ActionName); }
public async Task ResetPasswordPostInvokesResetPasswordAsyncWithCorrectParameters_WhenUserIsNotNull_AndModelStateIsValid() { const string email = "*****@*****.**"; var vm = new ResetPasswordViewModel { Email = email, Password = "******", Code = "code" }; var userManager = CreateUserManagerMock(); var user = new ApplicationUser(); userManager.Setup(x => x.FindByNameAsync(email)).Returns(() => Task.FromResult(user)); userManager.Setup(x => x.ResetPasswordAsync(user, It.IsAny<string>(), It.IsAny<string>())).Returns(() => Task.FromResult(IdentityResult.Success)); var sut = new AccountController(userManager.Object, null, null, null, null); await sut.ResetPassword(vm); userManager.Verify(m => m.ResetPasswordAsync(user, It.Is<string>(y => y == vm.Code), It.Is<string>(y => y == vm.Password)), Times.Once); }